diff --git a/Source/ThirdParty/ANGLE/.gitignore b/Source/ThirdParty/ANGLE/.gitignore
index e11370d..e1d5631 100644
--- a/Source/ThirdParty/ANGLE/.gitignore
+++ b/Source/ThirdParty/ANGLE/.gitignore
@@ -44,6 +44,7 @@
 /third_party/rapidjson/src
 /third_party/spirv-headers/src
 /third_party/spirv-tools/src
+/third_party/SwiftShader
 /third_party/vulkan-headers/src
 /third_party/vulkan-loader/src
 /third_party/vulkan-tools/src
diff --git a/Source/ThirdParty/ANGLE/ANGLE.plist b/Source/ThirdParty/ANGLE/ANGLE.plist
index 54d1c78..ab15d22 100644
--- a/Source/ThirdParty/ANGLE/ANGLE.plist
+++ b/Source/ThirdParty/ANGLE/ANGLE.plist
@@ -6,13 +6,13 @@
 		<key>OpenSourceProject</key>
 		<string>ANGLE</string>
 		<key>OpenSourceVersion</key>
-		<string>79ad0411911b2fc84834c3705f55707be9e4b498</string>
+		<string>c5e0ac757a112a24a0118d434e652fd7b558e6a8</string>
 		<key>OpenSourceWebsiteURL</key>
 		<string>http://code.google.com/p/angleproject/</string>
 		<key>OpenSourceSCM</key>
-		<string>git clone https://chromium.googlesource.com/angle/angle &amp;&amp; cd angle &amp;&amp; git checkout 79ad0411911b2fc84834c3705f55707be9e4b498</string>
+		<string>git clone https://chromium.googlesource.com/angle/angle &amp;&amp; cd angle &amp;&amp; git checkout c5e0ac757a112a24a0118d434e652fd7b558e6a8</string>
 		<key>OpenSourceImportDate</key>
-		<string>2019-09-10</string>
+		<string>2019-10-09</string>
 		<key>OpenSourceLicense</key>
 		<string>BSD</string>
 		<key>OpenSourceLicenseFile</key>
diff --git a/Source/ThirdParty/ANGLE/ANGLE.xcodeproj/project.pbxproj b/Source/ThirdParty/ANGLE/ANGLE.xcodeproj/project.pbxproj
index 30ea37f..a71ea3d 100644
--- a/Source/ThirdParty/ANGLE/ANGLE.xcodeproj/project.pbxproj
+++ b/Source/ThirdParty/ANGLE/ANGLE.xcodeproj/project.pbxproj
@@ -571,6 +571,8 @@
 		5CCD81B01DBFEA5C006066B8 /* ConstantUnion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5CCD81991DBFEA5C006066B8 /* ConstantUnion.cpp */; };
 		5CCD81B51DBFEA5C006066B8 /* QualifierTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5CCD819E1DBFEA5C006066B8 /* QualifierTypes.cpp */; };
 		5CCD81B61DBFEA5C006066B8 /* QualifierTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CCD819F1DBFEA5C006066B8 /* QualifierTypes.h */; };
+		6E31A0A3234EEED400C84784 /* DeviceCGL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6E31A0A1234EEED400C84784 /* DeviceCGL.cpp */; };
+		6E31A0A4234EEED400C84784 /* DeviceCGL.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E31A0A2234EEED400C84784 /* DeviceCGL.h */; };
 		6E344AB222BC35C3001DDB2C /* entry_points_gles_ext_autogen.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E344AAE22BC35C3001DDB2C /* entry_points_gles_ext_autogen.h */; settings = {ATTRIBUTES = (Public, ); }; };
 		6E344AB322BC35C3001DDB2C /* entry_points_gles_ext_autogen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6E344AAF22BC35C3001DDB2C /* entry_points_gles_ext_autogen.cpp */; };
 		6E344AB622BC57C8001DDB2C /* entry_points_gles_1_0_autogen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6E344AB422BC57C8001DDB2C /* entry_points_gles_1_0_autogen.cpp */; };
@@ -693,7 +695,6 @@
 		A30307942305F959002DA972 /* proc_table_egl.h in Headers */ = {isa = PBXBuildFile; fileRef = A30307902305F959002DA972 /* proc_table_egl.h */; };
 		A30307952305F959002DA972 /* proc_table_egl_autogen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A30307912305F959002DA972 /* proc_table_egl_autogen.cpp */; };
 		A303079923060253002DA972 /* angle_gl.h in Headers */ = {isa = PBXBuildFile; fileRef = A303079823060253002DA972 /* angle_gl.h */; };
-		A303079B230624F7002DA972 /* FrameCapture.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A303079A230624F7002DA972 /* FrameCapture.cpp */; };
 		A303079D23062565002DA972 /* driver_utils_mac.mm in Sources */ = {isa = PBXBuildFile; fileRef = A303079C23062564002DA972 /* driver_utils_mac.mm */; };
 		A30307A0230625C6002DA972 /* android_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A303079E230625C6002DA972 /* android_util.cpp */; };
 		A30307A1230625C6002DA972 /* android_util.h in Headers */ = {isa = PBXBuildFile; fileRef = A303079F230625C6002DA972 /* android_util.h */; };
@@ -718,6 +719,8 @@
 			compilerSpec = com.apple.compilers.proxy.script;
 			filePatterns = "*.h";
 			fileType = pattern.proxy;
+			inputFiles = (
+			);
 			isEditable = 1;
 			name = "Files '*.h' using Script";
 			outputFiles = (
@@ -1320,6 +1323,8 @@
 		5D7C59C51208C68B001C873E /* ANGLE.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = ANGLE.xcconfig; sourceTree = "<group>"; };
 		5D7C59C61208C68B001C873E /* Base.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Base.xcconfig; sourceTree = "<group>"; };
 		5D7C59C71208C68B001C873E /* DebugRelease.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = DebugRelease.xcconfig; sourceTree = "<group>"; };
+		6E31A0A1234EEED400C84784 /* DeviceCGL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DeviceCGL.cpp; sourceTree = "<group>"; };
+		6E31A0A2234EEED400C84784 /* DeviceCGL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DeviceCGL.h; sourceTree = "<group>"; };
 		6E344AAE22BC35C3001DDB2C /* entry_points_gles_ext_autogen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = entry_points_gles_ext_autogen.h; sourceTree = "<group>"; };
 		6E344AAF22BC35C3001DDB2C /* entry_points_gles_ext_autogen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = entry_points_gles_ext_autogen.cpp; sourceTree = "<group>"; };
 		6E344AB422BC57C8001DDB2C /* entry_points_gles_1_0_autogen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = entry_points_gles_1_0_autogen.cpp; sourceTree = "<group>"; };
@@ -1443,7 +1448,6 @@
 		A30307902305F959002DA972 /* proc_table_egl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = proc_table_egl.h; sourceTree = "<group>"; };
 		A30307912305F959002DA972 /* proc_table_egl_autogen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = proc_table_egl_autogen.cpp; sourceTree = "<group>"; };
 		A303079823060253002DA972 /* angle_gl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = angle_gl.h; path = include/angle_gl.h; sourceTree = "<group>"; };
-		A303079A230624F7002DA972 /* FrameCapture.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FrameCapture.cpp; sourceTree = "<group>"; };
 		A303079C23062564002DA972 /* driver_utils_mac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = driver_utils_mac.mm; sourceTree = "<group>"; };
 		A303079E230625C6002DA972 /* android_util.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = android_util.cpp; sourceTree = "<group>"; };
 		A303079F230625C6002DA972 /* android_util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = android_util.h; sourceTree = "<group>"; };
@@ -1774,7 +1778,6 @@
 				5C1DBC6B1B0438D200235552 /* Framebuffer.h */,
 				5C1DBC6C1B0438D200235552 /* FramebufferAttachment.cpp */,
 				5C1DBC6D1B0438D200235552 /* FramebufferAttachment.h */,
-				A303079A230624F7002DA972 /* FrameCapture.cpp */,
 				5CCD595D2284F7960018F2D8 /* GLES1Renderer.cpp */,
 				5CCD59522284F7940018F2D8 /* GLES1Renderer.h */,
 				5CCD59552284F7950018F2D8 /* GLES1State.cpp */,
@@ -2113,6 +2116,8 @@
 			children = (
 				5CCD59722284FA820018F2D8 /* ContextCGL.cpp */,
 				5CCD59752284FA820018F2D8 /* ContextCGL.h */,
+				6E31A0A1234EEED400C84784 /* DeviceCGL.cpp */,
+				6E31A0A2234EEED400C84784 /* DeviceCGL.h */,
 				5CB301491DE39F4700D2C405 /* DisplayCGL.h */,
 				5CB3014A1DE39F4700D2C405 /* DisplayCGL.mm */,
 				5CCD59712284FA820018F2D8 /* IOSurfaceSurfaceCGL.h */,
@@ -2549,6 +2554,7 @@
 				5C55D65E22826B9F00B5BA2C /* DeclareAndInitBuiltinsForInstancedMultiview.h in Headers */,
 				5C55D68922826B9F00B5BA2C /* DeferGlobalInitializers.h in Headers */,
 				5C1DBDE71B0438D300235552 /* Device.h in Headers */,
+				6E31A0A4234EEED400C84784 /* DeviceCGL.h in Headers */,
 				5CB304E01DE4164800D2C405 /* DeviceImpl.h in Headers */,
 				31012E2718B97B9B0039062F /* Diagnostics.h in Headers */,
 				A264F8AD16974DED006FAA5A /* DiagnosticsBase.h in Headers */,
@@ -3007,6 +3013,7 @@
 				5C55D6AE22826BC800B5BA2C /* DeclareAndInitBuiltinsForInstancedMultiview.cpp in Sources */,
 				5C55D6AF22826BC800B5BA2C /* DeferGlobalInitializers.cpp in Sources */,
 				5C1DBDE61B0438D300235552 /* Device.cpp in Sources */,
+				6E31A0A3234EEED400C84784 /* DeviceCGL.cpp in Sources */,
 				5CB304DF1DE4164800D2C405 /* DeviceImpl.cpp in Sources */,
 				31012E2618B97B9B0039062F /* Diagnostics.cpp in Sources */,
 				A264F8AC16974DED006FAA5A /* DiagnosticsBase.cpp in Sources */,
@@ -3057,7 +3064,6 @@
 				5C1DBDF31B0438D300235552 /* Framebuffer.cpp in Sources */,
 				5C1DBDF51B0438D300235552 /* FramebufferAttachment.cpp in Sources */,
 				5CB301271DE39F1A00D2C405 /* FramebufferGL.cpp in Sources */,
-				A303079B230624F7002DA972 /* FrameCapture.cpp in Sources */,
 				5C55D6E422826C7900B5BA2C /* FunctionLookup.cpp in Sources */,
 				5CB3012B1DE39F1A00D2C405 /* FunctionsGL.cpp in Sources */,
 				A303070F2305F705002DA972 /* generatemip.inc in Sources */,
diff --git a/Source/ThirdParty/ANGLE/BUILD.gn b/Source/ThirdParty/ANGLE/BUILD.gn
index a2ce2a9..0eccb92 100644
--- a/Source/ThirdParty/ANGLE/BUILD.gn
+++ b/Source/ThirdParty/ANGLE/BUILD.gn
@@ -3,15 +3,18 @@
 # found in the LICENSE file.
 
 # import the use_x11 variable
-import("//build/config/linux/pkg_config.gni")
-import("//build/config/ui.gni")
-import("//testing/libfuzzer/fuzzer_test.gni")
 import("gni/angle.gni")
-if (is_android) {
-  # android/rules.gni can only be imported for Android targets
-  import("//build/config/android/config.gni")
-  import("//build/config/android/rules.gni")
-  import("android/angle_apk.gni")
+if (angle_has_build) {
+  import("//build/config/linux/pkg_config.gni")
+  import("//build/config/ui.gni")
+  import("//testing/libfuzzer/fuzzer_test.gni")
+
+  if (is_android) {
+    # android/rules.gni can only be imported for Android targets
+    import("//build/config/android/config.gni")
+    import("//build/config/android/rules.gni")
+    import("android/angle_apk.gni")
+  }
 }
 
 declare_args() {
@@ -25,9 +28,13 @@
   # Defaults to capture building to $root_out_dir/angle_libs/with_capture.
   # Switch on to build capture to $root_out_dir.
   angle_with_capture_by_default = false
+
+  # Don't build extra (test, samples etc) for Windows UWP. We don't have
+  # infrastructure (e.g. windowing helper functions) in place to run them.
+  angle_build_all = !angle_is_winuwp && angle_has_build
 }
 
-if (!build_with_chromium) {
+if (!build_with_chromium && angle_build_all) {
   group("all") {
     testonly = true
     deps = [
@@ -96,12 +103,6 @@
     defines += [ "ANGLE_IS_32_BIT_CPU" ]
   }
 
-  if (angle_enable_vulkan) {
-    if (angle_enable_vulkan_gpu_trace_events) {
-      defines += [ "ANGLE_ENABLE_VULKAN_GPU_TRACE_EVENTS=1" ]
-    }
-  }
-
   if (angle_enable_trace) {
     defines += [ "ANGLE_ENABLE_DEBUG_TRACE=1" ]
   }
@@ -139,6 +140,10 @@
       "-Wshorten-64-to-32",
     ]
   }
+
+  if (angle_is_winuwp) {
+    cflags += [ "/wd4447" ]  # 'main' signature found without threading model.
+  }
 }
 
 # This config adds build-ids to the associated library.
@@ -157,9 +162,11 @@
   }
 }
 
+_use_copy_compiler_dll = angle_has_build && is_win && target_cpu != "arm64"
+
 # Windows ARM64 is available since 10.0.16299 so no need to copy
 # d3dcompiler_47.dll because this file is available as inbox.
-if (is_win && target_cpu != "arm64") {
+if (_use_copy_compiler_dll) {
   # We also ship an older DLL for compatiblity with Windows 7 machines without
   # the UCRT. This DLL isn't available in the standard SDK distribution.
   _old_compiler = "$windows_sdk_path/Redist/D3D/$target_cpu/d3dcompiler_old.dll"
@@ -196,6 +203,7 @@
 
   public_deps = [
     ":angle_common",
+    ":angle_translator_headers",
   ]
 }
 
@@ -222,7 +230,7 @@
   }
 }
 
-if (is_win) {
+if (is_win && !angle_is_winuwp) {
   angle_source_set("angle_stack_walker") {
     sources = [
       "util/windows/third_party/StackWalker/src/StackWalker.cpp",
@@ -250,13 +258,15 @@
   configs -= [ "${angle_root}:extra_warnings" ]
 }
 
-fuzzer_test("xxhash_fuzzer") {
-  sources = [
-    "src/common/third_party/xxhash/xxhash_fuzzer.cpp",
-  ]
-  deps = [
-    ":xxhash",
-  ]
+if (angle_has_build) {
+  fuzzer_test("xxhash_fuzzer") {
+    sources = [
+      "src/common/third_party/xxhash/xxhash_fuzzer.cpp",
+    ]
+    deps = [
+      ":xxhash",
+    ]
+  }
 }
 
 angle_static_library("angle_common") {
@@ -278,7 +288,7 @@
   ]
   public_configs += [ ":angle_common_config" ]
   all_dependent_configs = [ ":angle_release_asserts_config" ]
-  if (use_fuzzing_engine) {
+  if (angle_has_build && use_fuzzing_engine) {
     all_dependent_configs += [ ":angle_disable_pool_alloc" ]
   }
 }
@@ -290,11 +300,18 @@
   ]
 }
 
+angle_source_set("angle_image_util_headers") {
+  sources = libangle_image_util_headers
+  public_deps = [
+    ":angle_common",
+  ]
+}
+
 angle_static_library("angle_image_util") {
   sources = libangle_image_util_sources
   public_configs += [ ":angle_image_util_config" ]
   public_deps = [
-    ":angle_common",
+    ":angle_image_util_headers",
   ]
 }
 
@@ -338,7 +355,9 @@
 
   if (is_win) {
     sources += libangle_gpu_info_util_win_sources
-    libs += [ "setupapi.lib" ]
+    if (!angle_is_winuwp) {
+      libs += [ "setupapi.lib" ]
+    }
     libs += [ "dxgi.lib" ]
   }
 
@@ -374,6 +393,13 @@
   }
 }
 
+angle_source_set("angle_translator_headers") {
+  sources = angle_translator_exported_headers
+  public_deps = [
+    ":includes",
+  ]
+}
+
 angle_static_library("translator") {
   sources = angle_translator_sources
   defines = []
@@ -407,6 +433,7 @@
 
   public_deps = [
     ":angle_common",
+    ":angle_translator_headers",
   ]
 
   if (is_win) {
@@ -493,15 +520,13 @@
       defines += [ "ANGLE_ENABLE_OPENGL_NULL" ]
     }
   }
-  if (angle_enable_vulkan) {
-    defines += [ "ANGLE_ENABLE_VULKAN" ]
-    if (angle_enable_custom_vulkan_cmd_buffers) {
-      defines += [ "ANGLE_USE_CUSTOM_VULKAN_CMD_BUFFERS=1" ]
-    }
-  }
   if (angle_enable_null) {
     defines += [ "ANGLE_ENABLE_NULL" ]
   }
+
+  if (angle_enable_vulkan) {
+    configs = [ "src/libANGLE/renderer/vulkan:angle_vulkan_backend_config" ]
+  }
 }
 
 config("libANGLE_config") {
@@ -533,53 +558,12 @@
   }
 }
 
-if (angle_enable_vulkan) {
-  config("vulkan_config") {
-    defines = [
-      "ANGLE_VK_LAYERS_DIR=\"$angle_data_dir\"",
-      "ANGLE_VK_MOCK_ICD_JSON=\"$angle_data_dir/VkICD_mock_icd.json\"",
-    ]
-    if (is_android) {
-      libs = [ "vulkan" ]
-    }
-  }
-
-  # Use this target to include everything ANGLE needs for Vulkan.
-  group("angle_vulkan") {
-    public_deps = [
-      "$angle_root/third_party/vulkan-headers:vulkan_headers",
-    ]
-    public_configs = [ ":vulkan_config" ]
-    data_deps = []
-    if (!is_android && !is_fuchsia) {
-      deps = [
-        "$angle_root/third_party/vulkan-loader:libvulkan",
-      ]
-      data_deps += [ "$angle_root/third_party/vulkan-tools:VkICD_mock_icd" ]
-      public_configs +=
-          [ "$angle_root/third_party/vulkan-loader:vulkan_loader_config" ]
-    }
-    if (is_fuchsia) {
-      public_deps += [
-        "$angle_root/src/common/fuchsia_egl",
-        "//third_party/fuchsia-sdk:vulkan_base",
-        "//third_party/fuchsia-sdk/sdk:vulkan",
-      ]
-    }
-
-    if (angle_enable_vulkan_validation_layers) {
-      if (is_fuchsia) {
-        deps = [
-          "//third_party/fuchsia-sdk:vulkan_validation",
-        ]
-      } else {
-        data_deps += [ "$angle_root/third_party/vulkan-validation-layers:vulkan_validation_layers" ]
-        if (!is_android) {
-          data_deps += [ "$angle_root/third_party/vulkan-validation-layers:vulkan_gen_json_files" ]
-        }
-      }
-    }
-  }
+angle_source_set("libANGLE_headers") {
+  sources = libangle_headers
+  public_deps = [
+    ":angle_common",
+    ":angle_translator_headers",
+  ]
 }
 
 angle_source_set("libANGLE_base") {
@@ -596,6 +580,7 @@
     ":angle_common",
     ":angle_gpu_info_util",
     ":angle_version",
+    ":libANGLE_headers",
     ":translator",
   ]
   deps = [
@@ -603,6 +588,10 @@
     ":includes",
   ]
 
+  if (angle_enable_vulkan) {
+    public_deps += [ "src/libANGLE/renderer/vulkan:angle_vulkan_backend" ]
+  }
+
   # Enable extra Chromium style warnings for libANGLE.
   if (is_clang) {
     suppressed_configs -= [ "//build/config/clang:find_bad_constructs" ]
@@ -622,7 +611,13 @@
 
   if (angle_enable_d3d11) {
     sources += libangle_d3d11_sources
-    sources += libangle_d3d11_win32_sources
+
+    if (angle_is_winuwp) {
+      sources += libangle_d3d11_winuwp_sources
+    } else {
+      sources += libangle_d3d11_win32_sources
+    }
+
     libs += [ "dxguid.lib" ]
     import("src/libANGLE/renderer/d3d/d3d11/d3d11_blit_shaders_autogen.gni")
     sources += libangle_d3d11_blit_shaders
@@ -671,38 +666,6 @@
     }
   }
 
-  if (angle_enable_vulkan) {
-    sources += libangle_vulkan_sources
-    if (is_win) {
-      sources += libangle_vulkan_win32_sources
-    }
-    if (is_linux) {
-      sources += libangle_vulkan_xcb_sources
-    }
-    if (is_fuchsia) {
-      sources += libangle_vulkan_fuchsia_sources
-      deps += [
-        "$angle_root/src/common/fuchsia_egl",
-        "$angle_root/src/common/fuchsia_egl:backend",
-      ]
-    }
-    if (is_android) {
-      sources += libangle_vulkan_android_sources
-      libs += [ "vulkan" ]
-    }
-    deps += [
-      ":angle_vulkan",
-      "${angle_glslang_dir}:glslang_default_resource_limits_sources",
-      "${angle_glslang_dir}:glslang_sources",
-      "${angle_spirv_tools_dir}:spvtools_val",
-    ]
-    public_deps += [ "$angle_root/third_party/vulkan-headers:vulkan_headers" ]
-
-    # Include generated shaders.
-    import("src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.gni")
-    sources += angle_vulkan_internal_shaders
-  }
-
   if (angle_enable_null) {
     sources += libangle_null_sources
   }
@@ -727,7 +690,7 @@
 
   # Windows ARM64 is available since 10.0.16299 so no need to copy
   # d3dcompiler_47.dll because this file is available as inbox.
-  if (is_win && target_cpu != "arm64") {
+  if (_use_copy_compiler_dll) {
     data_deps = [
       ":copy_compiler_dll",
     ]
@@ -748,7 +711,7 @@
   ]
   public_configs = [ ":angle_frame_capture_disabled" ]
   sources = [
-    "src/libANGLE/FrameCapture.cpp",
+    "src/libANGLE/FrameCapture_mock.cpp",
   ]
 
   # gl_enum_utils defaults included in with_capture build
@@ -852,7 +815,7 @@
   }
 }
 
-if (is_win) {
+if (is_win && !angle_is_winuwp) {
   angle_shared_library("libGL") {
     sources = libgl_sources
 
@@ -1006,7 +969,7 @@
     "util/util_export.h",
   ]
 
-  if (is_win) {
+  if (is_win && !angle_is_winuwp) {
     sources += [ "util/windows/wgl_loader_autogen.h" ]
   }
 
@@ -1023,7 +986,7 @@
     "util/gles_loader_autogen.cpp",
   ]
 
-  if (is_win) {
+  if (is_win && !angle_is_winuwp) {
     sources += [ "util/windows/wgl_loader_autogen.cpp" ]
   }
 
@@ -1069,7 +1032,7 @@
     public_deps = []
     libs = []
 
-    if (is_win) {
+    if (is_win && !angle_is_winuwp) {
       sources += util_win_sources
       deps += [ ":angle_stack_walker" ]
     }
@@ -1112,6 +1075,7 @@
       sources += util_fuchsia_sources
       public_deps += [
         "$angle_root/src/common/fuchsia_egl",
+        "src/libANGLE/renderer/vulkan:angle_vulkan",
         "//third_party/fuchsia-sdk/sdk:async_loop_cpp",
         "//third_party/fuchsia-sdk/sdk:async_loop_default",
         "//third_party/fuchsia-sdk/sdk:fdio",
@@ -1128,7 +1092,7 @@
     if (is_shared_library) {
       defines = [ "LIBANGLE_UTIL_IMPLEMENTATION" ]
 
-      if (is_win) {
+      if (is_win && !angle_is_winuwp) {
         sources += util_win_shared_sources
       }
 
@@ -1164,45 +1128,47 @@
   ]
 }
 
-config("angle_feature_support_config") {
-  include_dirs = [
-    "include",
-    "src",
-  ]
-  defines = [ "LIBFEATURE_SUPPORT_IMPLEMENTATION" ]
-  if (is_debug) {
-    defines += [ "ANGLE_FEATURE_UTIL_LOG_VERBOSE" ]
-  }
-}
-
-angle_shared_library("libfeature_support") {
-  output_name = "libfeature_support${angle_libs_suffix}"
-
-  if (is_android) {
-    libs = [ "log" ]
+if (angle_has_build) {
+  config("angle_feature_support_config") {
+    include_dirs = [
+      "include",
+      "src",
+    ]
+    defines = [ "LIBFEATURE_SUPPORT_IMPLEMENTATION" ]
+    if (is_debug) {
+      defines += [ "ANGLE_FEATURE_UTIL_LOG_VERBOSE" ]
+    }
   }
 
-  public_configs += [
-    ":angle_feature_support_config",
-    "${angle_jsoncpp_dir}:jsoncpp_config",
-  ]
+  angle_shared_library("libfeature_support") {
+    output_name = "libfeature_support${angle_libs_suffix}"
 
-  if (is_mac && !is_component_build) {
-    ldflags = [
-      "-install_name",
-      "@rpath/${target_name}.dylib",
+    if (is_android) {
+      libs = [ "log" ]
+    }
+
+    public_configs += [
+      ":angle_feature_support_config",
+      "${angle_jsoncpp_dir}:jsoncpp_config",
+    ]
+
+    if (is_mac && !is_component_build) {
+      ldflags = [
+        "-install_name",
+        "@rpath/${target_name}.dylib",
+      ]
+    }
+
+    sources = [
+      "src/feature_support_util/feature_support_util.cpp",
+      "src/feature_support_util/feature_support_util.h",
+    ]
+
+    deps = [
+      ":angle_gpu_info_util",
+      "${angle_jsoncpp_dir}:jsoncpp",
     ]
   }
-
-  sources = [
-    "src/feature_support_util/feature_support_util.cpp",
-    "src/feature_support_util/feature_support_util.h",
-  ]
-
-  deps = [
-    ":angle_gpu_info_util",
-    "${angle_jsoncpp_dir}:jsoncpp",
-  ]
 }
 
 if (!is_component_build && is_android && symbol_level != 0) {
@@ -1227,8 +1193,9 @@
 
     if (angle_enable_vulkan_validation_layers) {
       foreach(_layer, vulkan_validation_layers) {
-        deps +=
-            [ "${angle_root}/third_party/vulkan-validation-layers:${_layer}" ]
+        deps += [
+          "${angle_root}/third_party/vulkan-validation-layers/src:${_layer}",
+        ]
       }
     }
 
@@ -1268,3 +1235,11 @@
     ]
   }
 }
+
+# Note: libGLESv1_CM is not presently included because most Chrome users don't care about it.
+group("angle") {
+  data_deps = [
+    ":libGLESv2",
+    ":libEGL",
+  ]
+}
diff --git a/Source/ThirdParty/ANGLE/CMakeLists.txt b/Source/ThirdParty/ANGLE/CMakeLists.txt
index ab6902a..0edf1f9 100644
--- a/Source/ThirdParty/ANGLE/CMakeLists.txt
+++ b/Source/ThirdParty/ANGLE/CMakeLists.txt
@@ -57,7 +57,9 @@
     ${angle_translator_essl_sources}
     ${angle_translator_glsl_sources}
     ${angle_translator_sources}
-    ${libangle_capture_sources}
+    # Add this in if frame capture is desired, and add the appropriate
+    # definitions.
+    # ${libangle_capture_sources}
 )
 
 if (UNIX)
diff --git a/Source/ThirdParty/ANGLE/CONTRIBUTORS b/Source/ThirdParty/ANGLE/CONTRIBUTORS
index 14afabb..caad859 100644
--- a/Source/ThirdParty/ANGLE/CONTRIBUTORS
+++ b/Source/ThirdParty/ANGLE/CONTRIBUTORS
@@ -115,6 +115,7 @@
  Shawn Hargreaves
  Rafael Cintron
  James Clarke
+ Nathan Zabriskie
 
 Microsoft Open Technologies, Inc.
  Cooper Partin
@@ -155,8 +156,10 @@
  Hyunseok Ko
  Jaedon Lee
  Jeff Vigil
+ Kyeongmin Kim
  Minkyu Jeong
  Mohan Maiya
+ Sangwon Park
 
 Arm Ltd.
  Fei Yang
diff --git a/Source/ThirdParty/ANGLE/ChangeLog b/Source/ThirdParty/ANGLE/ChangeLog
index dd3a6c5..0635fb2 100644
--- a/Source/ThirdParty/ANGLE/ChangeLog
+++ b/Source/ThirdParty/ANGLE/ChangeLog
@@ -1,3 +1,1286 @@
+2019-10-11  Kenneth Russell  <kbr@chromium.org>
+
+        Roll ANGLE for ETC extensions and EGL_ANGLE_device_cgl
+        https://bugs.webkit.org/show_bug.cgi?id=202780
+
+        Roll ANGLE to c5e0ac757a112a24a0118d434e652fd7b558e6a8 via new
+        update-angle.sh script.
+
+        Reviewed by Alex Christensen.
+
+        * .gitignore:
+        * ANGLE.plist:
+        * ANGLE.xcodeproj/project.pbxproj:
+        * BUILD.gn:
+        * CMakeLists.txt:
+        * CONTRIBUTORS:
+        * DEPS:
+        * GLESv2.cmake:
+        * OWNERS:
+        * PRESUBMIT.py:
+        (_CheckExportValidity):
+        (CheckChangeOnUpload):
+        (CheckChangeOnCommit):
+        * README.md:
+        * android/angle_apk.gni:
+        * build_overrides/angle.gni:
+        * changes.diff:
+        * doc/DevSetup.md:
+        * dotfile_settings.gni:
+        * extensions/ANGLE_compressed_texture_etc.txt: Added.
+        * extensions/EGL_ANGLE_device_cgl.txt: Added.
+        * extensions/EGL_ANGLE_feature_control.txt:
+        * extensions/EGL_ANGLE_platform_angle_d3d11on12.txt: Added.
+        * extensions/EGL_ANGLE_platform_angle_device_type_swiftshader.txt: Added.
+        * extensions/EGL_ANGLE_platform_angle_metal.txt: Added.
+        * gni/angle.gni:
+        * include/EGL/eglext_angle.h:
+        * include/platform/Feature.h:
+        (angle::Feature::Feature):
+        * include/platform/FeaturesD3D.h:
+        * include/platform/FeaturesGL.h:
+        * include/platform/FeaturesVk.h:
+        * include/platform/FrontendFeatures.h:
+        * samples/WindowTest/WindowTest.cpp:
+        * samples/gles1/DrawTexture.cpp:
+        * samples/multi_texture/MultiTexture.cpp:
+        * samples/multiple_draw_buffers/MultipleDrawBuffers.cpp:
+        * samples/particle_system/ParticleSystem.cpp:
+        * samples/sample_util/SampleApplication.cpp:
+        (SampleApplication::SampleApplication):
+        * samples/sample_util/SampleApplication.h:
+        * scripts/code_generation_hashes/ANGLE_format.json:
+        * scripts/code_generation_hashes/ANGLE_load_functions_table.json:
+        * scripts/code_generation_hashes/D3D11_format.json:
+        * scripts/code_generation_hashes/DXGI_format.json:
+        * scripts/code_generation_hashes/GL_EGL_WGL_loader.json:
+        * scripts/code_generation_hashes/GL_EGL_entry_points.json:
+        * scripts/code_generation_hashes/OpenGL_dispatch_table.json:
+        * scripts/code_generation_hashes/Static_builtins.json:
+        * scripts/code_generation_hashes/Vulkan_format.json:
+        * scripts/code_generation_hashes/Vulkan_internal_shader_programs.json:
+        * scripts/code_generation_hashes/Vulkan_mandatory_format_support_table.json:
+        * scripts/code_generation_hashes/proc_table.json:
+        * scripts/export_targets.py:
+        (has_all_includes):
+        * scripts/generate_entry_points.py:
+        (get_resource_id_types):
+        (format_resource_id_types):
+        (write_capture_helper_header):
+        (get_resource_id_type_from_param_type):
+        (format_param_type_to_resource_id_type_case):
+        (format_param_type_resource_id_cases):
+        (format_resource_id_type_name_case):
+        (write_capture_helper_source):
+        * scripts/generate_vulkan_layers_json.py:
+        (main):
+        * scripts/registry_xml.py:
+        * src/common/PackedEnums.cpp:
+        (gl::operator<<):
+        * src/common/PackedEnums.h:
+        (angle::EnumSize<E>):
+        (gl::FromGLenum<VertexAttribType>):
+        (gl::ToGLenum):
+        (gl::ValueEquals):
+        (gl::operator==):
+        (gl::operator!=):
+        * src/common/android_util.cpp:
+        (angle::android::NativePixelFormatToGLInternalFormat):
+        * src/common/angleutils.h:
+        * src/common/debug.h:
+        * src/common/platform.h:
+        * src/common/system_utils_winuwp.cpp: Added.
+        (angle::SetEnvironmentVar):
+        (angle::GetEnvironmentVar):
+        (angle::GetSharedLibraryExtension):
+        (angle::GetPathSeparator):
+        (angle::GetCurrentTime):
+        (angle::UwpLibrary::UwpLibrary):
+        (angle::OpenSharedLibrary):
+        (angle::IsDebuggerAttached):
+        (angle::BreakDebugger):
+        * src/common/tls.cpp:
+        (CreateTLSIndex):
+        (DestroyTLSIndex):
+        (SetTLSValue):
+        (GetTLSValue):
+        * src/common/tls.h:
+        * src/common/utilities.cpp:
+        (gl::StripLastArrayIndex):
+        * src/common/utilities.h:
+        * src/compiler.gni:
+        * src/compiler/translator/Compiler.cpp:
+        (sh::TCompiler::compileTreeImpl):
+        * src/compiler/translator/ImmutableString_ESSL_autogen.cpp:
+        * src/compiler/translator/ImmutableString_autogen.cpp:
+        * src/compiler/translator/IntermNode.h:
+        (sh::TIntermPreprocessorDirective::getDirective const): Deleted.
+        (sh::TIntermPreprocessorDirective::getCommand const): Deleted.
+        * src/compiler/translator/ParseContext.cpp:
+        (sh::TParseContext::TParseContext):
+        (sh::TParseContext::checkIsValidArraySize):
+        (sh::TParseContext::parseFunctionDeclarator):
+        * src/compiler/translator/ParseContext.h:
+        (sh::TParseContext::getOutputType const):
+        * src/compiler/translator/ShaderVars.cpp:
+        (sh::ShaderVariable::operator=):
+        * src/compiler/translator/SymbolTable.cpp:
+        (sh::TSymbolTable::setGlInArraySize):
+        (sh::TSymbolTable::gl_FragData const):
+        (sh::TSymbolTable::gl_SecondaryFragDataEXT const):
+        (sh::SymbolRule::get const):
+        (sh::FindMangledBuiltIn):
+        (sh::UnmangledEntry::matches const):
+        * src/compiler/translator/SymbolTable.h:
+        (sh::SymbolRule::SymbolRule):
+        (sh::SymbolRule::Get):
+        (sh::UnmangledEntry::UnmangledEntry):
+        (sh::SymbolEntry::SymbolEntry): Deleted.
+        * src/compiler/translator/SymbolTable_ESSL_autogen.cpp:
+        (sh::BuiltInVariable::angle_BaseInstance):
+        (sh::BuiltInVariable::angle_BaseVertex):
+        (sh::BuiltInVariable::gl_BaseInstance):
+        (sh::BuiltInVariable::gl_BaseVertex):
+        (sh::BuiltInVariable::gl_DrawID):
+        (sh::BuiltInVariable::gl_FragColor):
+        (sh::BuiltInVariable::gl_FragCoord):
+        (sh::BuiltInVariable::gl_FragDepth):
+        (sh::BuiltInVariable::gl_FrontFacing):
+        (sh::BuiltInVariable::gl_GlobalInvocationID):
+        (sh::BuiltInVariable::gl_InstanceID):
+        (sh::BuiltInVariable::gl_InstanceIndex):
+        (sh::BuiltInVariable::gl_InvocationID):
+        (sh::BuiltInVariable::gl_LastFragColor):
+        (sh::BuiltInVariable::gl_LastFragColorARM):
+        (sh::BuiltInVariable::gl_Layer):
+        (sh::BuiltInVariable::gl_LayerGS):
+        (sh::BuiltInVariable::gl_LayerVS):
+        (sh::BuiltInVariable::gl_LocalInvocationID):
+        (sh::BuiltInVariable::gl_LocalInvocationIndex):
+        (sh::BuiltInVariable::gl_NumWorkGroups):
+        (sh::BuiltInVariable::gl_PointCoord):
+        (sh::BuiltInVariable::gl_PointSize):
+        (sh::BuiltInVariable::gl_Position):
+        (sh::BuiltInVariable::gl_PrimitiveID):
+        (sh::BuiltInVariable::gl_PrimitiveIDGS):
+        (sh::BuiltInVariable::gl_PrimitiveIDIn):
+        (sh::BuiltInVariable::gl_SecondaryFragColorEXT):
+        (sh::BuiltInVariable::gl_VertexID):
+        (sh::BuiltInVariable::gl_VertexIndex):
+        (sh::BuiltInVariable::gl_ViewID_OVR):
+        (sh::BuiltInVariable::gl_ViewportIndex):
+        (sh::BuiltInVariable::gl_WorkGroupID):
+        (sh::BuiltInVariable::gl_WorkGroupSize):
+        (sh::TSymbolTable::initializeBuiltInVariables):
+        (sh::TSymbolTable::findBuiltIn const):
+        (sh::TSymbolTable::isUnmangledBuiltInName const):
+        (sh::TSymbolTable::getSymbol const): Deleted.
+        (sh::TSymbolTable::getUnmangled const): Deleted.
+        (sh::TSymbolTable::getUnmangledBuiltInForShaderVersion): Deleted.
+        * src/compiler/translator/SymbolTable_autogen.cpp:
+        (sh::BuiltInVariable::angle_BaseInstance):
+        (sh::BuiltInVariable::angle_BaseVertex):
+        (sh::BuiltInVariable::gl_BaseInstance):
+        (sh::BuiltInVariable::gl_BaseVertex):
+        (sh::BuiltInVariable::gl_DrawID):
+        (sh::BuiltInVariable::gl_FragColor):
+        (sh::BuiltInVariable::gl_FragCoord):
+        (sh::BuiltInVariable::gl_FragDepth):
+        (sh::BuiltInVariable::gl_FrontFacing):
+        (sh::BuiltInVariable::gl_GlobalInvocationID):
+        (sh::BuiltInVariable::gl_InstanceID):
+        (sh::BuiltInVariable::gl_InstanceIndex):
+        (sh::BuiltInVariable::gl_InvocationID):
+        (sh::BuiltInVariable::gl_LastFragColor):
+        (sh::BuiltInVariable::gl_LastFragColorARM):
+        (sh::BuiltInVariable::gl_Layer):
+        (sh::BuiltInVariable::gl_LayerGS):
+        (sh::BuiltInVariable::gl_LayerVS):
+        (sh::BuiltInVariable::gl_LocalInvocationID):
+        (sh::BuiltInVariable::gl_LocalInvocationIndex):
+        (sh::BuiltInVariable::gl_NumWorkGroups):
+        (sh::BuiltInVariable::gl_PointCoord):
+        (sh::BuiltInVariable::gl_PointSize):
+        (sh::BuiltInVariable::gl_Position):
+        (sh::BuiltInVariable::gl_PrimitiveID):
+        (sh::BuiltInVariable::gl_PrimitiveIDGS):
+        (sh::BuiltInVariable::gl_PrimitiveIDIn):
+        (sh::BuiltInVariable::gl_SecondaryFragColorEXT):
+        (sh::BuiltInVariable::gl_VertexID):
+        (sh::BuiltInVariable::gl_VertexIndex):
+        (sh::BuiltInVariable::gl_ViewID_OVR):
+        (sh::BuiltInVariable::gl_ViewportIndex):
+        (sh::BuiltInVariable::gl_WorkGroupID):
+        (sh::BuiltInVariable::gl_WorkGroupSize):
+        (sh::TSymbolTable::initializeBuiltInVariables):
+        (sh::TSymbolTable::findBuiltIn const):
+        (sh::TSymbolTable::isUnmangledBuiltInName const):
+        (sh::TSymbolTable::getSymbol const): Deleted.
+        (sh::TSymbolTable::getUnmangled const): Deleted.
+        (sh::TSymbolTable::getUnmangledBuiltInForShaderVersion): Deleted.
+        * src/compiler/translator/SymbolTable_autogen.h:
+        * src/compiler/translator/TranslatorVulkan.cpp:
+        (sh::TranslatorVulkan::translate):
+        * src/compiler/translator/gen_builtin_symbols.py:
+        (get_shader_version_for_level):
+        (GroupedList.__init__):
+        (GroupedList.add_entry):
+        (GroupedList.format_rule):
+        (GroupedList):
+        (GroupedList.format_rules):
+        (GroupedList.get_rules):
+        (GroupedList.get_names):
+        (GroupedList.get_offsets):
+        (GroupedList.update_arrays):
+        (GroupedList.update_arrays.add_rule):
+        (UnmangledGroupedList.add_entry):
+        (UnmangledGroupedList.get_array):
+        (define_constexpr_variable):
+        (process_single_function_group):
+        (process_function_group):
+        (process_single_variable_group):
+        (GroupedList.add_obj): Deleted.
+        (GroupedList.get_array): Deleted.
+        (UnmangledGroupedList.add_obj): Deleted.
+        * src/feature_support_util/feature_support_util.cpp:
+        * src/gpu_info_util/SystemInfo_win.cpp:
+        (angle::GetSystemInfo):
+        * src/image_util/loadimage.cpp:
+        (angle::LoadD24S8ToD32F):
+        (angle::LoadD32ToD32FX32):
+        (angle::LoadD32ToD32F):
+        * src/image_util/loadimage.h:
+        * src/libANGLE/Buffer.cpp:
+        (gl::Buffer::Buffer):
+        * src/libANGLE/Buffer.h:
+        * src/libANGLE/Caps.cpp:
+        (gl::DetermineHalfFloatTextureFilteringSupport):
+        (gl::DetermineFloatTextureFilteringSupport):
+        (gl::Extensions::setTextureExtensionSupport):
+        (gl::GetExtensionInfoMap):
+        (egl::DisplayExtensions::getStrings const):
+        (egl::DeviceExtensions::getStrings const):
+        (egl::ClientExtensions::getStrings const):
+        * src/libANGLE/Caps.h:
+        * src/libANGLE/Constants.h:
+        * src/libANGLE/Context.cpp:
+        (gl::Context::Context):
+        (gl::Context::initialize):
+        (gl::Context::onDestroy):
+        (gl::Context::bindImageTexture):
+        (gl::Context::getQueryiv):
+        (gl::Context::detachTexture):
+        (gl::Context::generateSupportedExtensions const):
+        (gl::Context::initCaps):
+        (gl::Context::onSubjectStateChange):
+        (gl::StateCache::updateActiveAttribsMask):
+        (gl::StateCache::updateVertexAttribTypesValidation):
+        * src/libANGLE/Context.h:
+        * src/libANGLE/Device.cpp:
+        (egl::Device::getAttribute):
+        (egl::Device::getDevice): Deleted.
+        * src/libANGLE/Device.h:
+        * src/libANGLE/Display.cpp:
+        (egl::Display::createContext):
+        (egl::GenerateClientExtensions):
+        (egl::Display::isValidNativeDisplay):
+        (egl::Display::initializeFrontendFeatures):
+        (egl::Display::queryStringi):
+        * src/libANGLE/ErrorStrings.h:
+        * src/libANGLE/Fence.h:
+        * src/libANGLE/FrameCapture.cpp:
+        (angle::ParamCapture::ParamCapture):
+        (angle::ParamCapture::operator=):
+        (angle::ParamBuffer::ParamBuffer):
+        (angle::ParamBuffer::operator=):
+        (angle::ParamBuffer::getParam):
+        (angle::ParamBuffer::getParam const):
+        (angle::ParamBuffer::addParam):
+        (angle::ParamBuffer::addReturnValue):
+        (angle::ParamBuffer::getClientArrayPointerParameter):
+        (angle::CallCapture::CallCapture):
+        (angle::CallCapture::operator=):
+        (angle::CallCapture::name const):
+        (angle::ReplayContext::ReplayContext):
+        (angle::ReplayContext::~ReplayContext):
+        (angle::FrameCapture::FrameCapture):
+        (angle::FrameCapture::maybeCaptureClientData):
+        (angle::FrameCapture::captureCall):
+        (angle::FrameCapture::captureUpdateResourceIDs):
+        (angle::FrameCapture::maybeUpdateResourceIDs):
+        (angle::FrameCapture::captureClientArraySnapshot):
+        (angle::FrameCapture::onEndFrame):
+        (angle::DataCounters::getAndIncrement):
+        (angle::FrameCapture::reset):
+        (angle::CaptureGenHandlesImpl):
+        (angle::WriteParamValueToStream<ParamType::TBufferID>):
+        (angle::WriteParamValueToStream<ParamType::TFenceNVID>):
+        (angle::WriteParamValueToStream<ParamType::TFramebufferID>):
+        (angle::WriteParamValueToStream<ParamType::TMemoryObjectID>):
+        (angle::WriteParamValueToStream<ParamType::TPathID>):
+        (angle::WriteParamValueToStream<ParamType::TProgramPipelineID>):
+        (angle::WriteParamValueToStream<ParamType::TQueryID>):
+        (angle::WriteParamValueToStream<ParamType::TRenderbufferID>):
+        (angle::WriteParamValueToStream<ParamType::TSamplerID>):
+        (angle::WriteParamValueToStream<ParamType::TSemaphoreID>):
+        (angle::WriteParamValueToStream<ParamType::TShaderProgramID>):
+        (angle::WriteParamValueToStream<ParamType::TTextureID>):
+        (angle::WriteParamValueToStream<ParamType::TTransformFeedbackID>):
+        (angle::WriteParamValueToStream<ParamType::TVertexArrayID>):
+        (angle::CallCapture::~CallCapture): Deleted.
+        (angle::ParamBuffer::~ParamBuffer): Deleted.
+        (angle::ParamCapture::~ParamCapture): Deleted.
+        (angle::FrameCapture::~FrameCapture): Deleted.
+        (angle::FrameCapture::anyClientArray const): Deleted.
+        (angle::FrameCapture::saveCapturedFrameAsCpp): Deleted.
+        (angle::FrameCapture::getAndIncrementCounter): Deleted.
+        (angle::FrameCapture::writeStringPointerParamReplay): Deleted.
+        (angle::FrameCapture::writeRenderbufferIDPointerParamReplay): Deleted.
+        (angle::FrameCapture::writeBinaryParamReplay): Deleted.
+        (angle::FrameCapture::writeCallReplay): Deleted.
+        * src/libANGLE/FrameCapture.h:
+        (angle::CaptureGenHandles):
+        * src/libANGLE/FrameCapture_mock.cpp: Added.
+        (angle::CallCapture::~CallCapture):
+        (angle::ParamBuffer::~ParamBuffer):
+        (angle::ParamCapture::~ParamCapture):
+        (angle::FrameCapture::FrameCapture):
+        (angle::FrameCapture::~FrameCapture):
+        (angle::FrameCapture::onEndFrame):
+        (angle::FrameCapture::replay):
+        * src/libANGLE/Framebuffer.cpp:
+        (gl::Framebuffer::formsRenderingFeedbackLoopWith const):
+        (gl::Framebuffer::formsCopyingFeedbackLoopWith const):
+        * src/libANGLE/Framebuffer.h:
+        * src/libANGLE/FramebufferAttachment.cpp:
+        (gl::FramebufferAttachment::getRedSize const):
+        (gl::FramebufferAttachment::getGreenSize const):
+        (gl::FramebufferAttachment::getBlueSize const):
+        (gl::FramebufferAttachment::getAlphaSize const):
+        (gl::FramebufferAttachment::getDepthSize const):
+        (gl::FramebufferAttachment::getStencilSize const):
+        * src/libANGLE/FramebufferAttachment.h:
+        * src/libANGLE/GLES1State.cpp:
+        (gl::GLES1State::getActiveAttributesMask const):
+        * src/libANGLE/GLES1State.h:
+        * src/libANGLE/ImageIndex.cpp:
+        * src/libANGLE/ImageIndex.h:
+        * src/libANGLE/MemoryObject.cpp:
+        (gl::MemoryObject::MemoryObject):
+        * src/libANGLE/MemoryObject.h:
+        * src/libANGLE/MemoryProgramCache.cpp:
+        * src/libANGLE/Program.cpp:
+        (gl::ProgramBindings::bindLocation):
+        (gl::ProgramBindings::getBindingByName const):
+        (gl::ProgramBindings::getBinding const):
+        (gl::ProgramBindings::begin const):
+        (gl::ProgramBindings::end const):
+        (gl::ProgramAliasedBindings::ProgramAliasedBindings):
+        (gl::ProgramAliasedBindings::~ProgramAliasedBindings):
+        (gl::ProgramAliasedBindings::bindLocation):
+        (gl::ProgramAliasedBindings::getBindingByName const):
+        (gl::ProgramAliasedBindings::getBinding const):
+        (gl::ProgramAliasedBindings::begin const):
+        (gl::ProgramAliasedBindings::end const):
+        (gl::ProgramState::getAttributeLocation const):
+        (gl::ProgramState::getFirstAttachedShaderStageType const):
+        (gl::ProgramState::getLastAttachedShaderStageType const):
+        (gl::Program::getFragmentInputBindingInfo const):
+        (gl::Program::link):
+        (gl::ProgramState::updateProgramInterfaceInputs):
+        (gl::ProgramState::updateProgramInterfaceOutputs):
+        (gl::Program::unlink):
+        (gl::Program::getActiveAttribute const):
+        (gl::Program::getActiveAttributeCount const):
+        (gl::Program::getActiveAttributeMaxLength const):
+        (gl::Program::getAttributes const):
+        (gl::Program::getInputResource const):
+        (gl::Program::getInputResourceIndex const):
+        (gl::Program::getResourceMaxNameSize const):
+        (gl::Program::getInputResourceMaxNameSize const):
+        (gl::Program::getOutputResourceMaxNameSize const):
+        (gl::Program::getResourceLocation const):
+        (gl::Program::getInputResourceLocation const):
+        (gl::Program::getOutputResourceLocation const):
+        (gl::Program::getOutputResourceIndex const):
+        (gl::Program::getResourceName const):
+        (gl::Program::getInputResourceName const):
+        (gl::Program::getOutputResourceName const):
+        (gl::Program::getUniformResourceName const):
+        (gl::Program::getBufferVariableResourceName const):
+        (gl::Program::getOutputResource const):
+        (gl::Program::getUniformLocationBindings const):
+        (gl::Program::linkUniforms):
+        (gl::Program::linkAttributes):
+        (gl::Program::linkValidateGlobalNames const):
+        (gl::Program::getMergedVaryings const):
+        (gl::Program::linkOutputVariables):
+        (gl::Program::serialize const):
+        (gl::Program::deserialize):
+        * src/libANGLE/Program.h:
+        (gl::ProgramVaryingRef::get const):
+        * src/libANGLE/ProgramLinkedResources.cpp:
+        (gl::UniformLinker::link):
+        (gl::UniformLinker::indexUniforms):
+        (gl::UniformLinker::gatherUniformLocationsAndCheckConflicts):
+        * src/libANGLE/ProgramLinkedResources.h:
+        * src/libANGLE/ProgramPipeline.cpp:
+        (gl::ProgramPipeline::ProgramPipeline):
+        * src/libANGLE/ProgramPipeline.h:
+        * src/libANGLE/Query.cpp:
+        (gl::Query::Query):
+        * src/libANGLE/Query.h:
+        * src/libANGLE/RefCountObject.h:
+        (gl::RefCountObject::RefCountObject):
+        (gl::RefCountObject::id const):
+        (gl::BindingPointer::id const):
+        * src/libANGLE/Renderbuffer.cpp:
+        (gl::Renderbuffer::Renderbuffer):
+        (gl::Renderbuffer::getId const):
+        * src/libANGLE/Renderbuffer.h:
+        * src/libANGLE/Sampler.cpp:
+        (gl::Sampler::Sampler):
+        * src/libANGLE/Sampler.h:
+        * src/libANGLE/Semaphore.cpp:
+        (gl::Semaphore::Semaphore):
+        * src/libANGLE/Semaphore.h:
+        * src/libANGLE/Shader.cpp:
+        (gl::Shader::resolveCompile):
+        (gl::Shader::getTransformFeedbackVaryingMappedName):
+        * src/libANGLE/State.cpp:
+        (gl::State::getSamplerTextureId const):
+        (gl::State::detachTexture):
+        (gl::State::detachSampler):
+        (gl::State::detachRenderbuffer):
+        (gl::State::removeTransformFeedbackBinding):
+        (gl::State::getActiveQueryId const):
+        (gl::State::detachBuffer):
+        (gl::State::getIntegerv):
+        (gl::State::getIntegeri_v):
+        (gl::State::syncImages):
+        (gl::State::onImageStateChange):
+        * src/libANGLE/State.h:
+        (gl::State::getSamplerId const):
+        (gl::State::getRenderbufferId const):
+        * src/libANGLE/Texture.cpp:
+        (gl::Texture::Texture):
+        (gl::Texture::setStorage):
+        (gl::Texture::getId const):
+        * src/libANGLE/Texture.h:
+        * src/libANGLE/TransformFeedback.cpp:
+        (gl::TransformFeedback::TransformFeedback):
+        (gl::TransformFeedback::detachBuffer):
+        * src/libANGLE/TransformFeedback.h:
+        * src/libANGLE/VaryingPacking.cpp:
+        (gl::VaryingPacking::collectAndPackUserVaryings):
+        (gl::VaryingPacking::packUserVaryings):
+        * src/libANGLE/VertexArray.cpp:
+        (gl::VertexArray::detachBuffer):
+        (gl::VertexArray::bindVertexBufferImpl):
+        * src/libANGLE/VertexArray.h:
+        * src/libANGLE/capture_gles_2_0_params.cpp:
+        (gl::CaptureDeleteBuffers_buffersPacked):
+        (gl::CaptureDeleteFramebuffers_framebuffersPacked):
+        (gl::CaptureDeleteTextures_texturesPacked):
+        (gl::CaptureGenBuffers_buffersPacked):
+        (gl::CaptureGenFramebuffers_framebuffersPacked):
+        (gl::CaptureGenRenderbuffers_renderbuffersPacked):
+        (gl::CaptureGenTextures_texturesPacked):
+        (gl::CaptureShaderSource_string):
+        * src/libANGLE/capture_gles_3_0_params.cpp:
+        (gl::CaptureDeleteQueries_idsPacked):
+        (gl::CaptureDeleteSamplers_samplersPacked):
+        (gl::CaptureDeleteTransformFeedbacks_idsPacked):
+        (gl::CaptureDeleteVertexArrays_arraysPacked):
+        (gl::CaptureGenQueries_idsPacked):
+        (gl::CaptureGenSamplers_samplersPacked):
+        (gl::CaptureGenTransformFeedbacks_idsPacked):
+        (gl::CaptureGenVertexArrays_arraysPacked):
+        * src/libANGLE/capture_gles_3_1_params.cpp:
+        (gl::CaptureDeleteProgramPipelines_pipelinesPacked):
+        (gl::CaptureGenProgramPipelines_pipelinesPacked):
+        * src/libANGLE/capture_gles_ext_params.cpp:
+        (gl::CaptureDeleteQueriesEXT_idsPacked):
+        (gl::CaptureGenQueriesEXT_idsPacked):
+        * src/libANGLE/features.h:
+        * src/libANGLE/formatutils.cpp:
+        (gl::UnsizedHalfFloatOESRGBATextureAttachmentSupport):
+        (gl::BuildInternalFormatInfoMap):
+        (gl::InternalFormat::computeDepthPitch const):
+        (gl::GetVertexFormatID):
+        (gl::GetVertexFormatFromID):
+        (gl::GetVertexFormatSize):
+        * src/libANGLE/frame_capture_utils_autogen.cpp:
+        (angle::GetResourceIDTypeFromParamType):
+        (angle::GetResourceIDTypeName):
+        * src/libANGLE/frame_capture_utils_autogen.h:
+        * src/libANGLE/queryutils.cpp:
+        (gl::GetBufferVariableResourceProperty):
+        (gl::QueryProgramResourceLocation):
+        (gl::QueryProgramResourceiv):
+        (egl::QueryContextAttrib):
+        * src/libANGLE/renderer/DeviceImpl.h:
+        * src/libANGLE/renderer/Format.h:
+        (angle::Format::isVertexTypeHalfFloat const):
+        * src/libANGLE/renderer/FormatID_autogen.h:
+        * src/libANGLE/renderer/Format_table_autogen.cpp:
+        (angle::Format::InternalFormatToID):
+        * src/libANGLE/renderer/angle_format.py:
+        (gl_format_channels):
+        (get_vertex_copy_function):
+        * src/libANGLE/renderer/angle_format_map.json:
+        * src/libANGLE/renderer/copyvertex.h:
+        * src/libANGLE/renderer/copyvertex.inc.h:
+        (rx::CopyTo32FVertexData):
+        (rx::CopyXYZ10ToXYZW32FVertexData):
+        (rx::CopyW2XYZ10ToXYZW32FVertexData):
+        * src/libANGLE/renderer/d3d/DeviceD3D.cpp:
+        (rx::DeviceD3D::getAttribute):
+        (rx::DeviceD3D::getDevice): Deleted.
+        * src/libANGLE/renderer/d3d/DeviceD3D.h:
+        * src/libANGLE/renderer/d3d/HLSLCompiler.cpp:
+        (rx::HLSLCompiler::ensureInitialized):
+        (rx::HLSLCompiler::compileToBinary):
+        * src/libANGLE/renderer/d3d/ProgramD3D.cpp:
+        (rx::ProgramD3D::getVertexExecutableForCachedInputLayout):
+        * src/libANGLE/renderer/d3d/RendererD3D.cpp:
+        (rx::DefaultGLErrorCode):
+        * src/libANGLE/renderer/d3d/ShaderD3D.cpp:
+        (rx::ShaderD3D::compile):
+        * src/libANGLE/renderer/d3d/d3d11/Buffer11.cpp:
+        (rx::Buffer11::getConstantBufferRange):
+        (rx::Buffer11::NativeStorage::FillBufferDesc):
+        * src/libANGLE/renderer/d3d/d3d11/Context11.cpp:
+        (rx::Context11::drawArrays):
+        (rx::Context11::drawArraysInstanced):
+        (rx::Context11::drawArraysInstancedBaseInstance):
+        (rx::Context11::drawArraysIndirect):
+        * src/libANGLE/renderer/d3d/d3d11/DebugAnnotator11.cpp:
+        (rx::DebugAnnotator11::initialize):
+        * src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp:
+        (rx::Renderer11::Renderer11):
+        (rx::Renderer11::initialize):
+        (rx::Renderer11::callD3D11On12CreateDevice):
+        (rx::Renderer11::initializeD3DDevice):
+        (rx::Renderer11::generateDisplayExtensions const):
+        (rx::Renderer11::isValidNativeWindow const):
+        (rx::Renderer11::createNativeWindow const):
+        (rx::Renderer11::drawArrays):
+        (rx::Renderer11::release):
+        (rx::Renderer11::getShareHandleSupport const):
+        (rx::Renderer11::copyImageInternal):
+        * src/libANGLE/renderer/d3d/d3d11/Renderer11.h:
+        * src/libANGLE/renderer/d3d/d3d11/TextureStorage11.cpp:
+        (rx::TextureStorage11::getSRVForImage):
+        (rx::TextureStorage11::getUAVForImage):
+        * src/libANGLE/renderer/d3d/d3d11/Trim11.cpp:
+        (rx::Trim11::trim):
+        (rx::Trim11::registerForRendererTrimRequest):
+        (rx::Trim11::unregisterForRendererTrimRequest):
+        * src/libANGLE/renderer/d3d/d3d11/Trim11.h:
+        * src/libANGLE/renderer/d3d/d3d11/converged/CompositorNativeWindow11.cpp:
+        (rx::RoHelper::SupportedWindowsRelease):
+        * src/libANGLE/renderer/d3d/d3d11/renderer11_utils.cpp:
+        (rx::d3d11_gl::GenerateCaps):
+        (rx::d3d11::InitializeFeatures):
+        * src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.h:
+        * src/libANGLE/renderer/d3d/d3d11/winrt/NativeWindow11WinRT.cpp:
+        (rx::NativeWindow11WinRT::createSwapChain):
+        * src/libANGLE/renderer/d3d/d3d11/winrt/NativeWindow11WinRT.h:
+        * src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.h:
+        * src/libANGLE/renderer/d3d/d3d9/renderer9_utils.cpp:
+        (rx::d3d9::InitializeFeatures):
+        * src/libANGLE/renderer/gen_angle_format_table.py:
+        (ceil_int):
+        (get_channel_struct):
+        (get_mip_generation_function):
+        * src/libANGLE/renderer/gl/BlitGL.cpp:
+        (rx::BlitGL::copyImageToLUMAWorkaroundTexture):
+        (rx::BlitGL::copySubImageToLUMAWorkaroundTexture):
+        (rx::BlitGL::blitColorBufferWithShader):
+        (rx::BlitGL::copySubTexture):
+        (rx::BlitGL::copySubTextureCPUReadback):
+        (rx::BlitGL::copyTexSubImage):
+        (rx::BlitGL::clearRenderableTexture):
+        (rx::BlitGL::clearRenderbuffer):
+        (rx::BlitGL::clearFramebuffer):
+        (rx::BlitGL::clearRenderableTextureAlphaToOne):
+        (rx::BlitGL::initializeResources):
+        (rx::BlitGL::orphanScratchTextures):
+        (rx::BlitGL::setScratchTextureParameter):
+        (rx::BlitGL::getBlitProgram):
+        (rx::BlitGL::getBlitProgramType): Deleted.
+        * src/libANGLE/renderer/gl/BlitGL.h:
+        * src/libANGLE/renderer/gl/ContextGL.cpp:
+        (rx::ContextGL::createRenderbuffer):
+        (rx::ContextGL::setDrawArraysState):
+        (rx::ContextGL::setDrawElementsState):
+        (rx::ContextGL::drawArrays):
+        (rx::ContextGL::updateAttributesForBaseInstance):
+        (rx::ContextGL::resetUpdatedAttributes):
+        (rx::ContextGL::drawArraysInstancedBaseInstance):
+        (rx::ContextGL::drawElements):
+        (rx::ContextGL::drawElementsInstancedBaseVertexBaseInstance):
+        (rx::ContextGL::validateState const):
+        * src/libANGLE/renderer/gl/ContextGL.h:
+        * src/libANGLE/renderer/gl/ProgramGL.cpp:
+        (rx::ProgramGL::link):
+        * src/libANGLE/renderer/gl/RenderbufferGL.cpp:
+        (rx::RenderbufferGL::RenderbufferGL):
+        (rx::RenderbufferGL::~RenderbufferGL):
+        (rx::RenderbufferGL::onDestroy):
+        (rx::RenderbufferGL::setStorage):
+        (rx::RenderbufferGL::setStorageMultisample):
+        (rx::RenderbufferGL::initializeContents):
+        * src/libANGLE/renderer/gl/RenderbufferGL.h:
+        * src/libANGLE/renderer/gl/ShaderGL.cpp:
+        (rx::ShaderGL::compile):
+        * src/libANGLE/renderer/gl/StateManagerGL.cpp:
+        (rx::StateManagerGL::bindBufferBase):
+        (rx::StateManagerGL::bindBufferRange):
+        (rx::StateManagerGL::validateState const):
+        * src/libANGLE/renderer/gl/StateManagerGL.h:
+        * src/libANGLE/renderer/gl/SurfaceGL.cpp:
+        (rx::SurfaceGL::initializeContents):
+        * src/libANGLE/renderer/gl/TextureGL.cpp:
+        (rx::TextureGL::setImageHelper):
+        (rx::TextureGL::setSubImage):
+        (rx::TextureGL::setCompressedImage):
+        (rx::TextureGL::setCompressedSubImage):
+        (rx::TextureGL::copyImage):
+        (rx::TextureGL::copySubTextureHelper):
+        (rx::TextureGL::setStorage):
+        (rx::TextureGL::setImageExternal):
+        (rx::TextureGL::setStorageMultisample):
+        (rx::TextureGL::setStorageExternalMemory):
+        (rx::TextureGL::setEGLImageTarget):
+        (rx::TextureGL::setLevelInfo):
+        (rx::TextureGL::initializeContents):
+        * src/libANGLE/renderer/gl/VertexArrayGL.cpp:
+        (rx::VertexArrayGL::streamAttributes const):
+        (rx::VertexArrayGL::validateState const):
+        * src/libANGLE/renderer/gl/VertexArrayGL.h:
+        * src/libANGLE/renderer/gl/cgl/DeviceCGL.cpp: Added.
+        (rx::DeviceCGL::DeviceCGL):
+        (rx::DeviceCGL::~DeviceCGL):
+        (rx::DeviceCGL::initialize):
+        (rx::DeviceCGL::getAttribute):
+        (rx::DeviceCGL::getType):
+        (rx::DeviceCGL::generateExtensions const):
+        * src/libANGLE/renderer/gl/cgl/DeviceCGL.h: Added.
+        * src/libANGLE/renderer/gl/cgl/DisplayCGL.h:
+        * src/libANGLE/renderer/gl/cgl/DisplayCGL.mm:
+        (rx::DisplayCGL::createDevice):
+        (rx::DisplayCGL::getCGLPixelFormat const):
+        (rx::DisplayCGL::generateExtensions const):
+        * src/libANGLE/renderer/gl/cgl/IOSurfaceSurfaceCGL.mm:
+        (rx::IOSurfaceSurfaceCGL::initializeAlphaChannel):
+        * src/libANGLE/renderer/gl/egl/DisplayEGL.cpp:
+        (rx::DisplayEGL::generateExtensions const):
+        * src/libANGLE/renderer/gl/glx/DisplayGLX.cpp:
+        (rx::DisplayGLX::makeCurrent):
+        * src/libANGLE/renderer/gl/glx/WindowSurfaceGLX.cpp:
+        (rx::WindowSurfaceGLX::initialize):
+        * src/libANGLE/renderer/gl/renderergl_utils.cpp:
+        (rx::nativegl_gl::GenerateCaps):
+        (rx::nativegl_gl::InitializeFeatures):
+        (rx::nativegl_gl::InitializeFrontendFeatures):
+        (rx::nativegl::SupportsCompute):
+        (rx::nativegl::GetBufferBindingQuery):
+        (rx::nativegl::GetBufferBindingString):
+        * src/libANGLE/renderer/gl/renderergl_utils.h:
+        * src/libANGLE/renderer/load_functions_data.json:
+        * src/libANGLE/renderer/load_functions_table_autogen.cpp:
+        (angle::GetLoadFunctionsMap):
+        * src/libANGLE/renderer/null/DeviceNULL.cpp:
+        (rx::DeviceNULL::getAttribute):
+        (rx::DeviceNULL::getDevice): Deleted.
+        * src/libANGLE/renderer/null/DeviceNULL.h:
+        * src/libANGLE/renderer/renderer_utils.cpp:
+        (rx::ShouldUseDebugLayers):
+        * src/libANGLE/renderer/vulkan/BufferVk.cpp:
+        (rx::BufferVk::release):
+        (rx::BufferVk::mapRangeImpl):
+        (rx::BufferVk::setDataImpl):
+        * src/libANGLE/renderer/vulkan/CommandGraph.cpp:
+        (rx::vk::CommandGraphResource::CommandGraphResource):
+        (rx::vk::CommandGraphResource::~CommandGraphResource):
+        (rx::vk::CommandGraphResource::isResourceInUse const):
+        (rx::vk::CommandGraphResource::recordCommands):
+        (rx::vk::CommandGraphResource::addWriteDependency):
+        (rx::vk::CommandGraphResource::addReadDependency):
+        (rx::vk::CommandGraphResource::startNewCommands):
+        (rx::vk::CommandGraphResource::onWriteImpl):
+        (rx::vk::SharedGarbage::SharedGarbage):
+        (rx::vk::SharedGarbage::operator=):
+        (rx::vk::SharedGarbage::destroyIfComplete):
+        (rx::vk::CommandGraph::~CommandGraph):
+        (rx::vk::CommandGraph::submitCommands):
+        (rx::vk::CommandGraph::releaseResourceUses):
+        (rx::vk::CommandGraph::releaseResourceUsesAndUpdateSerials):
+        (rx::vk::CommandGraphResource::resetQueueSerial): Deleted.
+        * src/libANGLE/renderer/vulkan/CommandGraph.h:
+        (rx::vk::CommandGraphResource::getLatestSerial const):
+        (rx::vk::CommandGraphResource::hasStartedRenderPass const):
+        (rx::vk::CommandGraphResource::updateCurrentAccessNodes):
+        (rx::vk::CommandGraphResource::onGraphAccess):
+        (rx::vk::CommandGraphResource::appendToStartedRenderPass):
+        (rx::vk::CommandGraphResource::renderPassStartedButEmpty const):
+        (rx::vk::CommandGraphResource::clearRenderPassColorAttachment):
+        (rx::vk::CommandGraphResource::clearRenderPassDepthAttachment):
+        (rx::vk::CommandGraphResource::clearRenderPassStencilAttachment):
+        (rx::vk::CommandGraphResource::invalidateRenderPassColorAttachment):
+        (rx::vk::CommandGraphResource::invalidateRenderPassDepthAttachment):
+        (rx::vk::CommandGraphResource::invalidateRenderPassStencilAttachment):
+        (rx::vk::CommandGraphResource::getRenderPassRenderArea const):
+        (rx::vk::CommandGraphResource::addGlobalMemoryBarrier):
+        (rx::vk::CommandGraphResource::hasChildlessWritingNode const):
+        (rx::vk::CommandGraph::onResourceUse):
+        (rx::vk::CommandGraphResource::getStoredQueueSerial const): Deleted.
+        (rx::vk::CommandGraphResource::updateQueueSerial): Deleted.
+        * src/libANGLE/renderer/vulkan/ContextVk.cpp:
+        (rx::CommandBatch::CommandBatch):
+        (rx::CommandBatch::operator=):
+        (rx::CommandBatch::destroy):
+        (rx::CommandQueue::destroy):
+        (rx::CommandQueue::init):
+        (rx::CommandQueue::checkCompletedCommands):
+        (rx::CommandQueue::releaseToCommandBatch):
+        (rx::CommandQueue::clearAllGarbage):
+        (rx::CommandQueue::allocatePrimaryCommandBuffer):
+        (rx::CommandQueue::releasePrimaryCommandBuffer):
+        (rx::CommandQueue::handleDeviceLost):
+        (rx::CommandQueue::hasInFlightCommands const):
+        (rx::CommandQueue::finishToSerialOrTimeout):
+        (rx::CommandQueue::submitFrame):
+        (rx::CommandQueue::getLastSubmittedFence const):
+        (rx::ContextVk::ContextVk):
+        (rx::ContextVk::onDestroy):
+        (rx::ContextVk::initialize):
+        (rx::ContextVk::setupDraw):
+        (rx::ContextVk::setupIndirectDraw):
+        (rx::ContextVk::setupIndexedIndirectDraw):
+        (rx::ContextVk::setupLineLoopIndexedIndirectDraw):
+        (rx::ContextVk::handleDirtyGraphicsVertexBuffers):
+        (rx::ContextVk::handleDirtyGraphicsIndexBuffer):
+        (rx::ContextVk::submitFrame):
+        (rx::ContextVk::flushCommandGraph):
+        (rx::ContextVk::synchronizeCpuGpuTime):
+        (rx::ContextVk::traceGpuEventImpl):
+        (rx::ContextVk::checkCompletedGpuEvents):
+        (rx::ContextVk::flushGpuEvents):
+        (rx::ContextVk::clearAllGarbage):
+        (rx::ContextVk::handleDeviceLost):
+        (rx::ContextVk::drawArraysIndirect):
+        (rx::ContextVk::drawElementsIndirect):
+        (rx::ContextVk::syncState):
+        (rx::ContextVk::onMakeCurrent):
+        (rx::ContextVk::dispatchComputeIndirect):
+        (rx::ContextVk::memoryBarrier):
+        (rx::ContextVk::writeAtomicCounterBufferDriverUniformOffsets):
+        (rx::ContextVk::updateActiveTextures):
+        (rx::ContextVk::updateActiveImages):
+        (rx::ContextVk::shouldFlush):
+        (rx::ContextVk::flushImpl):
+        (rx::ContextVk::finishImpl):
+        (rx::ContextVk::isSerialInUse const):
+        (rx::ContextVk::checkCompletedCommands):
+        (rx::ContextVk::finishToSerial):
+        (rx::ContextVk::finishToSerialOrTimeout):
+        (rx::ContextVk::getCompatibleRenderPass):
+        (rx::ContextVk::getRenderPassWithOps):
+        (rx::ContextVk::ensureSubmitFenceInitialized):
+        (rx::ContextVk::getNextSubmitFence):
+        (rx::ContextVk::getLastSubmittedFence const):
+        (rx::ContextVk::getTimestamp):
+        (rx::ContextVk::updateDefaultAttribute):
+        (rx::ContextVk::waitForSwapchainImageIfNecessary):
+        (rx::ContextVk::CommandBatch::CommandBatch): Deleted.
+        (rx::ContextVk::CommandBatch::operator=): Deleted.
+        (rx::ContextVk::CommandBatch::destroy): Deleted.
+        (rx::ContextVk::releaseToCommandBatch): Deleted.
+        (rx::ContextVk::recycleCommandBatch): Deleted.
+        (rx::ContextVk::getCommandGraph): Deleted.
+        * src/libANGLE/renderer/vulkan/ContextVk.h:
+        (rx::ContextVk::onVertexAttributeChange):
+        (rx::ContextVk::getCurrentQueueSerial const):
+        (rx::ContextVk::getLastSubmittedQueueSerial const):
+        (rx::ContextVk::getLastCompletedQueueSerial const):
+        (rx::ContextVk::addGarbage):
+        (rx::ContextVk::getCommandGraph):
+        (rx::ContextVk::releaseObject): Deleted.
+        * src/libANGLE/renderer/vulkan/DeviceVk.cpp:
+        (rx::DeviceVk::getAttribute):
+        (rx::DeviceVk::getDevice): Deleted.
+        * src/libANGLE/renderer/vulkan/DeviceVk.h:
+        * src/libANGLE/renderer/vulkan/DisplayVk.cpp:
+        (rx::DisplayVk::generateExtensions const):
+        * src/libANGLE/renderer/vulkan/FramebufferVk.cpp:
+        (rx::FramebufferVk::destroy):
+        (rx::FramebufferVk::invalidate):
+        (rx::FramebufferVk::invalidateSub):
+        (rx::FramebufferVk::clearImpl):
+        (rx::FramebufferVk::getImplementationColorReadType const):
+        (rx::FramebufferVk::blitWithCommand):
+        (rx::FramebufferVk::blit):
+        (rx::FramebufferVk::resolveColorWithCommand):
+        (rx::FramebufferVk::readPixelsImpl):
+        (rx::FramebufferVk::onScissorChange):
+        * src/libANGLE/renderer/vulkan/FramebufferVk.h:
+        (rx::FramebufferVk::appendToStartedRenderPass):
+        * src/libANGLE/renderer/vulkan/GlslangWrapper.cpp:
+        * src/libANGLE/renderer/vulkan/ImageVk.cpp:
+        (rx::ImageVk::onDestroy):
+        (rx::ImageVk::orphan):
+        * src/libANGLE/renderer/vulkan/ImageVk.h:
+        * src/libANGLE/renderer/vulkan/MemoryObjectVk.cpp:
+        (rx::MemoryObjectVk::createImage):
+        * src/libANGLE/renderer/vulkan/OverlayVk.cpp:
+        (rx::OverlayVk::createFont):
+        (rx::OverlayVk::cullWidgets):
+        (rx::OverlayVk::onPresent):
+        * src/libANGLE/renderer/vulkan/PersistentCommandPool.cpp:
+        (rx::vk::PersistentCommandPool::destroy):
+        (rx::vk::PersistentCommandPool::allocate):
+        (rx::vk::PersistentCommandPool::alloc): Deleted.
+        * src/libANGLE/renderer/vulkan/PersistentCommandPool.h:
+        * src/libANGLE/renderer/vulkan/ProgramVk.cpp:
+        (rx::ProgramVk::reset):
+        (rx::ProgramVk::initDefaultUniformLayoutMapping):
+        (rx::ProgramVk::updateDefaultUniformsDescriptorSet):
+        (rx::ProgramVk::updateBuffersDescriptorSet):
+        (rx::ProgramVk::updateAtomicCounterBuffersDescriptorSet):
+        (rx::ProgramVk::updateImagesDescriptorSet):
+        (rx::ProgramVk::updateTransformFeedbackDescriptorSetImpl):
+        (rx::ProgramVk::updateDescriptorSets):
+        * src/libANGLE/renderer/vulkan/ProgramVk.h:
+        (rx::ProgramVk::getGraphicsPipeline):
+        * src/libANGLE/renderer/vulkan/README.md:
+        * src/libANGLE/renderer/vulkan/RenderTargetVk.cpp:
+        (rx::RenderTargetVk::RenderTargetVk):
+        (rx::RenderTargetVk::init):
+        (rx::RenderTargetVk::reset):
+        (rx::RenderTargetVk::onColorDraw):
+        (rx::RenderTargetVk::onDepthStencilDraw):
+        (rx::RenderTargetVk::updateSwapchainImage):
+        (rx::RenderTargetVk::getImageForRead):
+        (rx::RenderTargetVk::getImageForWrite const):
+        (rx::RenderTargetVk::getFetchImageView const): Deleted.
+        * src/libANGLE/renderer/vulkan/RenderTargetVk.h:
+        * src/libANGLE/renderer/vulkan/RenderbufferVk.cpp:
+        (rx::RenderbufferVk::setStorageImpl):
+        (rx::RenderbufferVk::setStorageEGLImageTarget):
+        (rx::RenderbufferVk::releaseImage):
+        * src/libANGLE/renderer/vulkan/RenderbufferVk.h:
+        * src/libANGLE/renderer/vulkan/RendererVk.cpp:
+        (rx::RendererVk::~RendererVk):
+        (rx::RendererVk::onDestroy):
+        (rx::RendererVk::notifyDeviceLost):
+        (rx::RendererVk::initialize):
+        (rx::RendererVk::initializeDevice):
+        (rx::RendererVk::initFeatures):
+        (rx::RendererVk::queueSubmit):
+        (rx::RendererVk::cleanupGarbage):
+        (rx::RendererVk::getMaxFenceWaitTimeNs const):
+        (rx::RendererVk::onCompletedSerial):
+        (rx::RendererVk::nextSerial): Deleted.
+        (rx::RendererVk::addGarbage): Deleted.
+        * src/libANGLE/renderer/vulkan/RendererVk.h:
+        (rx::CollectGarbage):
+        (rx::RendererVk::getMaxVertexAttribDivisor const):
+        (rx::RendererVk::collectGarbageAndReinit):
+        (rx::RendererVk::getCurrentQueueSerial const):
+        (rx::RendererVk::getLastSubmittedQueueSerial const):
+        (rx::RendererVk::getLastCompletedQueueSerial const):
+        (rx::RendererVk::shouldCleanupGarbage):
+        * src/libANGLE/renderer/vulkan/SamplerVk.cpp:
+        (rx::SamplerVk::onDestroy):
+        (rx::SamplerVk::syncState):
+        * src/libANGLE/renderer/vulkan/SecondaryCommandBuffer.cpp:
+        (rx::vk::priv::SecondaryCommandBuffer::executeCommands):
+        (rx::vk::priv::SecondaryCommandBuffer::dumpCommands const):
+        * src/libANGLE/renderer/vulkan/SecondaryCommandBuffer.h:
+        (rx::vk::priv::SecondaryCommandBuffer::drawIndirect):
+        (rx::vk::priv::SecondaryCommandBuffer::drawIndexedIndirect):
+        * src/libANGLE/renderer/vulkan/SemaphoreVk.cpp:
+        (rx::SemaphoreVk::onDestroy):
+        * src/libANGLE/renderer/vulkan/SurfaceVk.cpp:
+        (rx::OffscreenSurfaceVk::AttachmentImage::initialize):
+        (rx::OffscreenSurfaceVk::AttachmentImage::destroy):
+        (rx::OffscreenSurfaceVk::OffscreenSurfaceVk):
+        (rx::WindowSurfaceVk::WindowSurfaceVk):
+        (rx::WindowSurfaceVk::createSwapChain):
+        (rx::WindowSurfaceVk::releaseSwapchainImages):
+        (rx::WindowSurfaceVk::destroySwapChainImages):
+        (rx::WindowSurfaceVk::present):
+        (rx::WindowSurfaceVk::nextSwapchainImage):
+        * src/libANGLE/renderer/vulkan/SyncVk.cpp:
+        (rx::vk::SyncHelper::SyncHelper):
+        (rx::vk::SyncHelper::~SyncHelper):
+        (rx::vk::SyncHelper::releaseToRenderer):
+        (rx::vk::SyncHelper::initialize):
+        (rx::vk::SyncHelper::clientWait):
+        (rx::vk::SyncHelper::serverWait):
+        (rx::vk::SyncHelper::getStatus):
+        (rx::SyncVk::onDestroy):
+        (rx::SyncVk::serverWait):
+        (rx::EGLSyncVk::onDestroy):
+        (rx::EGLSyncVk::serverWait):
+        (rx::FenceSyncVk::FenceSyncVk): Deleted.
+        (rx::FenceSyncVk::~FenceSyncVk): Deleted.
+        (rx::FenceSyncVk::onDestroy): Deleted.
+        (rx::FenceSyncVk::initialize): Deleted.
+        (rx::FenceSyncVk::clientWait): Deleted.
+        (rx::FenceSyncVk::serverWait): Deleted.
+        (rx::FenceSyncVk::getStatus): Deleted.
+        * src/libANGLE/renderer/vulkan/SyncVk.h:
+        * src/libANGLE/renderer/vulkan/TextureVk.cpp:
+        (rx::TextureVk::onDestroy):
+        (rx::TextureVk::copySubImageImpl):
+        (rx::TextureVk::copySubTextureImpl):
+        (rx::TextureVk::copySubImageImplWithTransfer):
+        (rx::TextureVk::copySubImageImplWithDraw):
+        (rx::TextureVk::setStorageExternalMemory):
+        (rx::TextureVk::setEGLImageTarget):
+        (rx::TextureVk::ensureImageAllocated):
+        (rx::TextureVk::setImageHelper):
+        (rx::TextureVk::copyImageDataToBufferAndGetData):
+        (rx::TextureVk::copyImageDataToBuffer):
+        (rx::TextureVk::generateMipmapsWithCPU):
+        (rx::TextureVk::generateMipmap):
+        (rx::TextureVk::setBaseLevel):
+        (rx::TextureVk::changeLevels):
+        (rx::TextureVk::bindTexImage):
+        (rx::TextureVk::getAttachmentRenderTarget):
+        (rx::TextureVk::ensureImageInitialized):
+        (rx::TextureVk::initLayerRenderTargets):
+        (rx::TextureVk::syncState):
+        (rx::TextureVk::getReadImageView const):
+        (rx::TextureVk::getFetchImageView const):
+        (rx::TextureVk::getLayerLevelDrawImageView):
+        (rx::TextureVk::getLayerLevelStorageImageView):
+        (rx::TextureVk::initImage):
+        (rx::TextureVk::initImageViews):
+        (rx::TextureVk::releaseImage):
+        (rx::TextureVk::releaseImageViews):
+        (rx::TextureVk::releaseStagingBuffer):
+        (rx::TextureVk::getLevelCount const):
+        (rx::TextureVk::generateMipmapLevelsWithCPU):
+        (rx::TextureVk::TextureVkViews::TextureVkViews): Deleted.
+        (rx::TextureVk::TextureVkViews::~TextureVkViews): Deleted.
+        (rx::TextureVk::TextureVkViews::release): Deleted.
+        (rx::TextureVk::init3DRenderTargets): Deleted.
+        (rx::TextureVk::initCubeMapRenderTargets): Deleted.
+        (rx::TextureVk::getTextureViews const): Deleted.
+        (rx::TextureVk::initImageViewImpl): Deleted.
+        * src/libANGLE/renderer/vulkan/TextureVk.h:
+        (): Deleted.
+        * src/libANGLE/renderer/vulkan/TransformFeedbackVk.cpp:
+        (rx::TransformFeedbackVk::onBeginOrEnd):
+        * src/libANGLE/renderer/vulkan/UtilsVk.cpp:
+        (rx::UtilsVk::ensureConvertIndexIndirectResourcesInitialized):
+        (rx::UtilsVk::ensureConvertIndexIndirectLineLoopResourcesInitialized):
+        (rx::UtilsVk::convertIndexIndirectBuffer):
+        (rx::UtilsVk::convertLineLoopIndexIndirectBuffer):
+        (rx::UtilsVk::startRenderPass):
+        (rx::UtilsVk::clearFramebuffer):
+        (rx::UtilsVk::blitResolveImpl):
+        (rx::UtilsVk::stencilBlitResolveNoShaderExport):
+        (rx::UtilsVk::copyImage):
+        (rx::UtilsVk::cullOverlayWidgets):
+        (rx::UtilsVk::drawOverlay):
+        * src/libANGLE/renderer/vulkan/UtilsVk.h:
+        * src/libANGLE/renderer/vulkan/VertexArrayVk.cpp:
+        (rx::VertexArrayVk::destroy):
+        (rx::VertexArrayVk::convertIndexBufferIndirectGPU):
+        (rx::VertexArrayVk::handleLineLoopIndirect):
+        (rx::VertexArrayVk::convertVertexBufferCPU):
+        (rx::VertexArrayVk::syncDirtyAttrib):
+        (rx::VertexArrayVk::updateStreamedAttribs):
+        (rx::VertexArrayVk::updateDefaultAttrib):
+        (rx::VertexArrayVk::updateClientAttribs): Deleted.
+        * src/libANGLE/renderer/vulkan/VertexArrayVk.h:
+        (rx::VertexArrayVk::getStreamingVertexAttribsMask const):
+        * src/libANGLE/renderer/vulkan/android/HardwareBufferImageSiblingVkAndroid.cpp:
+        (rx::HardwareBufferImageSiblingVkAndroid::initImpl):
+        (rx::HardwareBufferImageSiblingVkAndroid::release):
+        * src/libANGLE/renderer/vulkan/android/HardwareBufferImageSiblingVkAndroid.h:
+        * src/libANGLE/renderer/vulkan/doc/FastOpenGLStateTransitions.md:
+        * src/libANGLE/renderer/vulkan/doc/FormatTablesAndEmulation.md:
+        * src/libANGLE/renderer/vulkan/doc/OpenGLLineSegmentRasterization.md:
+        * src/libANGLE/renderer/vulkan/doc/ShaderModuleCompilation.md:
+        * src/libANGLE/renderer/vulkan/gen_vk_internal_shaders.py:
+        (shader_path):
+        * src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000000.inc:
+        * src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000001.inc:
+        * src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000008.inc:
+        * src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000009.inc:
+        * src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000018.inc:
+        * src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000019.inc:
+        * src/libANGLE/renderer/vulkan/shaders/src/ConvertIndex.comp:
+        * src/libANGLE/renderer/vulkan/shaders/src/ConvertIndex.comp.json:
+        * src/libANGLE/renderer/vulkan/shaders/src/ConvertVertex.comp:
+        * src/libANGLE/renderer/vulkan/shaders/src/ConvertVertex.comp.json:
+        * src/libANGLE/renderer/vulkan/vk_cache_utils.cpp:
+        (rx::vk::GraphicsPipelineDesc::initializePipeline const):
+        (rx::vk::GraphicsPipelineDesc::updateVertexInput):
+        (rx::vk::PipelineLayoutDesc::updatePushConstantRange):
+        (rx::RenderPassCache::addRenderPass):
+        (rx::GraphicsPipelineCache::release):
+        (rx::GraphicsPipelineCache::insertPipeline):
+        * src/libANGLE/renderer/vulkan/vk_cache_utils.h:
+        * src/libANGLE/renderer/vulkan/vk_caps_utils.cpp:
+        (rx::RendererVk::ensureCapsInitialized const):
+        * src/libANGLE/renderer/vulkan/vk_format_map.json:
+        * src/libANGLE/renderer/vulkan/vk_format_table_autogen.cpp:
+        (rx::vk::Format::initialize):
+        * src/libANGLE/renderer/vulkan/vk_format_utils.cpp:
+        (rx::MapSwizzleState):
+        * src/libANGLE/renderer/vulkan/vk_helpers.cpp:
+        (rx::vk::DynamicBuffer::allocate):
+        (rx::vk::DynamicBuffer::releaseBufferListToRenderer):
+        (rx::vk::DynamicBuffer::release):
+        (rx::vk::DynamicBuffer::releaseInFlightBuffers):
+        (rx::vk::DescriptorPoolHelper::release):
+        (rx::vk::LineLoopHelper::LineLoopHelper):
+        (rx::vk::LineLoopHelper::streamIndicesIndirect):
+        (rx::vk::LineLoopHelper::release):
+        (rx::vk::LineLoopHelper::destroy):
+        (rx::vk::BufferHelper::init):
+        (rx::vk::BufferHelper::release):
+        (rx::vk::ImageHelper::ImageHelper):
+        (rx::vk::ImageHelper::init):
+        (rx::vk::ImageHelper::initExternal):
+        (rx::vk::ImageHelper::releaseImage):
+        (rx::vk::ImageHelper::releaseStagingBuffer):
+        (rx::vk::ImageHelper::destroy):
+        (rx::vk::ImageHelper::getBaseLevel):
+        (rx::vk::ImageHelper::setBaseAndMaxLevels):
+        (rx::vk::ImageHelper::generateMipmapsWithBlit):
+        (rx::vk::ImageHelper::removeStagedUpdates):
+        (rx::vk::ImageHelper::stageSubresourceUpdate):
+        (rx::vk::ImageHelper::stageSubresourceUpdateAndGetData):
+        (rx::vk::ImageHelper::stageSubresourceUpdateFromBuffer):
+        (rx::vk::ImageHelper::stageSubresourceUpdateFromFramebuffer):
+        (rx::vk::ImageHelper::allocateStagingMemory):
+        (rx::vk::ImageHelper::flushStagedUpdates):
+        (rx::vk::ImageHelper::isUpdateStaged):
+        (rx::vk::ImageHelper::SubresourceUpdate::SubresourceUpdate):
+        (rx::vk::ImageHelper::SubresourceUpdate::release):
+        (rx::vk::FramebufferHelper::release):
+        (rx::vk::ShaderProgramHelper::release):
+        (rx::vk::DynamicBuffer::releaseBufferListToContext): Deleted.
+        (rx::vk::DynamicBuffer::releaseBufferListToDisplay): Deleted.
+        (rx::vk::ImageHelper::dumpResources): Deleted.
+        * src/libANGLE/renderer/vulkan/vk_helpers.h:
+        (rx::vk::ShaderProgramHelper::getShader):
+        (rx::vk::ShaderProgramHelper::getGraphicsPipeline):
+        * src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.cpp:
+        (rx::vk::ShaderLibrary::destroy):
+        (rx::vk::ShaderLibrary::getConvertIndexIndirectLineLoop_comp):
+        * src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.gni:
+        * src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.h:
+        * src/libANGLE/renderer/vulkan/vk_utils.cpp:
+        (rx::HasKhronosValidationLayer):
+        (rx::HasStandardValidationLayer):
+        (rx::GetAvailableValidationLayers):
+        (rx::vk::StagingBuffer::init):
+        (rx::vk::StagingBuffer::release):
+        (rx::vk::GarbageObject::GarbageObject):
+        (rx::vk::GarbageObject::operator=):
+        (rx::vk::GarbageObject::destroy):
+        (rx::gl_vk::GetSamplerMipmapMode):
+        (rx::vk::StagingBuffer::dumpResources): Deleted.
+        (rx::vk::GarbageObjectBase::GarbageObjectBase): Deleted.
+        (rx::vk::GarbageObjectBase::destroy): Deleted.
+        (rx::vk::GarbageObject::destroyIfComplete): Deleted.
+        * src/libANGLE/renderer/vulkan/vk_utils.h:
+        (rx::vk::GarbageObject::valid const):
+        (rx::vk::GarbageObject::Get):
+        (rx::vk::GetGarbage):
+        (rx::vk::GarbageObjectBase::GarbageObjectBase): Deleted.
+        * src/libANGLE/renderer/vulkan/vk_wrapper.h:
+        (rx::vk::WrappedObject::getHandle const):
+        (rx::vk::WrappedObject::valid const):
+        (rx::vk::WrappedObject::ptr const):
+        (rx::vk::WrappedObject::release):
+        (rx::vk::WrappedObject::WrappedObject):
+        (rx::vk::WrappedObject::~WrappedObject):
+        (rx::vk::WrappedObject::operator=):
+        (rx::vk::priv::CommandBuffer::SupportsQueries):
+        (rx::vk::priv::CommandBuffer::getMemoryUsageStats const):
+        (rx::vk::priv::CommandBuffer::drawIndexedIndirect):
+        (rx::vk::priv::CommandBuffer::drawIndirect):
+        (rx::vk::WrappedObject::dumpResources): Deleted.
+        (rx::vk::priv::CommandBuffer::getMemoryUsageStats): Deleted.
+        * src/libANGLE/validationEGL.cpp:
+        (egl::ValidateCreateContext):
+        (egl::ValidateMakeCurrent):
+        (egl::ValidateCompatibleSurface):
+        (egl::ValidateStreamConsumerGLTextureExternalKHR):
+        (egl::ValidateStreamConsumerGLTextureExternalAttribsNV):
+        (egl::ValidateQueryStringiANGLE):
+        (egl::ValidateCompatibleConfigs): Deleted.
+        * src/libANGLE/validationEGL.h:
+        * src/libANGLE/validationES.cpp:
+        (gl::ValidateRenderbufferStorageParametersBase):
+        (gl::ValidateTexStorageMultisample):
+        * src/libANGLE/validationES.h:
+        (gl::ValidateVertexFormat):
+        * src/libANGLE/validationES2.cpp:
+        (gl::ValidateES2TexStorageParameters):
+        * src/libANGLE/validationES3.cpp:
+        (gl::ValidateES3TexStorageParametersBase):
+        * src/libANGLE/validationES31.cpp:
+        (gl::err::ValidateProgramResourceIndex):
+        * src/libGLESv2.gni:
+        * src/libGLESv2/entry_points_egl_ext.cpp:
+        * src/tests/BUILD.gn:
+        * src/tests/angle_deqp_tests_main.cpp:
+        (main):
+        * src/tests/angle_end2end_tests.gni:
+        * src/tests/compiler_tests/DebugShaderPrecision_test.cpp:
+        (TEST_F):
+        * src/tests/compiler_tests/ImmutableString_test_ESSL_autogen.cpp:
+        (sh::TEST):
+        * src/tests/compiler_tests/ImmutableString_test_autogen.cpp:
+        (sh::TEST):
+        * src/tests/compiler_tests/QualificationOrder_test.cpp:
+        (TEST_F):
+        * src/tests/deqp_support/angle_deqp_gtest.cpp:
+        (angle::InitTestHarness):
+        * src/tests/deqp_support/angle_deqp_libtester_main.cpp:
+        * src/tests/deqp_support/deqp_egl_TestExpectations: Removed.
+        * src/tests/deqp_support/deqp_gles2_TestExpectations: Removed.
+        * src/tests/deqp_support/deqp_gles31_TestExpectations: Removed.
+        * src/tests/deqp_support/deqp_gles3_TestExpectations: Removed.
+        * src/tests/deqp_support/deqp_khr_gles2_TestExpectations: Removed.
+        * src/tests/deqp_support/deqp_khr_gles31_TestExpectations: Removed.
+        * src/tests/deqp_support/deqp_khr_gles3_TestExpectations: Removed.
+        * src/tests/deqp_support/tcuANGLENativeDisplayFactory.cpp:
+        * src/tests/deqp_support/tcuANGLEPlatform.cpp:
+        (tcu::ANGLEPlatform::ANGLEPlatform):
+        * src/tests/deqp_support/tes31Context_override.cpp:
+        (deqp::gles31::Context::Context):
+        (deqp::gles31::Context::~Context):
+        (deqp::gles31::Context::createRenderContext):
+        (deqp::gles31::Context::destroyRenderContext):
+        (deqp::gles31::Context::getRenderTarget const):
+        * src/tests/egl_tests/EGLDeviceCGLTest.cpp: Added.
+        (EGLDeviceCGLQueryTest::EGLDeviceCGLQueryTest):
+        (TEST_P):
+        * src/tests/egl_tests/EGLDirectCompositionTest.cpp:
+        * src/tests/egl_tests/EGLFeatureControlTest.cpp:
+        (TEST_P):
+        * src/tests/egl_tests/EGLNoConfigContextTest.cpp: Added.
+        (EGLNoConfigContextTest::EGLNoConfigContextTest):
+        (TEST_P):
+        * src/tests/gl_tests/BlendFuncExtendedTest.cpp:
+        (angle::EXTBlendFuncExtendedDrawTestES3::LinkProgram):
+        * src/tests/gl_tests/ComputeShaderTest.cpp:
+        * src/tests/gl_tests/CopyTexImageTest.cpp:
+        (angle::TEST_P):
+        * src/tests/gl_tests/CopyTextureTest.cpp:
+        (angle::CopyTextureVariationsTest::initializeSourceTexture):
+        (angle::CopyTextureVariationsTest::testCopyTexture):
+        (angle::CopyTextureVariationsTest::testCopySubTexture):
+        (angle::TEST_P):
+        * src/tests/gl_tests/DrawBaseVertexBaseInstanceTest.cpp:
+        (angle::DrawBaseVertexBaseInstanceTest::DrawBaseVertexBaseInstanceTest):
+        (angle::DrawBaseVertexBaseInstanceTest::vertexShaderSource300):
+        * src/tests/gl_tests/FramebufferTest.cpp:
+        (TEST_P):
+        * src/tests/gl_tests/GLSLTest.cpp:
+        * src/tests/gl_tests/IndexBufferOffsetTest.cpp:
+        * src/tests/gl_tests/InstancingTest.cpp:
+        * src/tests/gl_tests/LineLoopTest.cpp:
+        (LineLoopTest::checkPixels):
+        (LineLoopTest::runTest):
+        (LineLoopIndirectTest::runTest):
+        (TEST_P):
+        * src/tests/gl_tests/LinkAndRelinkTest.cpp:
+        (angle::TEST_P):
+        * src/tests/gl_tests/MipmapTest.cpp:
+        * src/tests/gl_tests/OcclusionQueriesTest.cpp:
+        * src/tests/gl_tests/ParallelShaderCompileTest.cpp:
+        (angle::ParallelShaderCompileTest::TaskRunner::run):
+        * src/tests/gl_tests/ProgramInterfaceTest.cpp:
+        * src/tests/gl_tests/SimpleOperationTest.cpp:
+        * src/tests/gl_tests/StateChangeTest.cpp:
+        * src/tests/gl_tests/TextureTest.cpp:
+        (angle::SliceFormatColor):
+        (angle::SliceFormatColor32F):
+        * src/tests/gl_tests/TimerQueriesTest.cpp:
+        * src/tests/gl_tests/UniformBufferTest.cpp:
+        * src/tests/gl_tests/VertexAttributeTest.cpp:
+        (angle::TypeStride):
+        (angle::Normalize10):
+        (angle::Normalize2):
+        (angle::Pack1010102):
+        (angle::VertexAttributeTest::checkPixels):
+        (angle::VertexAttributeTest::checkRGBPixels):
+        (angle::VertexAttributeTest::runTest):
+        (angle::TEST_P):
+        * src/tests/gles1_conformance_tests/ConformanceTests.cpp:
+        (angle::TEST_P):
+        * src/tests/perf_tests/ANGLEPerfTest.cpp:
+        * src/tests/perf_tests/DrawCallPerf.cpp:
+        (angle::DrawArraysPerfParams::DrawArraysPerfParams): Deleted.
+        (angle::DrawArraysPerfParams::story const): Deleted.
+        (angle::operator<<): Deleted.
+        (angle::CreateSimpleTexture2D): Deleted.
+        (angle::DrawCallPerfBenchmark::DrawCallPerfBenchmark): Deleted.
+        (angle::DrawCallPerfBenchmark::initializeBenchmark): Deleted.
+        (): Deleted.
+        * src/tests/perf_tests/EGLMakeCurrentPerf.cpp:
+        * src/tests/perf_tests/LinkProgramPerfTest.cpp:
+        (angle::TEST_P):
+        * src/tests/perf_tests/MultiviewPerf.cpp:
+        (angle::MultiviewCPUBoundBenchmark::initializeBenchmark):
+        (angle::MultiviewGPUBoundBenchmark::initializeBenchmark):
+        (angle::TEST_P):
+        * src/tests/perf_tests/UniformsPerf.cpp:
+        (TEST_P):
+        * src/tests/perf_tests/VulkanPipelineCachePerf.cpp:
+        (rx::VulkanPipelineCachePerfTest::step):
+        * src/tests/perf_tests/glmark2Benchmark.cpp:
+        * src/tests/test_expectations/GPUTestConfig.cpp:
+        (angle::GPUTestConfig::GPUTestConfig):
+        * src/tests/test_expectations/GPUTestConfig.h:
+        * src/tests/test_expectations/GPUTestExpectationsParser.cpp:
+        (angle::GPUTestExpectationsParser::parseLine):
+        * src/tests/test_utils/ANGLETest.cpp:
+        * src/tests/test_utils/ANGLETest.h:
+        * src/tests/test_utils/angle_test_configs.cpp:
+        (angle::PlatformParameters::initDefaultParameters):
+        (angle::operator<<):
+        (angle::egl_platform::VULKAN_SWIFTSHADER):
+        (angle::ES2_VULKAN_SWIFTSHADER):
+        * src/tests/test_utils/angle_test_configs.h:
+        * src/tests/test_utils/angle_test_instantiate.cpp:
+        (angle::IsWindows7):
+        * src/tests/test_utils/angle_test_instantiate.h:
+        * src/third_party/compiler/README.chromium:
+        * third_party/vulkan-headers/BUILD.gn: Removed.
+        * third_party/vulkan-headers/vulkan_headers_script_deps.gni: Removed.
+        * third_party/vulkan-loader/BUILD.gn:
+        * third_party/vulkan-tools/BUILD.gn: Removed.
+        * third_party/vulkan-validation-layers/BUILD.gn: Removed.
+        * third_party/vulkan-validation-layers/dummy_spirv_tools_commit_id.h: Removed.
+        * util/EGLWindow.cpp:
+        * util/fuchsia/ScenicWindow.cpp:
+        (ScenicWindow::resetNativeWindow):
+        * util/posix/crash_handler_posix.cpp: Renamed from Source/ThirdParty/ANGLE/util/posix/Posix_crash_handler.cpp.
+        * util/posix/test_utils_posix.cpp: Renamed from Source/ThirdParty/ANGLE/util/posix/Posix_system_utils.cpp.
+        * util/test_utils.h: Renamed from Source/ThirdParty/ANGLE/util/system_utils.h.
+        * util/util.gni:
+        * util/util_gl.h:
+        * util/windows/WGLWindow.cpp:
+        * util/windows/test_utils_win.cpp: Renamed from Source/ThirdParty/ANGLE/util/windows/Windows_system_utils.cpp.
+        (angle::PrintStackBacktrace):
+        * util/windows/win32/test_utils_win32.cpp: Renamed from Source/ThirdParty/ANGLE/util/windows/win32/Win32_system_utils.cpp.
+        * util/x11/X11Window.cpp:
+
 2019-10-01  Fujii Hironori  <Hironori.Fujii@sony.com>
 
         [WinCairo][Clang][ANGLE] global_state.cpp(39,1): error: static_assert failed due to requirement 'std::is_trivially_constructible<std::atomic<std::mutex *>>::value' "global mutex is not trivially constructible"
diff --git a/Source/ThirdParty/ANGLE/DEPS b/Source/ThirdParty/ANGLE/DEPS
index ff76c41..0c20ff2 100644
--- a/Source/ThirdParty/ANGLE/DEPS
+++ b/Source/ThirdParty/ANGLE/DEPS
@@ -5,6 +5,7 @@
 vars = {
   'android_git': 'https://android.googlesource.com',
   'chromium_git': 'https://chromium.googlesource.com',
+  'swiftshader_git': 'https://swiftshader.googlesource.com',
 
   # This variable is set on the Chrome infra for compatiblity with gclient.
   'angle_root': '.',
@@ -20,46 +21,46 @@
   'deqp_revision': 'd3eef28e67ce6795ba3a2124aaa977819729d45f',
 
   # Current revision of glslang, the Khronos SPIRV compiler.
-  'glslang_revision': '664ad418f8455159fb066e9e27d159f191f976a9',
+  'glslang_revision': '4b97a1108114107a8082a55e9e0721a40f9536d3',
 
   # Current revision fo the SPIRV-Headers Vulkan support library.
-  'spirv_headers_revision': '123dc278f204f8e833e1a88d31c46d0edf81d4b2',
+  'spirv_headers_revision': '842ec90674627ed2ffef609e3cd79d1562eded01',
 
   # Current revision of SPIRV-Tools for Vulkan.
-  'spirv_tools_revision': '7f7236f1eba0afae2669ea777896f0435be4c96d',
+  'spirv_tools_revision': '3c7ff8d4f0a1c0f27328871fe64879170a4f0930',
 
   # Current revision of Khronos Vulkan-Headers.
-  'vulkan_headers_revision': '982f0f84dccf6f281b48318c77261a9028000126',
+  'vulkan_headers_revision': '5b44df19e040fca0048ab30c553a8c2d2cb9623e',
 
   # Current revision of Khronos Vulkan-Loader.
-  'vulkan_loader_revision': '2f0abfcf9eb04018e6e92125a70bc28665aa17fe',
+  'vulkan_loader_revision': 'b5a0995324fa9fb2a6152197b442400e7d7be5b6',
 
   # Current revision of Khronos Vulkan-Tools.
-  'vulkan_tools_revision': 'f392e71b994036c92b896c2a62cc63d042b7f9b1',
+  'vulkan_tools_revision': '40cd2166a44647a4283517e31af4589410c654eb',
 
   # Current revision of Khronos Vulkan-ValidationLayers.
-  'vulkan_validation_revision': 'ff80a937c8a505abbdddb95d8ffaa446820c8391',
+  'vulkan_validation_revision': '9fba37afae13a11bd49ae942bf82e5bf1098e381',
 }
 
 deps = {
 
   '{angle_root}/angle-internal': {
-    'url': 'https://chrome-internal.googlesource.com/angle/angle-internal.git@05522f9eb159afbbe35a246d5027893c56926a76',
+    'url': 'https://chrome-internal.googlesource.com/angle/angle-internal.git@f682552d8131422e91f45661a7af83e885ff70ce',
     'condition': 'checkout_src_internal',
   },
 
   '{angle_root}/build': {
-    'url': '{chromium_git}/chromium/src/build.git@af1bbc9483aed572f1ea1a32e43bb504c3edb357',
+    'url': '{chromium_git}/chromium/src/build.git@fd0d28db8039e2aaf9fa35e53e3af6dc9ead8055',
     'condition': 'not build_with_chromium',
   },
 
   '{angle_root}/buildtools': {
-    'url': '{chromium_git}/chromium/src/buildtools.git@74cfb57006f83cfe050817526db359d5c8a11628',
+    'url': '{chromium_git}/chromium/src/buildtools.git@cf454b247c611167388742c7a31ef138a6031172',
     'condition': 'not build_with_chromium',
   },
 
   '{angle_root}/testing': {
-    'url': '{chromium_git}/chromium/src/testing@78e8d947158ba72b0e457abc9ea3fb30c2252646',
+    'url': '{chromium_git}/chromium/src/testing@9d2d0dad367ac7e98e64cc6881044c482e1c7eb8',
     'condition': 'not build_with_chromium',
   },
 
@@ -94,7 +95,7 @@
   },
 
   '{angle_root}/third_party/googletest/src': {
-    'url': '{chromium_git}/external/github.com/google/googletest.git@3f5b5b8f8493a03fa25f1e4a7eae7678514a431d',
+    'url': '{chromium_git}/external/github.com/google/googletest.git@cd17fa2abda2a2e4111cdabd62a87aea16835014',
     'condition': 'not build_with_chromium',
   },
 
@@ -160,6 +161,11 @@
     'condition': 'not build_with_chromium',
   },
 
+  '{angle_root}/third_party/SwiftShader': {
+    'url': '{swiftshader_git}/SwiftShader@036463457e5f11a9257553fadb5e8c193bec6f7e',
+    'condition': 'not build_with_chromium',
+  },
+
   '{angle_root}/third_party/vulkan-headers/src': {
     'url': '{chromium_git}/external/github.com/KhronosGroup/Vulkan-Headers@{vulkan_headers_revision}',
   },
@@ -177,7 +183,7 @@
   },
 
   '{angle_root}/third_party/yasm': {
-    'url': '{chromium_git}/chromium/src/third_party/yasm@15439370afd9df5359a0ff12244c2ccb2111c787',
+    'url': '{chromium_git}/chromium/src/third_party/yasm@cc10bc0f1d96a4bae0e775f2ac2b6ac5b08078c6',
     'condition': 'not build_with_chromium',
   },
 
@@ -187,12 +193,12 @@
   },
 
   '{angle_root}/third_party/zlib': {
-    'url': '{chromium_git}/chromium/src/third_party/zlib@0044d0424c7f7d15436541ed1ecc89479b8bfda4',
+    'url': '{chromium_git}/chromium/src/third_party/zlib@ddebad26cfadeb4ecdfe3da8beb396a85cf90c91',
     'condition': 'not build_with_chromium',
   },
 
   '{angle_root}/tools/clang': {
-    'url': '{chromium_git}/chromium/src/tools/clang.git@2fef805e5b05b26a8c87c47865590b5f43218611',
+    'url': '{chromium_git}/chromium/src/tools/clang.git@6bc727d9d80f2c3a97587676bb38c5472afe7e60',
     'condition': 'not build_with_chromium',
   },
 
diff --git a/Source/ThirdParty/ANGLE/GLESv2.cmake b/Source/ThirdParty/ANGLE/GLESv2.cmake
index 421de343..3920026 100644
--- a/Source/ThirdParty/ANGLE/GLESv2.cmake
+++ b/Source/ThirdParty/ANGLE/GLESv2.cmake
@@ -837,6 +837,8 @@
 set(libangle_gl_cgl_sources
     src/libANGLE/renderer/gl/cgl/ContextCGL.cpp
     src/libANGLE/renderer/gl/cgl/ContextCGL.h
+    src/libANGLE/renderer/gl/cgl/DeviceCGL.cpp
+    src/libANGLE/renderer/gl/cgl/DeviceCGL.h
     src/libANGLE/renderer/gl/cgl/DisplayCGL.mm
     src/libANGLE/renderer/gl/cgl/DisplayCGL.h
     src/libANGLE/renderer/gl/cgl/IOSurfaceSurfaceCGL.mm
diff --git a/Source/ThirdParty/ANGLE/OWNERS b/Source/ThirdParty/ANGLE/OWNERS
index b700861..57a833b 100644
--- a/Source/ThirdParty/ANGLE/OWNERS
+++ b/Source/ThirdParty/ANGLE/OWNERS
@@ -5,4 +5,5 @@
 syoussefi@chromium.org
 ynovikov@chromium.org
 
-# COMPONENT: Internals>GPU>Angle
+# COMPONENT: Internals>GPU>ANGLE
+# TEAM: angleproject@googlegroups.com
diff --git a/Source/ThirdParty/ANGLE/PRESUBMIT.py b/Source/ThirdParty/ANGLE/PRESUBMIT.py
index de83d12..25b7d87 100644
--- a/Source/ThirdParty/ANGLE/PRESUBMIT.py
+++ b/Source/ThirdParty/ANGLE/PRESUBMIT.py
@@ -7,7 +7,11 @@
 for more details on the presubmit API built into depot_tools.
 """
 
-from subprocess import call
+import os
+import shutil
+import subprocess
+import sys
+import tempfile
 
 # Fragment of a regular expression that matches C++ and Objective-C++ implementation files.
 _IMPLEMENTATION_EXTENSIONS = r'\.(cc|cpp|cxx|mm)$'
@@ -15,6 +19,13 @@
 # Fragment of a regular expression that matches C++ and Objective-C++ header files.
 _HEADER_EXTENSIONS = r'\.(h|hpp|hxx)$'
 
+_PRIMARY_EXPORT_TARGETS = [
+    '//:libEGL',
+    '//:libGLESv1_CM',
+    '//:libGLESv2',
+    '//:translator',
+]
+
 
 def _CheckChangeHasBugField(input_api, output_api):
     """Requires that the changelist have a Bug: field."""
@@ -102,12 +113,46 @@
     return []
 
 
+def _CheckExportValidity(input_api, output_api):
+    outdir = tempfile.mkdtemp()
+    # shell=True is necessary on Windows, as otherwise subprocess fails to find
+    # either 'gn' or 'vpython3' even if they are findable via PATH.
+    use_shell = input_api.is_windows
+    try:
+        try:
+            subprocess.check_output(['gn', 'gen', outdir], shell=use_shell)
+        except subprocess.CalledProcessError as e:
+            return [
+                output_api.PresubmitError(
+                    'Unable to run gn gen for export_targets.py: %s' % e.output)
+            ]
+        export_target_script = os.path.join(input_api.PresubmitLocalPath(), 'scripts',
+                                            'export_targets.py')
+        try:
+            subprocess.check_output(
+                ['vpython3', export_target_script, outdir] + _PRIMARY_EXPORT_TARGETS,
+                stderr=subprocess.STDOUT,
+                shell=use_shell)
+        except subprocess.CalledProcessError as e:
+            if input_api.is_committing:
+                return [output_api.PresubmitError('export_targets.py failed: %s' % e.output)]
+            return [
+                output_api.PresubmitPromptWarning(
+                    'export_targets.py failed, this may just be due to your local checkout: %s' %
+                    e.output)
+            ]
+        return []
+    finally:
+        shutil.rmtree(outdir)
+
+
 def CheckChangeOnUpload(input_api, output_api):
     results = []
     results.extend(_CheckCodeGeneration(input_api, output_api))
     results.extend(_CheckChangeHasBugField(input_api, output_api))
     results.extend(input_api.canned_checks.CheckChangeHasDescription(input_api, output_api))
     results.extend(_CheckNewHeaderWithoutGnChange(input_api, output_api))
+    results.extend(_CheckExportValidity(input_api, output_api))
     results.extend(
         input_api.canned_checks.CheckPatchFormatted(
             input_api, output_api, result_factory=output_api.PresubmitError))
@@ -121,5 +166,6 @@
         input_api.canned_checks.CheckPatchFormatted(
             input_api, output_api, result_factory=output_api.PresubmitError))
     results.extend(_CheckChangeHasBugField(input_api, output_api))
+    results.extend(_CheckExportValidity(input_api, output_api))
     results.extend(input_api.canned_checks.CheckChangeHasDescription(input_api, output_api))
     return results
diff --git a/Source/ThirdParty/ANGLE/README.md b/Source/ThirdParty/ANGLE/README.md
index 3ae7e15..aed11cd 100644
--- a/Source/ThirdParty/ANGLE/README.md
+++ b/Source/ThirdParty/ANGLE/README.md
@@ -77,4 +77,5 @@
 * Learn about the past, present, and future of the ANGLE implementation in [this presentation](https://docs.google.com/presentation/d/1CucIsdGVDmdTWRUbg68IxLE5jXwCb2y1E9YVhQo0thg/pub?start=false&loop=false).
 * Watch a [short presentation](https://youtu.be/QrIKdjmpmaA) on the Vulkan back-end.
 * Track the [dEQP test conformance](doc/dEQP-Charts.md)
+* Read design docs on the [Vulkan back-end](src/libANGLE/renderer/vulkan/README.md)
 * If you use ANGLE in your own project, we'd love to hear about it!
diff --git a/Source/ThirdParty/ANGLE/android/angle_apk.gni b/Source/ThirdParty/ANGLE/android/angle_apk.gni
index 39f3c8a..c561c40 100644
--- a/Source/ThirdParty/ANGLE/android/angle_apk.gni
+++ b/Source/ThirdParty/ANGLE/android/angle_apk.gni
@@ -5,13 +5,7 @@
 import("//build/config/android/rules.gni")
 import("//third_party/angle/gni/angle.gni")
 
-vulkan_validation_layers = [
-  "VkLayer_core_validation",
-  "VkLayer_object_lifetimes",
-  "VkLayer_stateless_validation",
-  "VkLayer_thread_safety",
-  "VkLayer_unique_objects",
-]
+vulkan_validation_layers = [ "VkLayer_khronos_validation" ]
 
 angle_libraries = [
   "libEGL",
diff --git a/Source/ThirdParty/ANGLE/build_overrides/angle.gni b/Source/ThirdParty/ANGLE/build_overrides/angle.gni
index 96647fc..5bf1aa2 100644
--- a/Source/ThirdParty/ANGLE/build_overrides/angle.gni
+++ b/Source/ThirdParty/ANGLE/build_overrides/angle.gni
@@ -5,6 +5,9 @@
 # Override for angle_root
 angle_root = "//"
 
+# True if ANGLE can access build/, testing/ and other Chrome folders.
+angle_has_build = true
+
 # Overrides for ANGLE's dependencies
 angle_glslang_dir = "//third_party/glslang/src"
 angle_googletest_dir = "//third_party/googletest/src"
diff --git a/Source/ThirdParty/ANGLE/changes.diff b/Source/ThirdParty/ANGLE/changes.diff
index 8b5316c..3174c41 100644
--- a/Source/ThirdParty/ANGLE/changes.diff
+++ b/Source/ThirdParty/ANGLE/changes.diff
@@ -1,4 +1,4 @@
-From e4a3241f67b63b2c3b5ac018236ad9e7d07adbe8 Mon Sep 17 00:00:00 2001
+From e29224ba15b723527c541859d0767393b1f2e905 Mon Sep 17 00:00:00 2001
 From: Don <don.j.olmstead@gmail.com>
 Date: Thu, 9 May 2019 12:12:42 -0700
 Subject: [PATCH 1/2] Add licensing clarification
@@ -10,7 +10,7 @@
  3 files changed, 6 insertions(+)
 
 diff --git a/src/compiler/preprocessor/ExpressionParser.cpp b/src/compiler/preprocessor/ExpressionParser.cpp
-index 1b71ef7..5c2b9e7 100644
+index 1b71ef75a..5c2b9e7a0 100644
 --- a/src/compiler/preprocessor/ExpressionParser.cpp
 +++ b/src/compiler/preprocessor/ExpressionParser.cpp
 @@ -1,5 +1,7 @@
@@ -22,7 +22,7 @@
  
     Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
 diff --git a/src/compiler/translator/glslang_tab.cpp b/src/compiler/translator/glslang_tab.cpp
-index e49325c..5fe7c49 100644
+index e49325c03..5fe7c4943 100644
 --- a/src/compiler/translator/glslang_tab.cpp
 +++ b/src/compiler/translator/glslang_tab.cpp
 @@ -1,5 +1,7 @@
@@ -34,7 +34,7 @@
  
     Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
 diff --git a/src/compiler/translator/glslang_tab.h b/src/compiler/translator/glslang_tab.h
-index 5ffee8a..3774e91 100644
+index 5ffee8a4c..3774e91d1 100644
 --- a/src/compiler/translator/glslang_tab.h
 +++ b/src/compiler/translator/glslang_tab.h
 @@ -1,5 +1,7 @@
@@ -49,7 +49,7 @@
 2.19.0.605.g01d371f741-goog
 
 
-From 4b85bdc63dfe66cb25abab5ddd1c475fd68e3ecf Mon Sep 17 00:00:00 2001
+From c17fff937db47af831017b044acf11d20286620f Mon Sep 17 00:00:00 2001
 From: James Darpinian <jdarpinian@chromium.org>
 Date: Wed, 11 Sep 2019 18:12:01 -0700
 Subject: [PATCH 2/2] Disable -Wglobal-constructors false positives
@@ -60,7 +60,7 @@
  2 files changed, 6 insertions(+)
 
 diff --git a/src/common/utilities.cpp b/src/common/utilities.cpp
-index a3f0faa..e463694 100644
+index 44f925dad..38ddd43d7 100644
 --- a/src/common/utilities.cpp
 +++ b/src/common/utilities.cpp
 @@ -6,6 +6,9 @@
@@ -74,7 +74,7 @@
  #include <GLSLANG/ShaderVars.h>
  #include "common/mathutil.h"
 diff --git a/src/libANGLE/State.cpp b/src/libANGLE/State.cpp
-index b15fcfc..dca047a 100644
+index cbd3f6632..1421b8636 100644
 --- a/src/libANGLE/State.cpp
 +++ b/src/libANGLE/State.cpp
 @@ -6,6 +6,9 @@
diff --git a/Source/ThirdParty/ANGLE/doc/DevSetup.md b/Source/ThirdParty/ANGLE/doc/DevSetup.md
index c55439d..f00abc0 100644
--- a/Source/ThirdParty/ANGLE/doc/DevSetup.md
+++ b/Source/ThirdParty/ANGLE/doc/DevSetup.md
@@ -1,36 +1,32 @@
 # ANGLE Development
 
-ANGLE provides OpenGL ES 2.0 and EGL 1.4 libraries and dlls.  You can use these to build and run OpenGL ES 2.0 applications on Windows, Linux, Mac and Android.
+ANGLE provides OpenGL ES 3.1 and EGL 1.5 libraries and tests. You can use these to build and run OpenGL ES applications on Windows, Linux, Mac and Android.
 
 ## Development setup
 
 ### Version Control
-ANGLE uses git for version control. If you are not familiar with git, helpful documentation can be found at [http://git-scm.com/documentation](http://git-scm.com/documentation).
+ANGLE uses git for version control. Helpful documentation can be found at [http://git-scm.com/documentation](http://git-scm.com/documentation).
 
 ### Required Tools
 On all platforms:
 
- * GN is the build system.  GYP support has been removed.
- * Clang will be set up by the build system and used by default.  See below for platform-specific compiler choices.
- * [depot_tools](http://dev.chromium.org/developers/how-tos/install-depot-tools)
-   * Required to generate projects and build files, contribute patches, run the unit tests or build the shader compiler on non-Windows systems.
+ * [depot_tools](https://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html#_setting_up)
+   * Required to download dependencies (with gclient), generate build files (with GN), and compile ANGLE (with ninja).
+   * Ensure `depot_tools` is in your path as it provides ninja for compilation.
 
 On Windows:
 
- * [Visual Studio Community 2017 Update 3.2](https://www.visualstudio.com/en-us/news/releasenotes/vs2017-relnotes)
-   * Put `is_clang = false` in your gn args to compile with the Microsoft Visual C++ compiler instead of clang.
-   * See the [Chromium Windows build instructions](https://chromium.googlesource.com/chromium/src/+/master/docs/windows_build_instructions.md) for more info.
-   * Required for the packaged Windows 10 SDK.
+ * ***IMPORTANT: Set `DEPOT_TOOLS_WIN_TOOLCHAIN=0` in your environment if you are not a Googler.***
+ * [Visual Studio Community 2019](https://visualstudio.microsoft.com/vs/)
  * [Windows 10 Standalone SDK version 10.0.17134 exactly](https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk).
    * Comes with additional features that aid development, such as the Debug runtime for D3D11. Required for the D3D Compiler DLL.
- * [Cygwin's Bison, flex, and patch](https://cygwin.com/setup-x86_64.exe) (optional)
+ * (optional) [Cygwin's Bison, flex, and patch](https://cygwin.com/setup-x86_64.exe)
    * This is only required if you need to modify GLSL ES grammar files (`glslang.l` and `glslang.y` under `src/compiler/translator`, or `ExpressionParser.y` and `Tokenizer.l` in `src/compiler/preprocessor`).
-     Use the latest versions of bison, flex and patch from the 64-bit cygwin distribution.
- * **IMPORTANT**: Non-googlers need to set `DEPOT_TOOLS_WIN_TOOLCHAIN` environment variable to 0.
+ * (optional) See the [Chromium Windows build instructions](https://chromium.googlesource.com/chromium/src/+/master/docs/windows_build_instructions.md) for more info.
 
 On Linux:
 
- * Development packages for OpenGL, X11 and libpci (all of these dependencies should be installed automatically when running `install-build-deps.sh` later on).
+ * Install package dependencies by running `install-build-deps.sh` later on.
  * Bison and flex are not needed as we only support generating the translator grammar on Windows.
 
 On MacOS:
@@ -58,38 +54,47 @@
 gn gen out/Debug
 ```
 
-GN will generate ninja files by default.  To change the default build options run `gn args out/Debug`.  Some commonly used options are:
+On Windows only, ensure you **set `DEPOT_TOOLS_WIN_TOOLCHAIN=0` in your environment** (if you are not a Googler).
+
+GN will generate ninja files. To change the default build options run `gn args out/Debug`.  Some commonly used options are:
 ```
-target_cpu = "x64"  (or "x86")
-is_clang = false    (to use system default compiler instead of clang)
-is_debug = true     (enable debugging, true is the default)
+target_cpu = "x86"        (default is "x64")
+is_clang = false          (to use system default compiler instead of clang)
+is_debug = true           (enable debugging, true is the default)
+dcheck_always_on = true   (enable release asserts and debug layers)
 ```
+
 For a release build run `gn args out/Release` and set `is_debug = false`.
 
+On Windows, you can build for the Universal Windows Platform (UWP) by setting `target_os = "winuwp"` in the args.
+
 For more information on GN run `gn help`.
 
 Ninja can be used to compile on all platforms with one of the following commands:
 ```
-ninja -C out/Debug
-ninja -C out/Release
+autoninja -C out/Debug
+autoninja -C out/Release
 ```
 Ninja automatically calls GN to regenerate the build files on any configuration change.
+
 Ensure `depot_tools` is in your path as it provides ninja.
 
 ### Building with Visual Studio
 
 To generate the Visual Studio solution in `out/Debug/angle-debug.sln`:
 ```
-gn gen out/Debug --sln=angle-debug --ide=vs<2017/2019>
+gn gen out/Debug --sln=angle-debug --ide=vs2019
 ```
 
 In Visual Studio:
  1. Open the ANGLE solution file `out/Debug/angle-debug.sln`.
- 2. Right click the "all" solution and select build.  "Build Solution" is not functional with GN; instead build one target at a time."
+ 2. It is recommended you still use `autoninja` from the command line to build.
+ 3. If you do want to build in the solution, "Build Solution" is not functional with GN. Build one target at a time.
 
-Once the build completes all ANGLE libraries, tests, and samples will be located in out/Debug.
+Once the build completes all ANGLE libraries, tests, and samples will be located in `out/Debug`.
 
 ### Building ANGLE for Android
+
 Building ANGLE for Android is heavily dependent on the Chromium toolchain. It is not currently possible to build ANGLE for Android without a Chromium checkout. See http://anglebug.com/2344 for more details on why.
 Please follow the steps in
 [Checking out and building Chromium for Android](https://chromium.googlesource.com/chromium/src/+/master/docs/android_build_instructions.md).
diff --git a/Source/ThirdParty/ANGLE/dotfile_settings.gni b/Source/ThirdParty/ANGLE/dotfile_settings.gni
index 8c370c3..baf6e60 100644
--- a/Source/ThirdParty/ANGLE/dotfile_settings.gni
+++ b/Source/ThirdParty/ANGLE/dotfile_settings.gni
@@ -8,9 +8,10 @@
 angle_dotfile_settings = {
   exec_script_whitelist = [
     get_path_info("BUILD.gn", "abspath"),
-    get_path_info("third_party/vulkan-headers/BUILD.gn", "abspath"),
-    get_path_info("third_party/vulkan-loader/BUILD.gn", "abspath"),
-    get_path_info("third_party/vulkan-tools/BUILD.gn", "abspath"),
-    get_path_info("third_party/vulkan-validation-layers/BUILD.gn", "abspath"),
+    get_path_info("third_party/vulkan-headers/src/BUILD.gn", "abspath"),
+    get_path_info("third_party/vulkan-loader/src/BUILD.gn", "abspath"),
+    get_path_info("third_party/vulkan-tools/src/BUILD.gn", "abspath"),
+    get_path_info("third_party/vulkan-validation-layers/src/BUILD.gn",
+                  "abspath"),
   ]
 }
diff --git a/Source/ThirdParty/ANGLE/extensions/ANGLE_compressed_texture_etc.txt b/Source/ThirdParty/ANGLE/extensions/ANGLE_compressed_texture_etc.txt
new file mode 100644
index 0000000..8118e1d
--- /dev/null
+++ b/Source/ThirdParty/ANGLE/extensions/ANGLE_compressed_texture_etc.txt
@@ -0,0 +1,73 @@
+Name
+
+    ANGLE_compressed_texture_etc
+
+Name Strings
+
+    GL_ANGLE_compressed_texture_etc
+
+Version
+
+    Last Modifed Date: October 5, 2019
+
+Dependencies
+
+    OpenGL ES 2.0 is required.
+
+Overview
+
+    This extension exposes the OpenGL ES 3.0 core compressed texture
+    formats in OpenGL ES 2.0.
+
+New Procedures and Functions
+
+    None
+
+New Tokens
+
+    Accepted by the <internalformat> parameter of CompressedTexImage2D and the
+    <format> parameter of CompressedTexSubImage2D:
+
+        COMPRESSED_R11_EAC                                0x9270
+        COMPRESSED_SIGNED_R11_EAC                         0x9271
+        COMPRESSED_RG11_EAC                               0x9272
+        COMPRESSED_SIGNED_RG11_EAC                        0x9273
+        COMPRESSED_RGB8_ETC2                              0x9274
+        COMPRESSED_SRGB8_ETC2                             0x9275
+        COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2          0x9276
+        COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2         0x9277
+        COMPRESSED_RGBA8_ETC2_EAC                         0x9278
+        COMPRESSED_SRGB8_ALPHA8_ETC2_EAC                  0x9279
+
+    Querying COMPRESSED_TEXTURE_FORMATS will include these new formats.
+
+New Procedures and Functions
+
+    None.
+
+Errors
+
+    The error INVALID_VALUE is generated if the <internalformat> parameter of
+    CompressedTexImage2D or the <format> parameter of CompressedTexSubImage2D is
+    COMPRESSED_R11_EAC, COMPRESSED_SIGNED_R11_EAC, COMPRESSED_RGB8_ETC2,
+    COMPRESSED_SRGB8_ETC2, COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 or
+    COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2, and imageSize is not
+
+        floor((width + 3) / 4) * floor((height + 3) / 4) * 8
+
+    The error INVALID_VALUE is generated if the <internalformat> parameter of
+    CompressedTexImage2D or the <format> paremeter of CompressedTexSubImage2D is
+    COMPRESSED_RG11_EAC, COMPRESSED_SIGNED_RG11_EAC, COMPRESSED_RGBA8_ETC2_EAC,
+    or COMPRESSED_SRGB8_ALPHA8_ETC2_EAC, and imageSize is not
+
+        floor((width + 3) / 4) * floor((height + 3) / 4) * 16
+
+
+New State
+
+    None.
+
+Revision History
+
+    9/19/2016   First revision
+    10/5/2019   Rename to ANGLE_compressed_texture_etc
diff --git a/Source/ThirdParty/ANGLE/extensions/EGL_ANGLE_device_cgl.txt b/Source/ThirdParty/ANGLE/extensions/EGL_ANGLE_device_cgl.txt
new file mode 100644
index 0000000..7cdfd62
--- /dev/null
+++ b/Source/ThirdParty/ANGLE/extensions/EGL_ANGLE_device_cgl.txt
@@ -0,0 +1,94 @@
+Name
+
+    ANGLE_device_cgl
+
+Name Strings
+
+    EGL_ANGLE_device_cgl
+
+Contributors
+
+    Ken Russell   (kbr 'at' google.com)
+    Geoff Lang    (geofflang 'at' google.com)
+
+Contact
+
+    Ken Russell   (kbr 'at' google.com)
+
+Status
+
+    Draft
+
+Version
+
+    Version 1, October 4, 2019
+
+Number
+
+    EGL Extension #XXX
+
+Extension Type
+
+    EGL device extension
+
+Dependencies
+
+    This extension is written against the language of EGL 1.5 as
+    modified by EGL_EXT_device_query.
+
+    EGL_EXT_device_query is required.
+
+Overview
+
+    ANGLE on macOS internally uses an OpenGL context allocated via CGL.
+    This extension defines a mapping from an EGL device to the underlying
+    CGLContextObj and its associated CGLPixelFormatObj, after it's been
+    queried from an EGL display.
+
+IP Status
+
+    No known claims.
+
+New Types
+
+    None.
+
+New Procedures and Functions
+
+    None.
+
+New Tokens
+
+    Accepted as a queried <attribute> in eglQueryDeviceAttribEXT:
+
+        EGL_CGL_CONTEXT_ANGLE           0x3485
+        EGL_CGL_PIXEL_FORMAT_ANGLE      0x3486
+
+Add a new section 2.1.3 (CGL Devices) after 2.1.2 (Devices)
+
+    On macOS the underlying CGLContextObj and CGLPixelFormatObj can be queried
+    from the EGL device. The intented purpose is to allow applications to create
+    new CGL contexts which share resources with this one.
+
+Changes to section 3.2 (Devices)
+
+    Replace the paragraph immediately following the prototype for
+    eglQueryDeviceAttribEXT:
+
+    <attribute> may be either EGL_CGLCONTEXT_DEVICE_ANGLE or
+    EGL_CGLPIXELFORMAT_DEVICE_ANGLE.  On success, EGL_TRUE is returned, and a
+    valid CGLContextObj or CGLPixelFormatObj corresponding to the EGL device is
+    returned in <value>. These objects are compatible with OpenGL and CGL API
+    functions. If the EGL device is not currently associated with a CGL context,
+    EGL_BAD_ATTRIBUTE is returned, and <value> is left unchanged.
+
+Issues
+
+    None
+
+Revision History
+
+    Version 1, October 4, 2019 (Ken Russell)
+        - Initial Draft
+    Version 2, October 8, 2019 (Ken Russell)
+        - Address feedback from Geoff Lang
diff --git a/Source/ThirdParty/ANGLE/extensions/EGL_ANGLE_feature_control.txt b/Source/ThirdParty/ANGLE/extensions/EGL_ANGLE_feature_control.txt
index 3a3256f..ee86d79 100644
--- a/Source/ThirdParty/ANGLE/extensions/EGL_ANGLE_feature_control.txt
+++ b/Source/ThirdParty/ANGLE/extensions/EGL_ANGLE_feature_control.txt
@@ -74,6 +74,7 @@
         EGL_FEATURE_DESCRIPTION_ANGLE   0x3462
         EGL_FEATURE_BUG_ANGLE           0x3463
         EGL_FEATURE_STATUS_ANGLE        0x3464
+        EGL_FEATURE_CONDITION_ANGLE     0x3468
 
     Accepted as a queried <attribute> in eglQueryDisplayAttribANGLE
 
@@ -122,6 +123,9 @@
     with corresponding indices to the array of names. Each string has
     the value "enabled" if the feature is currently enabled, or
     "disabled" if the feature is currently disabled.
+        The EGL_FEATURE_CONDITION_ANGLE array contains strings that
+    describe to the condition that sets the corresponding value in
+    the EGL_FEATURE_STATUS_ANGLE array.
 
     Errors
 
diff --git a/Source/ThirdParty/ANGLE/extensions/EGL_ANGLE_platform_angle_d3d11on12.txt b/Source/ThirdParty/ANGLE/extensions/EGL_ANGLE_platform_angle_d3d11on12.txt
new file mode 100644
index 0000000..21fab86
--- /dev/null
+++ b/Source/ThirdParty/ANGLE/extensions/EGL_ANGLE_platform_angle_d3d11on12.txt
@@ -0,0 +1,81 @@
+Name
+
+    ANGLE_platform_angle_d3d11on12
+
+Name Strings
+
+    EGL_ANGLE_platform_angle_d3d11on12
+
+Contributors
+
+    Nathan Zabriskie, Microsoft
+
+Contacts
+
+    Nathan Zabriskie, Microsoft (nazabris 'at' microsoft 'dot' com)
+
+Status
+
+    Draft
+
+Version
+
+    Version 1, 2019-10-07
+
+Number
+
+    EGL Extension XXX
+
+Extension Type
+
+    EGL client extension
+
+Dependencies
+
+    Requires ANGLE_platform_angle_d3d.
+
+Overview
+
+    This extension enables the creation of a D3D11on12 display.
+
+New Types
+
+    None
+
+New Procedures and Functions
+
+    None
+
+New Tokens
+
+    Accepted as an attribute name in the <attrib_list> argument of
+    eglGetPlatformDisplayEXT:
+
+        EGL_PLATFORM_ANGLE_D3D11ON12_ANGLE          0x3488
+
+Additions to the EGL Specification
+
+    None.
+
+New Behavior
+
+    To request a D3D11on12 display the value of
+    EGL_PLATFORM_ANGLE_D3D11ON12_ANGLE should be set to EGL_TRUE.
+
+    If EGL_PLATFORM_ANGLE_D3D11ON12_ANGLE is included in the
+    <attrib_list> argument of eglGetPlatformDisplayEXT and
+    EGL_PLATFORM_ANGLE_TYPE_ANGLE is not set to
+    EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE, an EGL_BAD_ATTRIBUTE error is
+    generated and EGL_NO_DISPLAY is returned.
+
+    EGL_PLATFORM_ANGLE_D3D11ON12_ANGLE can be combined with
+    EGL_PLATFORM_ANGLE_DEVICE_TYPE_ANGLE if it is set to
+    EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE or
+    EGL_PLATFORM_ANGLE_DEVICE_TYPE_D3D_WARP_ANGLE. Other device types
+    will generate an EGL_BAD_ATTRIBUTE error and return
+    EGL_NO_DISPLAY.
+
+Revision History
+
+    Version 1, 2019-10-07 (Nathan Zabriskie)
+      - Initial draft
diff --git a/Source/ThirdParty/ANGLE/extensions/EGL_ANGLE_platform_angle_device_type_swiftshader.txt b/Source/ThirdParty/ANGLE/extensions/EGL_ANGLE_platform_angle_device_type_swiftshader.txt
new file mode 100644
index 0000000..cb0ddea
--- /dev/null
+++ b/Source/ThirdParty/ANGLE/extensions/EGL_ANGLE_platform_angle_device_type_swiftshader.txt
@@ -0,0 +1,82 @@
+Name
+
+    ANGLE_platform_angle_device_type_swiftshader
+
+Name Strings
+
+    EGL_ANGLE_platform_angle_device_type_swiftshader
+
+Contributors
+
+    Jamie Madill, Google
+
+Contacts
+
+    Jamie Madill, Google (jmadill 'at' google 'dot' com)
+
+Status
+
+    Draft
+
+Version
+
+    Version 1, 2019-08-24
+
+Number
+
+    EGL Extension XXX
+
+Extension Type
+
+    EGL client extension
+
+Dependencies
+
+    Requires EGL_ANGLE_platform_angle_vulkan.
+
+Overview
+
+    This extension enables choosing the SwiftShader Vulkan implementation
+    when it is available.
+
+New Types
+
+    None
+
+New Procedures and Functions
+
+    None
+
+New Tokens
+
+    Accepted as values for the EGL_PLATFORM_ANGLE_TYPE_ANGLE attribute:
+
+        EGL_PLATFORM_ANGLE_DEVICE_TYPE_SWIFTSHADER_ANGLE     0x3487
+
+Additions to the EGL Specification
+
+    None.
+
+New Behavior
+
+    When calling eglGetPlatformDisplay:
+
+    To request a SwiftShader-backed Vulkan implementation with ANGLE, the value
+    of EGL_PLATFORM_ANGLE_TYPE_ANGLE should be EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE
+    and the value of EGL_PLATFORM_ANGLE_DEVICE_TYPE_ANGLE should be
+    EGL_PLATFORM_ANGLE_DEVICE_TYPE_SWIFTSHADER_ANGLE.
+
+    If EGL_PLATFORM_ANGLE_DEVICE_TYPE_ANGLE is
+    EGL_PLATFORM_ANGLE_DEVICE_TYPE_SWIFTSHADER_ANGLE and
+    EGL_PLATFORM_ANGLE_TYPE_ANGLE is not
+    EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE then an EGL_BAD_ATTRIBUTE
+    error is generated and EGL_NO_DISPLAY is returned.
+
+Issues
+
+    None
+
+Revision History
+
+    Version 1, 2019-08-29 (Jamie Madill)
+      - Initial draft
diff --git a/Source/ThirdParty/ANGLE/extensions/EGL_ANGLE_platform_angle_metal.txt b/Source/ThirdParty/ANGLE/extensions/EGL_ANGLE_platform_angle_metal.txt
new file mode 100644
index 0000000..86e5209
--- /dev/null
+++ b/Source/ThirdParty/ANGLE/extensions/EGL_ANGLE_platform_angle_metal.txt
@@ -0,0 +1,76 @@
+Name
+
+    ANGLE_platform_angle_metal
+
+Name Strings
+
+    EGL_ANGLE_platform_angle_metal
+
+Contributors
+
+    Jamie Madill, Google
+
+Contacts
+
+    Jamie Madill, Google (jmadill 'at' google 'dot' com)
+
+Status
+
+    Draft
+
+Version
+
+    Version 2, 2019-10-09
+
+Number
+
+    EGL Extension XXX
+
+Extension Type
+
+    EGL client extension
+
+Dependencies
+
+    Requires ANGLE_platform_angle.
+
+Overview
+
+    This extension enables selection of Metal display types.
+
+New Types
+
+    None
+
+New Procedures and Functions
+
+    None
+
+New Tokens
+
+    Accepted as values for the EGL_PLATFORM_ANGLE_TYPE_ANGLE attribute:
+
+        EGL_PLATFORM_ANGLE_TYPE_METAL_ANGLE               0x3489
+
+Additions to the EGL Specification
+
+    None.
+
+New Behavior
+
+    To request a display that is backed by a Metal driver, the value of
+    EGL_PLATFORM_ANGLE_TYPE_ANGLE should be
+    EGL_PLATFORM_ANGLE_TYPE_METAL_ANGLE.
+
+Issues
+
+    1) Should the application be able to choose a specific version of Metal?
+
+        RESOLVED: No, use the default returned by the system. It doesn't
+        seem like recommended practice to choose a Metal version when
+        initializing a Metal device.
+
+Revision History
+
+    Version 1, 2019-10-09 (Jamie Madill)
+      - Initial draft
diff --git a/Source/ThirdParty/ANGLE/gni/angle.gni b/Source/ThirdParty/ANGLE/gni/angle.gni
index 1ba4132..e0ca7aa 100644
--- a/Source/ThirdParty/ANGLE/gni/angle.gni
+++ b/Source/ThirdParty/ANGLE/gni/angle.gni
@@ -2,14 +2,32 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
-import("//build/config/dcheck_always_on.gni")
-import("//build/config/sanitizers/sanitizers.gni")
-import("//build/config/ui.gni")  # import the use_x11 variable
 import("//build_overrides/angle.gni")
-import("//build_overrides/build.gni")
-import("//testing/test.gni")
-if (is_android) {
-  import("//build/config/android/config.gni")
+
+if (angle_has_build) {
+  import("//build/config/dcheck_always_on.gni")
+  import("//build/config/sanitizers/sanitizers.gni")
+  import("//build/config/ui.gni")  # import the use_x11 variable
+  import("//build_overrides/build.gni")
+  import("//testing/test.gni")
+  if (is_android) {
+    import("//build/config/android/config.gni")
+  }
+
+  if (is_win) {
+    import("//build/config/win/visual_studio_version.gni")
+  }
+} else {
+  declare_args() {
+    is_ubsan = false
+    is_tsan = false
+    is_asan = false
+    build_with_chromium = false
+    dcheck_always_on = false
+    use_x11 = is_linux
+    use_ozone = false
+    use_fuzzing_engine = false
+  }
 }
 
 if (build_with_chromium) {
@@ -47,6 +65,9 @@
   }
   angle_shared_libvulkan = false
 
+  # There's no "is_winuwp" helper in BUILDCONFIG.gn, so we define one ourselves
+  angle_is_winuwp = is_win && current_os == "winuwp"
+
   # Default to using "_angle" suffix on Android
   if (is_android) {
     angle_libs_suffix = "_angle"
@@ -56,16 +77,19 @@
 }
 
 declare_args() {
-  angle_enable_d3d9 = is_win
+  angle_enable_d3d9 = is_win && !angle_is_winuwp
   angle_enable_d3d11 = is_win
-  angle_enable_gl = (ozone_platform_gbm || !is_linux ||
-                     (use_x11 && !is_chromeos)) && !is_fuchsia
+  angle_enable_gl =
+      (ozone_platform_gbm || !is_linux || (use_x11 && !is_chromeos)) &&
+      !is_fuchsia && !angle_is_winuwp
 
   # ANGLE Vulkan backend on Android requires API level 26, i.e. Oreo, due to
   # Vulkan Validation Layers compatibility issues, see http://crrev/c/1405714.
   # Otherwise, API level 24 would have been enough.
-  angle_enable_vulkan = is_win || (is_linux && use_x11 && !is_chromeos) ||
-                        (is_android && ndk_api_level_at_least_26) || is_fuchsia
+  angle_enable_vulkan =
+      angle_has_build &&
+      ((is_win && !angle_is_winuwp) || (is_linux && use_x11 && !is_chromeos) ||
+       (is_android && ndk_api_level_at_least_26) || is_fuchsia)
   angle_enable_null = true
   angle_enable_essl = true
   angle_enable_glsl = true
@@ -81,33 +105,25 @@
       angle_enable_vulkan && !is_ubsan && !is_tsan && !is_asan &&
       (is_debug || dcheck_always_on)
 
-  if (angle_enable_vulkan) {
-    # Enable Vulkan GPU trace event capability
-    angle_enable_vulkan_gpu_trace_events = false
-
-    # Enable custom (cpu-side) secondary command buffers
-    angle_enable_custom_vulkan_cmd_buffers = true
-  }
-
   # Disable overlay by default
   angle_enable_overlay = false
 }
 
-if (is_win) {
-  import("//build/config/win/visual_studio_version.gni")
-}
-
 angle_common_configs = [
   angle_root + ":better_linux_stack_traces",
   angle_root + ":extra_warnings",
   angle_root + ":internal_config",
 ]
 
-angle_remove_configs = [ "//build/config/compiler:default_include_dirs" ]
+angle_remove_configs = []
+
+if (angle_has_build) {
+  angle_remove_configs += [ "//build/config/compiler:default_include_dirs" ]
+}
 angle_better_stack_traces =
     (is_debug || dcheck_always_on) && is_linux && !is_asan && !is_cfi
 
-if (is_clang) {
+if (angle_has_build && is_clang) {
   angle_remove_configs += [ "//build/config/clang:find_bad_constructs" ]
 
   # Disabled to enable better stack traces.
@@ -143,7 +159,16 @@
 set_defaults("angle_test") {
   configs = angle_common_configs
   public_configs = []
+  public_deps = []
+  sources = []
+  data = []
+  main = ""
   suppressed_configs = angle_remove_configs
+
+  # TODO(jmadill): Migrate to standalone harness. http://anglebug.com/3162
+  if (build_with_chromium) {
+    suppressed_configs -= [ "//build/config/compiler:default_include_dirs" ]
+  }
 }
 
 template("angle_executable") {
@@ -226,6 +251,18 @@
 }
 
 template("angle_test") {
+  _googletest_deps = [
+    "//testing/gmock",
+    "//testing/gtest",
+    "//third_party/googletest:gmock",
+    "//third_party/googletest:gtest",
+  ]
+
+  # TODO(jmadill): Migrate to standalone harness. http://anglebug.com/3162
+  if (build_with_chromium) {
+    _googletest_deps += [ "//base/test:test_support" ]
+  }
+
   test(target_name) {
     forward_variables_from(invoker,
                            "*",
@@ -251,5 +288,16 @@
       configs += [ angle_root + ":build_id_config" ]
       configs -= [ "//build/config/android:hide_all_but_jni" ]
     }
+
+    deps += _googletest_deps + [
+              "$angle_root:angle_common",
+              "$angle_root:includes",
+            ]
+
+    if (build_with_chromium) {
+      sources += [ "//gpu/${invoker.main}.cc" ]
+    } else {
+      sources += [ "${invoker.main}.cpp" ]
+    }
   }
 }
diff --git a/Source/ThirdParty/ANGLE/include/EGL/eglext_angle.h b/Source/ThirdParty/ANGLE/include/EGL/eglext_angle.h
index 71118b6..ab5cb8d 100644
--- a/Source/ThirdParty/ANGLE/include/EGL/eglext_angle.h
+++ b/Source/ThirdParty/ANGLE/include/EGL/eglext_angle.h
@@ -65,6 +65,11 @@
 #define EGL_PLATFORM_ANGLE_ENABLE_AUTOMATIC_TRIM_ANGLE 0x320F
 #endif /* EGL_ANGLE_platform_angle_d3d */
 
+#ifndef EGL_ANGLE_platform_angle_d3d11on12
+#define EGL_ANGLE_platform_angle_d3d11on12 1
+#define EGL_PLATFORM_ANGLE_D3D11ON12_ANGLE 0x3488
+#endif /* EGL_ANGLE_platform_angle_d3d11on12 */
+
 #ifndef EGL_ANGLE_platform_angle_opengl
 #define EGL_ANGLE_platform_angle_opengl 1
 #define EGL_PLATFORM_ANGLE_TYPE_OPENGL_ANGLE 0x320D
@@ -82,6 +87,16 @@
 #define EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE 0x3450
 #endif /* EGL_ANGLE_platform_angle_vulkan */
 
+#ifndef EGL_ANGLE_platform_angle_metal
+#define EGL_ANGLE_platform_angle_metal 1
+#define EGL_PLATFORM_ANGLE_TYPE_METAL_ANGLE 0x3489
+#endif /* EGL_ANGLE_platform_angle_metal  */
+
+#ifndef EGL_ANGLE_platform_angle_device_type_swiftshader
+#define EGL_ANGLE_platform_angle_device_type_swiftshader
+#define EGL_PLATFORM_ANGLE_DEVICE_TYPE_SWIFTSHADER_ANGLE 0x3487
+#endif /* EGL_ANGLE_platform_angle_device_type_swiftshader */
+
 #ifndef EGL_ANGLE_platform_angle_context_virtualization
 #define EGL_ANGLE_platform_angle_context_virtualization 1
 #define EGL_PLATFORM_ANGLE_CONTEXT_VIRTUALIZATION_ANGLE 0x3481
@@ -219,6 +234,7 @@
 #define EGL_FEATURE_COUNT_ANGLE 0x3465
 #define EGL_FEATURE_OVERRIDES_ENABLED_ANGLE 0x3466
 #define EGL_FEATURE_OVERRIDES_DISABLED_ANGLE 0x3467
+#define EGL_FEATURE_CONDITION_ANGLE 0x3468
 typedef const char *(EGLAPIENTRYP PFNEGLQUERYSTRINGIANGLEPROC) (EGLDisplay dpy, EGLint name, EGLint index);
 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDISPLAYATTRIBANGLEPROC) (EGLDisplay dpy, EGLint attribute, EGLAttrib *value);
 #ifdef EGL_EGLEXT_PROTOTYPES
@@ -237,6 +253,12 @@
 #define EGL_CONTEXT_OPENGL_BACKWARDS_COMPATIBLE_ANGLE 0x3483
 #endif /* EGL_ANGLE_create_context_backwards_compatible */
 
+#ifndef EGL_ANGLE_device_cgl
+#define EGL_ANGLE_device_cgl 1
+#define EGL_CGL_CONTEXT_ANGLE 0x3485
+#define EGL_CGL_PIXEL_FORMAT_ANGLE 0x3486
+#endif
+
 // clang-format on
 
 #endif  // INCLUDE_EGL_EGLEXT_ANGLE_
diff --git a/Source/ThirdParty/ANGLE/include/platform/Feature.h b/Source/ThirdParty/ANGLE/include/platform/Feature.h
index 657e07b..31a7c04 100644
--- a/Source/ThirdParty/ANGLE/include/platform/Feature.h
+++ b/Source/ThirdParty/ANGLE/include/platform/Feature.h
@@ -13,6 +13,10 @@
 #include <string>
 #include <vector>
 
+#define ANGLE_FEATURE_CONDITION(set, feature, cond) \
+    set->feature.enabled   = cond;                  \
+    set->feature.condition = ANGLE_STRINGIFY(cond);
+
 namespace angle
 {
 
@@ -110,6 +114,9 @@
     // Whether the workaround is enabled or not. Determined by heuristics like vendor ID and
     // version, but may be overriden to any value.
     bool enabled = false;
+
+    // A stingified version of the condition used to set 'enabled'. ie "IsNvidia() && IsApple()"
+    const char *condition;
 };
 
 inline Feature::Feature(const Feature &other) = default;
@@ -118,7 +125,12 @@
                         const char *description,
                         FeatureMap *const mapPtr,
                         const char *bug = "")
-    : name(name), category(category), description(description), bug(bug), enabled(false)
+    : name(name),
+      category(category),
+      description(description),
+      bug(bug),
+      enabled(false),
+      condition(nullptr)
 {
     if (mapPtr != nullptr)
     {
diff --git a/Source/ThirdParty/ANGLE/include/platform/FeaturesD3D.h b/Source/ThirdParty/ANGLE/include/platform/FeaturesD3D.h
index 65a6167..6cf00c3 100644
--- a/Source/ThirdParty/ANGLE/include/platform/FeaturesD3D.h
+++ b/Source/ThirdParty/ANGLE/include/platform/FeaturesD3D.h
@@ -35,9 +35,9 @@
     // We can fix this by optimizing those out of the shader. At the same time, we can
     // work around a bug on some nVidia drivers that they ignore "null" render targets
     // in D3D11, by compacting the active color attachments list to omit null entries.
-    Feature mrtPerfWorkaround = {
-        "mrt_perf_workaround", FeatureCategory::D3DWorkarounds,
-        "Some NVIDIA D3D11 drivers have a bug where they ignore null render targets", &members};
+    Feature mrtPerfWorkaround = {"mrt_perf_workaround", FeatureCategory::D3DWorkarounds,
+                                 "Some drivers have a bug where they ignore null render targets",
+                                 &members};
 
     Feature setDataFasterThanImageUpload = {"set_data_faster_than_image_upload",
                                             FeatureCategory::D3DWorkarounds,
@@ -50,9 +50,9 @@
     // application creates a mipmapped texture2D, but sets GL_TEXTURE_MIN_FILTER to GL_NEAREST
     // (i.e disables mipmaps). To work around this, D3D11 FL9_3 has to create two copies of the
     // texture. The textures' level zeros are identical, but only one texture has mips.
-    Feature zeroMaxLodWorkaround = {
-        "zero_max_lod", FeatureCategory::D3DWorkarounds,
-        "D3D11 is missing an option to disable mipmaps on a mipmapped texture", &members};
+    Feature zeroMaxLodWorkaround = {"zero_max_lod", FeatureCategory::D3DWorkarounds,
+                                    "Missing an option to disable mipmaps on a mipmapped texture",
+                                    &members};
 
     // Some renderers do not support Geometry Shaders so the Geometry Shader-based PointSprite
     // emulation will not work. To work around this, D3D11 FL9_3 has to use a different pointsprite
@@ -68,8 +68,8 @@
     // (See: http://anglebug.com/1452)
     Feature depthStencilBlitExtraCopy = {
         "depth_stencil_blit_extra_copy", FeatureCategory::D3DWorkarounds,
-        "Bug in NVIDIA D3D11 Driver version <=347.88 and >368.81 triggers a TDR when using "
-        "CopySubresourceRegion from a staging texture to a depth/stencil",
+        "Bug in some drivers triggers a TDR when using CopySubresourceRegion from a staging "
+        "texture to a depth/stencil",
         &members, "http://anglebug.com/1452"};
 
     // The HLSL optimizer has a bug with optimizing "pow" in certain integer-valued expressions.
@@ -84,7 +84,7 @@
     // feedback is used to repeatedly write to the same buffer positions.
     Feature flushAfterEndingTransformFeedback = {
         "flush_after_ending_transform_feedback", FeatureCategory::D3DWorkarounds,
-        "NVIDIA drivers sometimes write out-of-order results to StreamOut buffers when transform "
+        "Some drivers sometimes write out-of-order results to StreamOut buffers when transform "
         "feedback is used to repeatedly write to the same buffer positions",
         &members};
 
@@ -92,7 +92,7 @@
     // of the HLSL GetDimensions builtin.
     Feature getDimensionsIgnoresBaseLevel = {
         "get_dimensions_ignores_base_level", FeatureCategory::D3DWorkarounds,
-        "Some NVIDIA drivers do not take into account the base level of the "
+        "Some drivers do not take into account the base level of the "
         "texture in the results of the HLSL GetDimensions builtin",
         &members};
 
@@ -104,8 +104,8 @@
     // by adding Offset directly to Location before reading the texture.
     Feature preAddTexelFetchOffsets = {
         "pre_add_texel_fetch_offsets", FeatureCategory::D3DWorkarounds,
-        "On some Intel drivers, HLSL's function texture.Load returns 0 when the parameter Location "
-        "is negative, even if the sum of Offset and Location is in range",
+        "HLSL's function texture.Load returns 0 when the parameter Location is negative, even if "
+        "the sum of Offset and Location is in range",
         &members};
 
     // On some AMD drivers, 1x1 and 2x2 mips of depth/stencil textures aren't sampled correctly.
@@ -113,8 +113,7 @@
     // before we sample.
     Feature emulateTinyStencilTextures = {
         "emulate_tiny_stencil_textures", FeatureCategory::D3DWorkarounds,
-        "On some AMD drivers, 1x1 and 2x2 mips of depth/stencil textures aren't sampled correctly",
-        &members};
+        "1x1 and 2x2 mips of depth/stencil textures aren't sampled correctly", &members};
 
     // In Intel driver, the data with format DXGI_FORMAT_B5G6R5_UNORM will be parsed incorrectly.
     // This workaroud will disable B5G6R5 support when it's Intel driver. By default, it will use
@@ -122,7 +121,7 @@
     // On older AMD drivers, the data in DXGI_FORMAT_B5G6R5_UNORM becomes corrupted for unknown
     // reasons.
     Feature disableB5G6R5Support = {"disable_b5g6r5_support", FeatureCategory::D3DWorkarounds,
-                                    "On Intel and AMD drivers, textures with the format "
+                                    "Textures with the format "
                                     "DXGI_FORMAT_B5G6R5_UNORM have incorrect data",
                                     &members};
 
@@ -131,35 +130,33 @@
     // This driver bug is fixed in 20.19.15.4624.
     Feature rewriteUnaryMinusOperator = {
         "rewrite_unary_minus_operator", FeatureCategory::D3DWorkarounds,
-        "On some Intel drivers, evaluating unary minus operator on integer may "
-        "get wrong answer in vertex shaders",
+        "Evaluating unary minus operator on integer may get wrong answer in vertex shaders",
         &members};
 
     // On some Intel drivers, using isnan() on highp float will get wrong answer. To work around
     // this bug, we use an expression to emulate function isnan().
     // Tracking bug: https://crbug.com/650547
     // This driver bug is fixed in 21.20.16.4542.
-    Feature emulateIsnanFloat = {
-        "emulate_isnan_float", FeatureCategory::D3DWorkarounds,
-        "On some Intel drivers, using isnan() on highp float will get wrong answer", &members,
-        "https://crbug.com/650547"};
+    Feature emulateIsnanFloat = {"emulate_isnan_float", FeatureCategory::D3DWorkarounds,
+                                 "Using isnan() on highp float will get wrong answer", &members,
+                                 "https://crbug.com/650547"};
 
     // On some Intel drivers, using clear() may not take effect. To work around this bug, we call
     // clear() twice on these platforms.
     // Tracking bug: https://crbug.com/655534
     Feature callClearTwice = {"call_clear_twice", FeatureCategory::D3DWorkarounds,
-                              "On some Intel drivers, using clear() may not take effect", &members,
+                              "Using clear() may not take effect", &members,
                               "https://crbug.com/655534"};
 
     // On some Intel drivers, copying from staging storage to constant buffer storage does not
     // seem to work. Work around this by keeping system memory storage as a canonical reference
     // for buffer data.
     // D3D11-only workaround. See http://crbug.com/593024.
-    Feature useSystemMemoryForConstantBuffers = {
-        "use_system_memory_for_constant_buffers", FeatureCategory::D3DWorkarounds,
-        "On some Intel drivers, copying from staging storage to constant buffer "
-        "storage does not work",
-        &members, "https://crbug.com/593024"};
+    Feature useSystemMemoryForConstantBuffers = {"use_system_memory_for_constant_buffers",
+                                                 FeatureCategory::D3DWorkarounds,
+                                                 "Copying from staging storage to constant buffer "
+                                                 "storage does not work",
+                                                 &members, "https://crbug.com/593024"};
 
     // This workaround is for the ANGLE_multiview extension. If enabled the viewport or render
     // target slice will be selected in the geometry shader stage. The workaround flag is added to
@@ -181,8 +178,7 @@
     // So we add a dummy texture as render target in such case. See http://anglebug.com/2152
     Feature addDummyTextureNoRenderTarget = {
         "add_dummy_texture_no_render_target", FeatureCategory::D3DWorkarounds,
-        "On D3D ntel drivers <4815 when rendering with no render target, two "
-        "bugs lead to incorrect behavior",
+        "On some drivers when rendering with no render target, two bugs lead to incorrect behavior",
         &members, "http://anglebug.com/2152"};
 
     // Don't use D3D constant register zero when allocating space for uniforms in the vertex shader.
@@ -190,9 +186,7 @@
     // specific cases the driver would not handle constant register zero correctly.
     Feature skipVSConstantRegisterZero = {
         "skip_vs_constant_register_zero", FeatureCategory::D3DWorkarounds,
-        "On NVIDIA D3D driver v388.59 in specific cases the driver doesn't "
-        "handle constant register zero correctly",
-        &members};
+        "In specific cases the driver doesn't handle constant register zero correctly", &members};
 
     // Forces the value returned from an atomic operations to be always be resolved. This is
     // targeted to workaround a bug in NVIDIA D3D driver where the return value from
@@ -201,8 +195,8 @@
     // http://anglebug.com/3246
     Feature forceAtomicValueResolution = {
         "force_atomic_value_resolution", FeatureCategory::D3DWorkarounds,
-        "On an NVIDIA D3D driver, the return value from RWByteAddressBuffer.InterlockedAdd does "
-        "not resolve when used in the .yzw components of a RWByteAddressBuffer.Store operation",
+        "On some drivers the return value from RWByteAddressBuffer.InterlockedAdd does not resolve "
+        "when used in the .yzw components of a RWByteAddressBuffer.Store operation",
         &members, "http://anglebug.com/3246"};
 
     // Match chromium's robust resource init behaviour by always prefering to upload texture data
diff --git a/Source/ThirdParty/ANGLE/include/platform/FeaturesGL.h b/Source/ThirdParty/ANGLE/include/platform/FeaturesGL.h
index 1f320a2..caf5ef8 100644
--- a/Source/ThirdParty/ANGLE/include/platform/FeaturesGL.h
+++ b/Source/ThirdParty/ANGLE/include/platform/FeaturesGL.h
@@ -23,19 +23,19 @@
     // one of the two closest normalized integer representations (although round to nearest is
     // preferred) (see section 2.3.5.2 of the GL 4.5 core specification). OpenGL ES requires that
     // round-to-nearest is used (see "Conversion from Floating-Point to Framebuffer Fixed-Point" in
-    // section 2.1.2 of the OpenGL ES 2.0.25 spec).  This issue only shows up on Intel and AMD
-    // drivers on framebuffer formats that have 1-bit alpha, work around this by using higher
-    // precision formats instead.
-    Feature avoid1BitAlphaTextureFormats = {
-        "avoid_1_bit_alpha_texture_formats", FeatureCategory::OpenGLWorkarounds,
-        "Issue on Intel and AMD drivers with 1-bit alpha framebuffer formats", &members};
+    // section 2.1.2 of the OpenGL ES 2.0.25 spec).  This issue only shows up on AMD drivers on
+    // framebuffer formats that have 1-bit alpha, work around this by using higher precision formats
+    // instead.
+    Feature avoid1BitAlphaTextureFormats = {"avoid_1_bit_alpha_texture_formats",
+                                            FeatureCategory::OpenGLWorkarounds,
+                                            "Issue with 1-bit alpha framebuffer formats", &members};
 
     // On some older Intel drivers, GL_RGBA4 is not color renderable, glCheckFramebufferStatus
     // returns GL_FRAMEBUFFER_UNSUPPORTED. Work around this by using a known color-renderable
     // format.
-    Feature rgba4IsNotSupportedForColorRendering = {
-        "rgba4_is_not_supported_for_color_rendering", FeatureCategory::OpenGLWorkarounds,
-        "Issue on older Intel drivers, GL_RGBA4 is not color renderable", &members};
+    Feature rgba4IsNotSupportedForColorRendering = {"rgba4_is_not_supported_for_color_rendering",
+                                                    FeatureCategory::OpenGLWorkarounds,
+                                                    "GL_RGBA4 is not color renderable", &members};
 
     // When clearing a framebuffer on Intel or AMD drivers, when GL_FRAMEBUFFER_SRGB is enabled, the
     // driver clears to the linearized clear color despite the framebuffer not supporting SRGB
@@ -43,8 +43,7 @@
     // attachments appear to get the correct clear color.
     Feature doesSRGBClearsOnLinearFramebufferAttachments = {
         "does_srgb_clears_on_linear_framebuffer_attachments", FeatureCategory::OpenGLWorkarounds,
-        "Issue clearing framebuffers with linear attachments on Intel or AMD "
-        "drivers when GL_FRAMEBUFFER_SRGB is enabled",
+        "Issue clearing framebuffers with linear attachments when GL_FRAMEBUFFER_SRGB is enabled",
         &members};
 
     // On Mac some GLSL constructs involving do-while loops cause GPU hangs, such as the following:
@@ -56,23 +55,21 @@
     // Work around this by rewriting the do-while to use another GLSL construct (block + while)
     Feature doWhileGLSLCausesGPUHang = {
         "do_while_glsl_causes_gpu_hang", FeatureCategory::OpenGLWorkarounds,
-        "On Mac, some GLSL constructs involving do-while loops cause GPU hangs", &members};
+        "Some GLSL constructs involving do-while loops cause GPU hangs", &members};
 
     // On Mac AMD GPU gl_VertexID in GLSL vertex shader doesn't include base vertex value,
     // Work aronud this by replace gl_VertexID with (gl_VertexID - angle_BaseVertex) when
     // angle_BaseVertex is present.
     Feature addBaseVertexToVertexID = {
         "vertex_id_does_not_include_base_vertex", FeatureCategory::OpenGLWorkarounds,
-        "On Mac AMD GPU gl_VertexID in GLSL vertex shader doesn't include base vertex value",
-        &members};
+        "gl_VertexID in GLSL vertex shader doesn't include base vertex value", &members};
 
     // Calling glFinish doesn't cause all queries to report that the result is available on some
     // (NVIDIA) drivers.  It was found that enabling GL_DEBUG_OUTPUT_SYNCHRONOUS before the finish
     // causes it to fully finish.
     Feature finishDoesNotCauseQueriesToBeAvailable = {
         "finish_does_not_cause_queries_to_be_available", FeatureCategory::OpenGLWorkarounds,
-        "On some NVIDIA drivers, glFinish doesn't cause all queries to report available result",
-        &members};
+        "glFinish doesn't cause all queries to report available result", &members};
 
     // Always call useProgram after a successful link to avoid a driver bug.
     // This workaround is meant to reproduce the use_current_program_after_successful_link
@@ -80,21 +77,24 @@
     // not necessary for MacOSX 10.9 and higher (http://crrev.com/39eb535b).
     Feature alwaysCallUseProgramAfterLink = {
         "always_call_use_program_after_link", FeatureCategory::OpenGLWorkarounds,
-        "Always call useProgram after a successful link to avoid a driver bug", &members};
+        "Always call useProgram after a successful link to avoid a driver bug", &members,
+        "http://crbug.com/110263"};
 
-    // In the case of unpacking from a pixel unpack buffer, unpack overlapping rows row by row.
+    // On NVIDIA, in the case of unpacking from a pixel unpack buffer, unpack overlapping rows row
+    // by row.
     Feature unpackOverlappingRowsSeparatelyUnpackBuffer = {
         "unpack_overlapping_rows_separately_unpack_buffer", FeatureCategory::OpenGLWorkarounds,
         "In the case of unpacking from a pixel unpack buffer, unpack overlapping rows row by row",
         &members};
 
-    // In the case of packing to a pixel pack buffer, pack overlapping rows row by row.
+    // On NVIDIA, in the case of packing to a pixel pack buffer, pack overlapping rows row by row.
     Feature packOverlappingRowsSeparatelyPackBuffer = {
         "pack_overlapping_rows_separately_pack_buffer", FeatureCategory::OpenGLWorkarounds,
         "In the case of packing to a pixel pack buffer, pack overlapping rows row by row",
         &members};
 
-    // During initialization, assign the current vertex attributes to the spec-mandated defaults.
+    // On NVIDIA, during initialization, assign the current vertex attributes to the spec-mandated
+    // defaults.
     Feature initializeCurrentVertexAttributes = {
         "initialize_current_vertex_attributes", FeatureCategory::OpenGLWorkarounds,
         "During initialization, assign the current vertex attributes to the spec-mandated defaults",
@@ -102,15 +102,15 @@
 
     // abs(i) where i is an integer returns unexpected result on Intel Mac.
     // Emulate abs(i) with i * sign(i).
-    Feature emulateAbsIntFunction = {
-        "emulate_abs_int_function", FeatureCategory::OpenGLWorkarounds,
-        "On Intel Mac, abs(i) where i is an integer returns unexpected result", &members};
+    Feature emulateAbsIntFunction = {"emulate_abs_int_function", FeatureCategory::OpenGLWorkarounds,
+                                     "abs(i) where i is an integer returns unexpected result",
+                                     &members};
 
     // On Intel Mac, calculation of loop conditions in for and while loop has bug.
     // Add "&& true" to the end of the condition expression to work around the bug.
     Feature addAndTrueToLoopCondition = {
         "add_and_true_to_loop_condition", FeatureCategory::OpenGLWorkarounds,
-        "On Intel Mac, calculation of loop conditions in for and while loop has bug", &members};
+        "Calculation of loop conditions in for and while loop has bug", &members};
 
     // When uploading textures from an unpack buffer, some drivers count an extra row padding when
     // checking if the pixel unpack buffer is big enough. Tracking bug: http://anglebug.com/1512
@@ -127,20 +127,20 @@
     Feature unpackLastRowSeparatelyForPaddingInclusion = {
         "unpack_last_row_separately_for_padding_inclusion", FeatureCategory::OpenGLWorkarounds,
         "When uploading textures from an unpack buffer, some drivers count an extra row padding",
-        &members};
+        &members, "http://anglebug.com/1512"};
 
     // Equivalent workaround when uploading data from a pixel pack buffer.
     Feature packLastRowSeparatelyForPaddingInclusion = {
         "pack_last_row_separately_for_padding_inclusion", FeatureCategory::OpenGLWorkarounds,
         "When uploading textures from an pack buffer, some drivers count an extra row padding",
-        &members};
+        &members, "http://anglebug.com/1512"};
 
     // On some Intel drivers, using isnan() on highp float will get wrong answer. To work around
     // this bug, we use an expression to emulate function isnan().
     // Tracking bug: http://crbug.com/650547
-    Feature emulateIsnanFloat = {
-        "emulate_isnan_float", FeatureCategory::OpenGLWorkarounds,
-        "On some Intel drivers, using isnan() on highp float will get wrong answer", &members};
+    Feature emulateIsnanFloat = {"emulate_isnan_float", FeatureCategory::OpenGLWorkarounds,
+                                 "Using isnan() on highp float will get wrong answer", &members,
+                                 "http://crbug.com/650547"};
 
     // On Mac with OpenGL version 4.1, unused std140 or shared uniform blocks will be
     // treated as inactive which is not consistent with WebGL2.0 spec. Reference all members in a
@@ -148,9 +148,7 @@
     // Also used on Linux AMD.
     Feature useUnusedBlocksWithStandardOrSharedLayout = {
         "use_unused_blocks_with_standard_or_shared_layout", FeatureCategory::OpenGLWorkarounds,
-        "On Mac with OpenGL version 4.1 and Linux AMD, unused std140 or shared uniform blocks "
-        "will be treated as inactive",
-        &members};
+        "Unused std140 or shared uniform blocks will be treated as inactive", &members};
 
     // This flag is used to fix spec difference between GLSL 4.1 or lower and ESSL3.
     Feature removeInvariantAndCentroidForESSL3 = {
@@ -162,14 +160,13 @@
     // Tracking bug: http://crbug.com/308366
     Feature rewriteFloatUnaryMinusOperator = {
         "rewrite_float_unary_minus_operator", FeatureCategory::OpenGLWorkarounds,
-        "On Intel Mac OSX 10.11 driver, using '-<float>' will get wrong answer", &members,
-        "http://crbug.com/308366"};
+        "Using '-<float>' will get wrong answer", &members, "http://crbug.com/308366"};
 
     // On NVIDIA drivers, atan(y, x) may return a wrong answer.
     // Tracking bug: http://crbug.com/672380
     Feature emulateAtan2Float = {"emulate_atan_2_float", FeatureCategory::OpenGLWorkarounds,
-                                 "On NVIDIA drivers, atan(y, x) may return a wrong answer",
-                                 &members, "http://crbug.com/672380"};
+                                 "atan(y, x) may return a wrong answer", &members,
+                                 "http://crbug.com/672380"};
 
     // Some drivers seem to forget about UBO bindings when using program binaries. Work around
     // this by re-applying the bindings after the program binary is loaded or saved.
@@ -177,98 +174,92 @@
     // http://anglebug.com/1637
     Feature reapplyUBOBindingsAfterUsingBinaryProgram = {
         "reapply_ubo_bindings_after_using_binary_program", FeatureCategory::OpenGLWorkarounds,
-        "Some AMD OpenGL drivers and Android devices forget about UBO bindings "
-        "when using program binaries",
-        &members, "http://anglebug.com/1637"};
+        "Some drivers forget about UBO bindings when using program binaries", &members,
+        "http://anglebug.com/1637"};
 
-    // Some OpenGL drivers return 0 when we query MAX_VERTEX_ATTRIB_STRIDE in an OpenGL 4.4 or
+    // Some Linux OpenGL drivers return 0 when we query MAX_VERTEX_ATTRIB_STRIDE in an OpenGL 4.4 or
     // higher context.
     // This only seems to affect AMD OpenGL drivers.
     // Tracking bug: http://anglebug.com/1936
     Feature emulateMaxVertexAttribStride = {
         "emulate_max_vertex_attrib_stride", FeatureCategory::OpenGLWorkarounds,
-        "Some AMD OpenGL >= 4.4 drivers return 0 when MAX_VERTEX_ATTRIB_STRIED queried", &members,
+        "Some drivers return 0 when MAX_VERTEX_ATTRIB_STRIED queried", &members,
         "http://anglebug.com/1936"};
 
-    // Initializing uninitialized locals caused odd behavior on Mac in a few WebGL 2 tests.
-    // Tracking bug: http://anglebug/2041
+    // Initializing uninitialized locals caused odd behavior on Android Qualcomm in a few WebGL 2
+    // tests. Tracking bug: http://anglebug.com/2046
     Feature dontInitializeUninitializedLocals = {
         "dont_initialize_uninitialized_locals", FeatureCategory::OpenGLWorkarounds,
-        "On Mac initializing uninitialized locals caused odd behavior in a few WebGL 2 tests",
-        &members, "http://anglebug.com/2041"};
+        "Initializing uninitialized locals caused odd behavior in a few WebGL 2 tests", &members,
+        "http://anglebug.com/2046"};
 
     // On some NVIDIA drivers the point size range reported from the API is inconsistent with the
     // actual behavior. Clamp the point size to the value from the API to fix this.
     Feature clampPointSize = {
         "clamp_point_size", FeatureCategory::OpenGLWorkarounds,
-        "On some NVIDIA drivers the point size range reported from the API is "
-        "inconsistent with the actual behavior",
+        "The point size range reported from the API is inconsistent with the actual behavior",
         &members};
 
     // On some NVIDIA drivers certain types of GLSL arithmetic ops mixing vectors and scalars may be
     // executed incorrectly. Change them in the shader translator. Tracking bug:
     // http://crbug.com/772651
-    Feature rewriteVectorScalarArithmetic = {
-        "rewrite_vector_scalar_arithmetic", FeatureCategory::OpenGLWorkarounds,
-        "On some NVIDIA drivers certain types of GLSL arithmetic ops mixing "
-        "vectors and scalars may be executed incorrectly",
-        &members, "http://crbug.com/772651"};
+    Feature rewriteVectorScalarArithmetic = {"rewrite_vector_scalar_arithmetic",
+                                             FeatureCategory::OpenGLWorkarounds,
+                                             "Certain types of GLSL arithmetic ops mixing vectors "
+                                             "and scalars may be executed incorrectly",
+                                             &members, "http://crbug.com/772651"};
 
     // On some Android devices for loops used to initialize variables hit native GLSL compiler bugs.
     Feature dontUseLoopsToInitializeVariables = {
         "dont_use_loops_to_initialize_variables", FeatureCategory::OpenGLWorkarounds,
-        "On some Android devices for loops used to initialize variables hit "
-        "native GLSL compiler bugs",
-        &members};
+        "For loops used to initialize variables hit native GLSL compiler bugs", &members};
 
     // On some NVIDIA drivers gl_FragDepth is not clamped correctly when rendering to a floating
     // point depth buffer. Clamp it in the translated shader to fix this.
-    Feature clampFragDepth = {"clamp_frag_depth", FeatureCategory::OpenGLWorkarounds,
-                              "On some NVIDIA drivers gl_FragDepth is not clamped correctly when "
-                              "rendering to a floating point depth buffer",
-                              &members};
+    Feature clampFragDepth = {
+        "clamp_frag_depth", FeatureCategory::OpenGLWorkarounds,
+        "gl_FragDepth is not clamped correctly when rendering to a floating point depth buffer",
+        &members};
 
     // On some NVIDIA drivers before version 397.31 repeated assignment to swizzled values inside a
     // GLSL user-defined function have incorrect results. Rewrite this type of statements to fix
     // this.
-    Feature rewriteRepeatedAssignToSwizzled = {
-        "rewrite_repeated_assign_to_swizzled", FeatureCategory::OpenGLWorkarounds,
-        "On some NVIDIA drivers < v397.31, repeated assignment to swizzled "
-        "values inside a GLSL user-defined function have incorrect results",
-        &members};
+    Feature rewriteRepeatedAssignToSwizzled = {"rewrite_repeated_assign_to_swizzled",
+                                               FeatureCategory::OpenGLWorkarounds,
+                                               "Repeated assignment to swizzled values inside a "
+                                               "GLSL user-defined function have incorrect results",
+                                               &members};
+
     // On some AMD and Intel GL drivers ARB_blend_func_extended does not pass the tests.
     // It might be possible to work around the Intel bug by rewriting *FragData to *FragColor
     // instead of disabling the functionality entirely. The AMD bug looked like incorrect blending,
     // not sure if a workaround is feasible. http://anglebug.com/1085
     Feature disableBlendFuncExtended = {
         "disable_blend_func_extended", FeatureCategory::OpenGLWorkarounds,
-        "On some AMD and Intel GL drivers ARB_blend_func_extended does not pass the tests",
-        &members, "http://anglebug.com/1085"};
+        "ARB_blend_func_extended does not pass the tests", &members, "http://anglebug.com/1085"};
 
     // Qualcomm drivers returns raw sRGB values instead of linearized values when calling
     // glReadPixels on unsized sRGB texture formats. http://crbug.com/550292 and
     // http://crbug.com/565179
     Feature unsizedsRGBReadPixelsDoesntTransform = {
         "unsized_srgb_read_pixels_doesnt_transform", FeatureCategory::OpenGLWorkarounds,
-        "Qualcomm drivers returns raw sRGB values instead of linearized values "
-        "when calling glReadPixels on unsized sRGB texture formats",
+        "Drivers returning raw sRGB values instead of linearized values when calling glReadPixels "
+        "on unsized sRGB texture formats",
         &members, "http://crbug.com/565179"};
 
     // Older Qualcomm drivers generate errors when querying the number of bits in timer queries, ex:
     // GetQueryivEXT(GL_TIME_ELAPSED, GL_QUERY_COUNTER_BITS).  http://anglebug.com/3027
     Feature queryCounterBitsGeneratesErrors = {
         "query_counter_bits_generates_errors", FeatureCategory::OpenGLWorkarounds,
-        "Older Qualcomm drivers generate errors when querying the number of bits in timer queries",
-        &members, "http://anglebug.com/3027"};
+        "Drivers generate errors when querying the number of bits in timer queries", &members,
+        "http://anglebug.com/3027"};
 
     // Re-linking a program in parallel is buggy on some Intel Windows OpenGL drivers and Android
     // platforms.
     // http://anglebug.com/3045
     Feature dontRelinkProgramsInParallel = {
         "dont_relink_programs_in_parallel", FeatureCategory::OpenGLWorkarounds,
-        "On some Intel Windows OpenGL drivers and Android, relinking a program "
-        "in parallel is buggy",
-        &members, "http://anglebug.com/3045"};
+        "Relinking a program in parallel is buggy", &members, "http://anglebug.com/3045"};
 
     // Some tests have been seen to fail using worker contexts, this switch allows worker contexts
     // to be disabled for some platforms. http://crbug.com/849576
@@ -282,15 +273,15 @@
     Feature limitMaxTextureSizeTo4096 = {"max_texture_size_limit_4096",
                                          FeatureCategory::OpenGLWorkarounds,
                                          "Limit max texture size to 4096 to avoid frequent "
-                                         "out-of-memory errors on Android or Intel Linux",
+                                         "out-of-memory errors",
                                          &members, "http://crbug.com/927470"};
 
     // Prevent excessive MSAA allocations on Android devices, various rendering bugs have been
     // observed and they tend to be high DPI anyways. http://crbug.com/797243
     Feature limitMaxMSAASamplesTo4 = {
         "max_msaa_sample_count_4", FeatureCategory::OpenGLWorkarounds,
-        "Various rendering bugs have been observed when using higher MSAA counts on Android",
-        &members, "http://crbug.com/797243"};
+        "Various rendering bugs have been observed when using higher MSAA counts", &members,
+        "http://crbug.com/797243"};
 
     // Prefer to do the robust resource init clear using a glClear. Calls to TexSubImage2D on large
     // textures can take hundreds of milliseconds because of slow uploads on macOS. Do this only on
@@ -328,8 +319,7 @@
     // this by capping the max texture size.
     Feature limitMax3dArrayTextureSizeTo1024 = {
         "max_3d_array_texture_size_1024", FeatureCategory::OpenGLWorkarounds,
-        "Limit max 3d texture size and max array texture layers to 1024 to avoid system hang on "
-        "older Intel Linux",
+        "Limit max 3d texture size and max array texture layers to 1024 to avoid system hang",
         &members, "http://crbug.com/927470"};
 
     // BlitFramebuffer has issues on some platforms with large source/dest texture sizes. This
@@ -344,7 +334,7 @@
     // This workaround clips the source region and adjust the dest region proportionally.
     Feature clipSrcRegionBlitFramebuffer = {
         "clip_src_region_for_blitframebuffer", FeatureCategory::OpenGLWorkarounds,
-        "Mac has issues with blitFramebuffer when the parameters don't match the framebuffer size.",
+        "Issues with blitFramebuffer when the parameters don't match the framebuffer size.",
         &members, "http://crbug.com/830046"};
 
     // Calling glTexImage2D with zero size generates GL errors
@@ -352,6 +342,19 @@
         "reset_texture_generates_errors", FeatureCategory::OpenGLWorkarounds,
         "Calling glTexImage2D with zero size generates errors.", &members,
         "http://anglebug.com/3859"};
+
+    // Mac Intel samples transparent black from GL_COMPRESSED_RGB_S3TC_DXT1_EXT
+    Feature rgbDXT1TexturesSampleZeroAlpha = {
+        "rgb_dxt1_textures_sample_zero_alpha", FeatureCategory::OpenGLWorkarounds,
+        "Sampling BLACK texels from RGB DXT1 textures returns transparent black on Mac.", &members,
+        "http://anglebug.com/3729"};
+
+    // Mac incorrectly executes both sides of && and || expressions when they should short-circuit.
+    Feature unfoldShortCircuits = {
+        "unfold_short_circuits", FeatureCategory::OpenGLWorkarounds,
+        "Mac incorrectly executes both sides of && and || expressions when they should "
+        "short-circuit.",
+        &members, "http://anglebug.com/482"};
 };
 
 inline FeaturesGL::FeaturesGL()  = default;
diff --git a/Source/ThirdParty/ANGLE/include/platform/FeaturesVk.h b/Source/ThirdParty/ANGLE/include/platform/FeaturesVk.h
index 614a86f..80c4f41 100644
--- a/Source/ThirdParty/ANGLE/include/platform/FeaturesVk.h
+++ b/Source/ThirdParty/ANGLE/include/platform/FeaturesVk.h
@@ -49,8 +49,7 @@
     // to have a bug where the last region is ignored.
     Feature extraCopyBufferRegion = {
         "extra_copy_buffer_region", FeatureCategory::VulkanWorkarounds,
-        "Windows Intel driver seems to have a bug where the last copy region in "
-        "vkCmdCopyBuffer is ignored",
+        "Some drivers seem to have a bug where the last copy region in vkCmdCopyBuffer is ignored",
         &members};
 
     // This flag is added for the sole purpose of end2end tests, to test the correctness
@@ -64,8 +63,7 @@
     // Tracked in http://anglebug.com/2970.
     Feature clampPointSize = {
         "clamp_point_size", FeatureCategory::VulkanWorkarounds,
-        "On some NVIDIA drivers, the point size range reported from the API is "
-        "inconsistent with the actual behavior",
+        "The point size range reported from the API is inconsistent with the actual behavior",
         &members, "http://anglebug.com/2970"};
 
     // On some android devices, the memory barrier between the compute shader that converts vertex
@@ -73,8 +71,8 @@
     // to perform a flush after the conversion.  http://anglebug.com/3016
     Feature flushAfterVertexConversion = {
         "flush_after_vertex_conversion", FeatureCategory::VulkanWorkarounds,
-        "On some android devices, the memory barrier between the compute shader that converts "
-        "vertex attributes and the vertex shader that reads from it is ineffective",
+        "The memory barrier between the compute shader that converts vertex attributes and the "
+        "vertex shader that reads from it is ineffective",
         &members, "http://anglebug.com/3016"};
 
     // Whether the VkDevice supports the VK_KHR_incremental_present extension, on which the
@@ -88,8 +86,7 @@
     // textures.
     Feature forceCPUPathForCubeMapCopy = {
         "force_cpu_path_for_cube_map_copy", FeatureCategory::VulkanWorkarounds,
-        "Some Intel Windows drivers have an issue with creating single-layer "
-        "views on cube map textures",
+        "Some drivers have an issue with creating single-layer views on cube map textures",
         &members};
 
     // Whether the VkDevice supports the VK_ANDROID_external_memory_android_hardware_buffer
@@ -128,15 +125,13 @@
     // VK_PRESENT_MODE_FIFO_KHR causes random timeouts on Linux Intel. http://anglebug.com/3153
     Feature disableFifoPresentMode = {
         "disable_fifo_present_mode", FeatureCategory::VulkanWorkarounds,
-        "On Linux Intel, VK_PRESENT_MODE_FIFO_KHR causes random timeouts", &members,
-        "http://anglebug.com/3153"};
+        "VK_PRESENT_MODE_FIFO_KHR causes random timeouts", &members, "http://anglebug.com/3153"};
 
     // On Qualcomm, a bug is preventing us from using loadOp=Clear with inline commands in the
     // render pass.  http://anglebug.com/2361
     Feature restartRenderPassAfterLoadOpClear = {
         "restart_render_pass_after_load_op_clear", FeatureCategory::VulkanWorkarounds,
-        "On Qualcomm, a bug is preventing us from using loadOp=Clear with inline "
-        "commands in the render pass",
+        "A bug is preventing us from using loadOp=Clear with inline commands in the render pass",
         &members, "http://anglebug.com/2361"};
 
     // On Qualcomm, gaps in bound descriptor set indices causes the post-gap sets to misbehave.
@@ -145,35 +140,34 @@
     // unused descriptor set to work around this issue.  http://anglebug.com/2727
     Feature bindEmptyForUnusedDescriptorSets = {
         "bind_empty_for_unused_descriptor_sets", FeatureCategory::VulkanWorkarounds,
-        "On Qualcomm, gaps in bound descriptor set indices causes the post-gap sets to misbehave",
-        &members, "http://anglebug.com/2727"};
+        "Gaps in bound descriptor set indices causes the post-gap sets to misbehave", &members,
+        "http://anglebug.com/2727"};
 
     // When the scissor is (0,0,0,0) on Windows Intel, the driver acts as if the scissor was
     // disabled.  Work-around this by setting the scissor to just outside of the render area
     // (e.g. (renderArea.x, renderArea.y, 1, 1)). http://anglebug.com/3407
     Feature forceNonZeroScissor = {
         "force_non_zero_scissor", FeatureCategory::VulkanWorkarounds,
-        "On Windows Intel, when the scissor is (0,0,0,0), the driver acts as if the "
-        "scissor was disabled",
-        &members, "http://anglebug.com/3407"};
+        "When the scissor is (0,0,0,0), the driver acts as if the scissor was disabled", &members,
+        "http://anglebug.com/3407"};
 
     // OES_depth_texture is a commonly expected feature on Android. However it
     // requires that D16_UNORM support texture filtering
     // (e.g. VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT) and some devices
     // do not. Work-around this by setting saying D16_UNORM supports filtering
     // anyway.
-    Feature forceD16TexFilter = {"force_D16_texture_filter", FeatureCategory::VulkanWorkarounds,
-                                 "On some Android devices, VK_FORMAT_D16_UNORM does not support "
-                                 "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT, "
-                                 "which prevents OES_depth_texture from being supported.",
-                                 &members, "http://anglebug.com/3452"};
+    Feature forceD16TexFilter = {
+        "force_D16_texture_filter", FeatureCategory::VulkanWorkarounds,
+        "VK_FORMAT_D16_UNORM does not support VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT, "
+        "which prevents OES_depth_texture from being supported.",
+        &members, "http://anglebug.com/3452"};
 
     // On some android devices, vkCmdBlitImage with flipped coordinates blits incorrectly.  This
     // workaround makes sure this path is avoided.  http://anglebug.com/3498
     Feature disableFlippingBlitWithCommand = {
         "disable_flipping_blit_with_command", FeatureCategory::VulkanWorkarounds,
-        "On some android devices, vkCmdBlitImage with flipped coordinates blits incorrectly.",
-        &members, "http://anglebug.com/3498"};
+        "vkCmdBlitImage with flipped coordinates blits incorrectly.", &members,
+        "http://anglebug.com/3498"};
 
     // On platform with Intel or AMD GPU, a window resizing would not trigger the vulkan driver to
     // return VK_ERROR_OUT_OF_DATE on swapchain present.  Work-around by query current window extent
@@ -181,9 +175,8 @@
     // http://anglebug.com/3623, http://anglebug.com/3624, http://anglebug.com/3625
     Feature perFrameWindowSizeQuery = {
         "per_frame_window_size_query", FeatureCategory::VulkanWorkarounds,
-        "On platform with Intel or AMD gpu, vulkan swapchain is not returning VK_ERROR_OUT_OF_DATE"
-        "when window resizing",
-        &members, "http://anglebug.com/3623, http://anglebug.com/3624, http://anglebug.com/3625"};
+        "Vulkan swapchain is not returning VK_ERROR_OUT_OF_DATE when window resizing", &members,
+        "http://anglebug.com/3623, http://anglebug.com/3624, http://anglebug.com/3625"};
 
     // On Pixel1XL and Pixel2, reset a vkCommandBuffer seems to have side effects on binding
     // descriptor sets to it afterwards, Work-around by keep using transient vkCommandBuffer on
@@ -191,22 +184,22 @@
     // http://b/135763283
     Feature transientCommandBuffer = {
         "transient_command_buffer", FeatureCategory::VulkanWorkarounds,
-        "On Pixel2, keep using transient vkCommandBuffer to work around driver issue in reseting"
+        "Keep using transient vkCommandBuffer to work around driver issue in reseting"
         "vkCommandBuffer",
         &members, "http://b/135763283"};
 
     // Seamful cube map emulation misbehaves on the AMD windows driver, so it's disallowed.
     Feature disallowSeamfulCubeMapEmulation = {
         "disallow_seamful_cube_map_emulation", FeatureCategory::VulkanWorkarounds,
-        "Seamful cube map emulation misbehaves on the AMD windows driver, so it's disallowed",
-        &members, "http://anglebug.com/3243"};
+        "Seamful cube map emulation misbehaves on some drivers, so it's disallowed", &members,
+        "http://anglebug.com/3243"};
 
     // Qualcomm shader compiler doesn't support sampler arrays as parameters, so
     // revert to old RewriteStructSamplers behavior, which produces fewer.
     Feature forceOldRewriteStructSamplers = {
         "force_old_rewrite_struct_samplers", FeatureCategory::VulkanWorkarounds,
-        "Qualcomm shader compiler doesn't support sampler arrays as parameters, so "
-        "revert to old RewriteStructSamplers behavior, which produces fewer.",
+        "Some shader compilers don't support sampler arrays as parameters, so revert to old "
+        "RewriteStructSamplers behavior, which produces fewer.",
         &members, "http://anglebug.com/2703"};
 };
 
diff --git a/Source/ThirdParty/ANGLE/include/platform/FrontendFeatures.h b/Source/ThirdParty/ANGLE/include/platform/FrontendFeatures.h
index 4b40e85..7add7dd 100644
--- a/Source/ThirdParty/ANGLE/include/platform/FrontendFeatures.h
+++ b/Source/ThirdParty/ANGLE/include/platform/FrontendFeatures.h
@@ -34,14 +34,14 @@
     angle::Feature disableProgramCachingForTransformFeedback = {
         "disable_program_caching_for_transform_feedback",
         angle::FeatureCategory::FrontendWorkarounds,
-        "On Qualcomm GPUs, program binaries don't contain transform feedback varyings", &members};
+        "On some GPUs, program binaries don't contain transform feedback varyings", &members};
 
     // On Windows Intel OpenGL drivers TexImage sometimes seems to interact with the Framebuffer.
     // Flaky crashes can occur unless we sync the Framebuffer bindings. The workaround is to add
     // Framebuffer binding dirty bits to TexImage updates. See http://anglebug.com/2906
     angle::Feature syncFramebufferBindingsOnTexImage = {
         "sync_framebuffer_bindings_on_tex_image", angle::FeatureCategory::FrontendWorkarounds,
-        "On Windows Intel OpenGL drivers TexImage sometimes seems to interact "
+        "On some drivers TexImage sometimes seems to interact "
         "with the Framebuffer",
         &members};
 
diff --git a/Source/ThirdParty/ANGLE/samples/WindowTest/WindowTest.cpp b/Source/ThirdParty/ANGLE/samples/WindowTest/WindowTest.cpp
index f7baedd..45d7735 100644
--- a/Source/ThirdParty/ANGLE/samples/WindowTest/WindowTest.cpp
+++ b/Source/ThirdParty/ANGLE/samples/WindowTest/WindowTest.cpp
@@ -10,7 +10,7 @@
 #include <iostream>
 
 #include "util/OSWindow.h"
-#include "util/system_utils.h"
+#include "util/test_utils.h"
 
 int main(int argc, char *argv[])
 {
diff --git a/Source/ThirdParty/ANGLE/samples/gles1/DrawTexture.cpp b/Source/ThirdParty/ANGLE/samples/gles1/DrawTexture.cpp
index aa062b6..492fb62 100644
--- a/Source/ThirdParty/ANGLE/samples/gles1/DrawTexture.cpp
+++ b/Source/ThirdParty/ANGLE/samples/gles1/DrawTexture.cpp
@@ -16,7 +16,7 @@
 #include "SampleApplication.h"
 #include "texture_utils.h"
 #include "util/shader_utils.h"
-#include "util/system_utils.h"
+#include "util/test_utils.h"
 
 #include <GLES/gl.h>
 #include <GLES/glext.h>
diff --git a/Source/ThirdParty/ANGLE/samples/multi_texture/MultiTexture.cpp b/Source/ThirdParty/ANGLE/samples/multi_texture/MultiTexture.cpp
index dc0e527..49ac9f3 100644
--- a/Source/ThirdParty/ANGLE/samples/multi_texture/MultiTexture.cpp
+++ b/Source/ThirdParty/ANGLE/samples/multi_texture/MultiTexture.cpp
@@ -17,7 +17,7 @@
 
 #include "tga_utils.h"
 #include "util/shader_utils.h"
-#include "util/system_utils.h"
+#include "util/test_utils.h"
 
 class MultiTextureSample : public SampleApplication
 {
diff --git a/Source/ThirdParty/ANGLE/samples/multiple_draw_buffers/MultipleDrawBuffers.cpp b/Source/ThirdParty/ANGLE/samples/multiple_draw_buffers/MultipleDrawBuffers.cpp
index 9a95a7d..c1231c3 100644
--- a/Source/ThirdParty/ANGLE/samples/multiple_draw_buffers/MultipleDrawBuffers.cpp
+++ b/Source/ThirdParty/ANGLE/samples/multiple_draw_buffers/MultipleDrawBuffers.cpp
@@ -17,7 +17,7 @@
 
 #include "texture_utils.h"
 #include "util/shader_utils.h"
-#include "util/system_utils.h"
+#include "util/test_utils.h"
 
 #include <cstring>
 #include <iostream>
diff --git a/Source/ThirdParty/ANGLE/samples/particle_system/ParticleSystem.cpp b/Source/ThirdParty/ANGLE/samples/particle_system/ParticleSystem.cpp
index a1a59d1..87c17d0 100644
--- a/Source/ThirdParty/ANGLE/samples/particle_system/ParticleSystem.cpp
+++ b/Source/ThirdParty/ANGLE/samples/particle_system/ParticleSystem.cpp
@@ -19,11 +19,12 @@
 #include "tga_utils.h"
 #include "util/random_utils.h"
 #include "util/shader_utils.h"
-#include "util/system_utils.h"
 
 #define _USE_MATH_DEFINES
 #include <math.h>
 
+#include <string>
+
 using namespace angle;
 
 class ParticleSystemSample : public SampleApplication
diff --git a/Source/ThirdParty/ANGLE/samples/sample_util/SampleApplication.cpp b/Source/ThirdParty/ANGLE/samples/sample_util/SampleApplication.cpp
index 92ce505..1a5d29f 100644
--- a/Source/ThirdParty/ANGLE/samples/sample_util/SampleApplication.cpp
+++ b/Source/ThirdParty/ANGLE/samples/sample_util/SampleApplication.cpp
@@ -9,7 +9,7 @@
 #include "util/EGLWindow.h"
 #include "util/gles_loader_autogen.h"
 #include "util/random_utils.h"
-#include "util/system_utils.h"
+#include "util/test_utils.h"
 
 #include <string.h>
 #include <iostream>
@@ -22,9 +22,14 @@
 using DisplayTypeInfo = std::pair<const char *, EGLint>;
 
 const DisplayTypeInfo kDisplayTypes[] = {
-    {"d3d9", EGL_PLATFORM_ANGLE_TYPE_D3D9_ANGLE}, {"d3d11", EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE},
-    {"gl", EGL_PLATFORM_ANGLE_TYPE_OPENGL_ANGLE}, {"gles", EGL_PLATFORM_ANGLE_TYPE_OPENGLES_ANGLE},
-    {"null", EGL_PLATFORM_ANGLE_TYPE_NULL_ANGLE}, {"vulkan", EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE}};
+    {"d3d9", EGL_PLATFORM_ANGLE_TYPE_D3D9_ANGLE},
+    {"d3d11", EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE},
+    {"gl", EGL_PLATFORM_ANGLE_TYPE_OPENGL_ANGLE},
+    {"gles", EGL_PLATFORM_ANGLE_TYPE_OPENGLES_ANGLE},
+    {"null", EGL_PLATFORM_ANGLE_TYPE_NULL_ANGLE},
+    {"vulkan", EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE},
+    {"swiftshader", EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE},
+};
 
 EGLint GetDisplayTypeFromArg(const char *displayTypeArg)
 {
@@ -40,6 +45,18 @@
     std::cout << "Unknown ANGLE back-end API: " << displayTypeArg << std::endl;
     return EGL_PLATFORM_ANGLE_TYPE_DEFAULT_ANGLE;
 }
+
+EGLint GetDeviceTypeFromArg(const char *displayTypeArg)
+{
+    if (strcmp(displayTypeArg, "swiftshader") == 0)
+    {
+        return EGL_PLATFORM_ANGLE_DEVICE_TYPE_SWIFTSHADER_ANGLE;
+    }
+    else
+    {
+        return EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE;
+    }
+}
 }  // anonymous namespace
 
 SampleApplication::SampleApplication(std::string name,
@@ -60,7 +77,9 @@
 
     if (argc > 1 && strncmp(argv[1], kUseAngleArg, strlen(kUseAngleArg)) == 0)
     {
-        mPlatformParams.renderer = GetDisplayTypeFromArg(argv[1] + strlen(kUseAngleArg));
+        const char *arg            = argv[1] + strlen(kUseAngleArg);
+        mPlatformParams.renderer   = GetDisplayTypeFromArg(arg);
+        mPlatformParams.deviceType = GetDeviceTypeFromArg(arg);
     }
 
     // Load EGL library so we can initialize the display.
diff --git a/Source/ThirdParty/ANGLE/samples/sample_util/SampleApplication.h b/Source/ThirdParty/ANGLE/samples/sample_util/SampleApplication.h
index 1b187a3..a8a8af3 100644
--- a/Source/ThirdParty/ANGLE/samples/sample_util/SampleApplication.h
+++ b/Source/ThirdParty/ANGLE/samples/sample_util/SampleApplication.h
@@ -12,6 +12,7 @@
 #include <memory>
 #include <string>
 
+#include "common/system_utils.h"
 #include "util/EGLPlatformParameters.h"
 #include "util/OSWindow.h"
 #include "util/Timer.h"
diff --git a/Source/ThirdParty/ANGLE/scripts/code_generation_hashes/ANGLE_format.json b/Source/ThirdParty/ANGLE/scripts/code_generation_hashes/ANGLE_format.json
index 3d2e66c..102cdf3 100644
--- a/Source/ThirdParty/ANGLE/scripts/code_generation_hashes/ANGLE_format.json
+++ b/Source/ThirdParty/ANGLE/scripts/code_generation_hashes/ANGLE_format.json
@@ -1,14 +1,14 @@
 {
   "src/libANGLE/renderer/FormatID_autogen.h":
-    "f127ba841492924a28ffe92e7ead74e9",
+    "0e45fa793ccf180d7f608dbe2d9927a5",
   "src/libANGLE/renderer/Format_table_autogen.cpp":
-    "a30ec4e0658eb44634a4c44b8334cde7",
+    "808c9476e937a1d79d41451c84622541",
   "src/libANGLE/renderer/angle_format.py":
-    "eefe6befdc925574207746fa531165fd",
+    "32ba71942c0fd00e6807104f1bb80a3c",
   "src/libANGLE/renderer/angle_format_data.json":
     "e39704d451d108335e737c39ad423113",
   "src/libANGLE/renderer/angle_format_map.json":
-    "ce3cf0c03ed74a997dbe9d6b7bf5e6f0",
+    "7c89f37c637323a34f4ec46ca11a6078",
   "src/libANGLE/renderer/gen_angle_format_table.py":
-    "dfa234d7707682fec20b571d2c16d784"
+    "8e349a643e81a028ebb54bde3756f9f7"
 }
\ No newline at end of file
diff --git a/Source/ThirdParty/ANGLE/scripts/code_generation_hashes/ANGLE_load_functions_table.json b/Source/ThirdParty/ANGLE/scripts/code_generation_hashes/ANGLE_load_functions_table.json
index d03f476..fe5bc25 100644
--- a/Source/ThirdParty/ANGLE/scripts/code_generation_hashes/ANGLE_load_functions_table.json
+++ b/Source/ThirdParty/ANGLE/scripts/code_generation_hashes/ANGLE_load_functions_table.json
@@ -2,7 +2,7 @@
   "src/libANGLE/renderer/gen_load_functions_table.py":
     "e65c50e84fc38ad34d0eb0bebb84aab6",
   "src/libANGLE/renderer/load_functions_data.json":
-    "2225ec8e466cb151fe383fc467d35d65",
+    "5e9a50b1eeda3b5bca68aac4bc379437",
   "src/libANGLE/renderer/load_functions_table_autogen.cpp":
-    "f4c1c06efea4b69ac29c7f8dff68ea6d"
+    "a5dc01dc05a08f7c674f9241d36b095c"
 }
\ No newline at end of file
diff --git a/Source/ThirdParty/ANGLE/scripts/code_generation_hashes/D3D11_format.json b/Source/ThirdParty/ANGLE/scripts/code_generation_hashes/D3D11_format.json
index fcaf48b..356e8d0 100644
--- a/Source/ThirdParty/ANGLE/scripts/code_generation_hashes/D3D11_format.json
+++ b/Source/ThirdParty/ANGLE/scripts/code_generation_hashes/D3D11_format.json
@@ -1,6 +1,6 @@
 {
   "src/libANGLE/renderer/angle_format.py":
-    "eefe6befdc925574207746fa531165fd",
+    "32ba71942c0fd00e6807104f1bb80a3c",
   "src/libANGLE/renderer/d3d/d3d11/gen_texture_format_table.py":
     "bf11e3404d4622059b6e9c4e96abf95e",
   "src/libANGLE/renderer/d3d/d3d11/texture_format_data.json":
diff --git a/Source/ThirdParty/ANGLE/scripts/code_generation_hashes/DXGI_format.json b/Source/ThirdParty/ANGLE/scripts/code_generation_hashes/DXGI_format.json
index 6ba8056..555cf05 100644
--- a/Source/ThirdParty/ANGLE/scripts/code_generation_hashes/DXGI_format.json
+++ b/Source/ThirdParty/ANGLE/scripts/code_generation_hashes/DXGI_format.json
@@ -1,8 +1,8 @@
 {
   "src/libANGLE/renderer/angle_format.py":
-    "eefe6befdc925574207746fa531165fd",
+    "32ba71942c0fd00e6807104f1bb80a3c",
   "src/libANGLE/renderer/angle_format_map.json":
-    "ce3cf0c03ed74a997dbe9d6b7bf5e6f0",
+    "7c89f37c637323a34f4ec46ca11a6078",
   "src/libANGLE/renderer/d3d/d3d11/dxgi_format_data.json":
     "24f525b05dc665fbbc8c6d68fb863719",
   "src/libANGLE/renderer/d3d/d3d11/dxgi_format_map_autogen.cpp":
diff --git a/Source/ThirdParty/ANGLE/scripts/code_generation_hashes/GL_EGL_WGL_loader.json b/Source/ThirdParty/ANGLE/scripts/code_generation_hashes/GL_EGL_WGL_loader.json
index ce9527f..e6bd503 100644
--- a/Source/ThirdParty/ANGLE/scripts/code_generation_hashes/GL_EGL_WGL_loader.json
+++ b/Source/ThirdParty/ANGLE/scripts/code_generation_hashes/GL_EGL_WGL_loader.json
@@ -6,7 +6,7 @@
   "scripts/generate_loader.py":
     "48c60c668bec42a80378179aae2acc61",
   "scripts/registry_xml.py":
-    "cdf43c79a91f68bf8678b4c2cb75e9f1",
+    "a002559d0c36f3c78c08ba99f9849c6c",
   "scripts/wgl.xml":
     "aa96419c582af2f6673430e2847693f4",
   "src/libEGL/egl_loader_autogen.cpp":
diff --git a/Source/ThirdParty/ANGLE/scripts/code_generation_hashes/GL_EGL_entry_points.json b/Source/ThirdParty/ANGLE/scripts/code_generation_hashes/GL_EGL_entry_points.json
index c73c536..7be0809 100644
--- a/Source/ThirdParty/ANGLE/scripts/code_generation_hashes/GL_EGL_entry_points.json
+++ b/Source/ThirdParty/ANGLE/scripts/code_generation_hashes/GL_EGL_entry_points.json
@@ -6,13 +6,13 @@
   "scripts/entry_point_packed_gl_enums.json":
     "5550f249db54a698036d5d9aa65e043b",
   "scripts/generate_entry_points.py":
-    "00dc8410ad87e122314ac58579445188",
+    "29fd14951357959ad8e562867c0b12f6",
   "scripts/gl.xml":
     "b470cb06b06cbbe7adb2c8129ec85708",
   "scripts/gl_angle_ext.xml":
     "82d1e91d75d8935a44312da31adca77c",
   "scripts/registry_xml.py":
-    "cdf43c79a91f68bf8678b4c2cb75e9f1",
+    "a002559d0c36f3c78c08ba99f9849c6c",
   "scripts/wgl.xml":
     "aa96419c582af2f6673430e2847693f4",
   "src/libANGLE/Context_gl_1_0_autogen.h":
@@ -90,9 +90,9 @@
   "src/libANGLE/frame_capture_replay_autogen.cpp":
     "1e4e55ea044ff8fc3764622a2f1cf240",
   "src/libANGLE/frame_capture_utils_autogen.cpp":
-    "7465f826ea0196541bddd95540b0f599",
+    "f0a704d60de3f1f175a7799b49c45408",
   "src/libANGLE/frame_capture_utils_autogen.h":
-    "4d16f676a1f5f70a882161fcb585db5b",
+    "cc6e5b6c49d51da1cebea6ea48422511",
   "src/libANGLE/validationES1_autogen.h":
     "8d3131d2bf2e6f521f46b44e64a6bff9",
   "src/libANGLE/validationES2_autogen.h":
diff --git a/Source/ThirdParty/ANGLE/scripts/code_generation_hashes/OpenGL_dispatch_table.json b/Source/ThirdParty/ANGLE/scripts/code_generation_hashes/OpenGL_dispatch_table.json
index 4905f31..e749614 100644
--- a/Source/ThirdParty/ANGLE/scripts/code_generation_hashes/OpenGL_dispatch_table.json
+++ b/Source/ThirdParty/ANGLE/scripts/code_generation_hashes/OpenGL_dispatch_table.json
@@ -2,7 +2,7 @@
   "scripts/gl.xml":
     "b470cb06b06cbbe7adb2c8129ec85708",
   "src/libANGLE/renderer/angle_format.py":
-    "eefe6befdc925574207746fa531165fd",
+    "32ba71942c0fd00e6807104f1bb80a3c",
   "src/libANGLE/renderer/gl/DispatchTableGL_autogen.cpp":
     "7ebaa7f7525a0fe13f163ec076a8eace",
   "src/libANGLE/renderer/gl/DispatchTableGL_autogen.h":
diff --git a/Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Static_builtins.json b/Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Static_builtins.json
index a5a4800..f278266 100644
--- a/Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Static_builtins.json
+++ b/Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Static_builtins.json
@@ -1,30 +1,30 @@
 {
   "src/compiler/translator/ImmutableString_ESSL_autogen.cpp":
-    "2c8ea95fdeb119742dbce1264186baf0",
+    "7a3f3014d9607087478ab62bb7380c41",
   "src/compiler/translator/ImmutableString_autogen.cpp":
-    "c5ce7814ee542605b4c353a2ac2590b1",
+    "f263dab8a3de5424902d50fd9c171377",
   "src/compiler/translator/ParseContext_ESSL_autogen.h":
     "1edbc3eb12319018818147bccd3a226d",
   "src/compiler/translator/ParseContext_complete_autogen.h":
     "a4209c68899e9cf3bcce81be2cb5f39f",
   "src/compiler/translator/SymbolTable_ESSL_autogen.cpp":
-    "f5d8521b9ba52b75349acbd0f07e1cec",
+    "7714226af3c98c0ebce9e71ef181c3ea",
   "src/compiler/translator/SymbolTable_autogen.cpp":
-    "684ce2afa8d3254b12ff3a9db15258b3",
+    "b0454c7771bda83e0ff0b39338bd3f66",
   "src/compiler/translator/SymbolTable_autogen.h":
-    "3b7cc472d076136a048d6b6f9c28460c",
+    "3ce7740b6ad93a86d198c3937b70c17e",
   "src/compiler/translator/builtin_function_declarations.txt":
     "fc9b0b050448d015482c9f13cab1df67",
   "src/compiler/translator/builtin_variables.json":
     "e0155915c71991dee1c46358fdb7dd8b",
   "src/compiler/translator/gen_builtin_symbols.py":
-    "3c867ef8bd6d80fa3d237c601b98407d",
+    "1034aa779dc2f10458779b28863ec6e2",
   "src/compiler/translator/tree_util/BuiltIn_ESSL_autogen.h":
     "3c7cdcb39ac0bd262a7d2c8edf8650c0",
   "src/compiler/translator/tree_util/BuiltIn_complete_autogen.h":
     "b840c72eb7184799469740e91f8715ab",
   "src/tests/compiler_tests/ImmutableString_test_ESSL_autogen.cpp":
-    "d5d22a67766f59cb5c99f188a9bf223f",
+    "760243f6505f48d9f72b6dd5ffbe8f23",
   "src/tests/compiler_tests/ImmutableString_test_autogen.cpp":
-    "c01c3151b2307bf822ea1796b92ec76d"
+    "3329875ef3e29005aad2839c96f3ec31"
 }
\ No newline at end of file
diff --git a/Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Vulkan_format.json b/Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Vulkan_format.json
index e970529..ea88b9d 100644
--- a/Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Vulkan_format.json
+++ b/Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Vulkan_format.json
@@ -1,12 +1,12 @@
 {
   "src/libANGLE/renderer/angle_format.py":
-    "eefe6befdc925574207746fa531165fd",
+    "32ba71942c0fd00e6807104f1bb80a3c",
   "src/libANGLE/renderer/angle_format_map.json":
-    "ce3cf0c03ed74a997dbe9d6b7bf5e6f0",
+    "7c89f37c637323a34f4ec46ca11a6078",
   "src/libANGLE/renderer/vulkan/gen_vk_format_table.py":
     "ed6800108a872709e5e53fde2833aa86",
   "src/libANGLE/renderer/vulkan/vk_format_map.json":
-    "0e63169b162b3720db40e80c80163edb",
+    "ef0c23a6620215cfacfc690e9995ba31",
   "src/libANGLE/renderer/vulkan/vk_format_table_autogen.cpp":
-    "8b9e38b91ec6b8b23573e2ef9df5284a"
+    "ab30905d3d43b2186296f85c69db7e20"
 }
\ No newline at end of file
diff --git a/Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Vulkan_internal_shader_programs.json b/Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Vulkan_internal_shader_programs.json
index 8a27d26..eb2d31b 100644
--- a/Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Vulkan_internal_shader_programs.json
+++ b/Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Vulkan_internal_shader_programs.json
@@ -1,6 +1,6 @@
 {
   "src/libANGLE/renderer/vulkan/gen_vk_internal_shaders.py":
-    "b05fa7c291a7c05d9bb1dd075990275b",
+    "8a13b2f4f77d51928db01eceb2c4ad44",
   "src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000000.inc":
     "31832c377e532cd5ea05aab57154b8f8",
   "src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000001.inc":
@@ -82,9 +82,17 @@
   "src/libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.0000000B.inc":
     "7e13d5325d35f96045e920a1cb3598bc",
   "src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000000.inc":
-    "dbd9529dd0c4ba0947842a9eb18e6189",
+    "b3877393750a16efd1d6805a0327a9e7",
   "src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000001.inc":
-    "2e8b92c66a347f3517ae1945d3ad625c",
+    "66d7868159587d000ef41d84489780bc",
+  "src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000002.inc":
+    "db98380613bc3f032037b4a096756975",
+  "src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000003.inc":
+    "e676bdff5c3b596eccba13a4e52d3875",
+  "src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndexIndirectLineLoop.comp.00000000.inc":
+    "d99b638b0b2efa9726350869fe6b9b10",
+  "src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndexIndirectLineLoop.comp.00000001.inc":
+    "8f27f7634724189ce2bd63820e96ee63",
   "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000000.inc":
     "f5ef892346ee10e5d0d9f8cba2a491b2",
   "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000001.inc":
@@ -102,9 +110,9 @@
   "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000007.inc":
     "bb62a58562d954c5a0946c291c2afca2",
   "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000008.inc":
-    "b5340976023d009e8c80aa9798ac7680",
+    "5228214dc4d40eebed9b66806d604ef0",
   "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000009.inc":
-    "cdcabde7e530a7030d377f3a01a78fec",
+    "18cf63360b3030cb637dd1129bd04e6b",
   "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000000A.inc":
     "61b2ac99ab77bea128bfe97dd34b4fa7",
   "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000000B.inc":
@@ -134,9 +142,45 @@
   "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000017.inc":
     "c9a4c3100ce405279425855655f1ef50",
   "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000018.inc":
-    "ccbcd91094e7e9308573b3033f674e2c",
+    "5f2b521b8c31ecf08d2776c554c0c699",
   "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000019.inc":
-    "628e93148792a85a1fa0c688e1686a1d",
+    "4b364dc33cf595d2fa382b9321f48dbc",
+  "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000001A.inc":
+    "ee4f06ba87a3dde490e01a0ec4561e10",
+  "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000001B.inc":
+    "d2b62347cd2b80f885adfa31f6aeccc0",
+  "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000001C.inc":
+    "92ea6760ba66b603fcbc1bebf207aa78",
+  "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000001D.inc":
+    "72bbe32670195bcf4be9d1edd8152178",
+  "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000001E.inc":
+    "e5131c8ba46eaf2674aad854eb3bc787",
+  "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000001F.inc":
+    "45f2705df7389be715506e9c3e484d74",
+  "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000020.inc":
+    "d79651c76fdfefb0949ae18e006a6d22",
+  "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000021.inc":
+    "52d7d35300cbdc1825bb75445a4784ba",
+  "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000022.inc":
+    "3cb10ed1f526018215af300c40614fd7",
+  "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000023.inc":
+    "cf7d1cfe77021df82b8c2ff5ec97ac59",
+  "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000024.inc":
+    "44fd4a3c651d31fd783a42dfc0bde182",
+  "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000025.inc":
+    "25b270092f8e6a1bfeb3c6f5e441d792",
+  "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000026.inc":
+    "a77252550fef5aa63bb49faecb6de265",
+  "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000027.inc":
+    "1bac85ed8b670bbe4b68ffa4064bf31f",
+  "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000028.inc":
+    "d6cfcf49825f3da242d0f8935b0e30f6",
+  "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000029.inc":
+    "59e6c4a829283dc6db1664bb397ed6a2",
+  "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000002A.inc":
+    "4090206500b8e40b293de75230b1b532",
+  "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000002B.inc":
+    "35ac7eddef7947f070b4f8419674f048",
   "src/libANGLE/renderer/vulkan/shaders/gen/FullScreenQuad.vert.00000000.inc":
     "235ca7c3979ce29a49c320d000ee7409",
   "src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000000.inc":
@@ -246,9 +290,11 @@
   "src/libANGLE/renderer/vulkan/shaders/src/BufferUtils.comp":
     "b7c20e019199f8328ef37b11c6fbcadd",
   "src/libANGLE/renderer/vulkan/shaders/src/ConvertIndex.comp":
-    "ca35df77d258baa0636529d1f0f446a9",
+    "083e2b6ed2cf40f036287413c449e675",
+  "src/libANGLE/renderer/vulkan/shaders/src/ConvertIndexIndirectLineLoop.comp":
+    "a543a28fc1fe53eefd5949ee3b4428f3",
   "src/libANGLE/renderer/vulkan/shaders/src/ConvertVertex.comp":
-    "d6abd323d011689cef5db83162214be2",
+    "6d034ff271e17c0a4f8a12b8eec2970d",
   "src/libANGLE/renderer/vulkan/shaders/src/FullScreenQuad.vert":
     "805ec8b2f87d4bd4242dc5b1c58ba3b4",
   "src/libANGLE/renderer/vulkan/shaders/src/ImageClear.frag":
@@ -260,9 +306,9 @@
   "src/libANGLE/renderer/vulkan/shaders/src/OverlayDraw.comp":
     "dcc246b398b2e07a869a264666499362",
   "src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.cpp":
-    "9035e5a2674bbab577576d5b704fbe99",
+    "39bcc07efd2fe05c1eb0a9d9e34567d3",
   "src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.h":
-    "bd3beed76c9069d967cc2946a035e2cc",
+    "cfeb07579c1ba5051450f76f06e47d05",
   "tools/glslang/glslang_validator.exe.sha1":
     "289f30598865a987a21b79ae525fc66f",
   "tools/glslang/glslang_validator.sha1":
diff --git a/Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Vulkan_mandatory_format_support_table.json b/Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Vulkan_mandatory_format_support_table.json
index 60a7ce0..d5f8ef7 100644
--- a/Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Vulkan_mandatory_format_support_table.json
+++ b/Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Vulkan_mandatory_format_support_table.json
@@ -1,6 +1,6 @@
 {
   "src/libANGLE/renderer/angle_format.py":
-    "eefe6befdc925574207746fa531165fd",
+    "32ba71942c0fd00e6807104f1bb80a3c",
   "src/libANGLE/renderer/vulkan/gen_vk_mandatory_format_support_table.py":
     "dab4614bbee0c3fbc5b3ccaaa11ba9d3",
   "src/libANGLE/renderer/vulkan/vk_mandatory_format_support_data.json":
@@ -8,5 +8,5 @@
   "src/libANGLE/renderer/vulkan/vk_mandatory_format_support_table_autogen.cpp":
     "d20e549634ef32d6ad4e9f0b28e52acf",
   "third_party/vulkan-headers/src/registry/vk.xml":
-    "8af0f992bd45c2d9500eb5ed60c256d6"
+    "db16f42dab8a7a1ee88c42a90f0c02c2"
 }
\ No newline at end of file
diff --git a/Source/ThirdParty/ANGLE/scripts/code_generation_hashes/proc_table.json b/Source/ThirdParty/ANGLE/scripts/code_generation_hashes/proc_table.json
index 2a757421..6e72edc 100644
--- a/Source/ThirdParty/ANGLE/scripts/code_generation_hashes/proc_table.json
+++ b/Source/ThirdParty/ANGLE/scripts/code_generation_hashes/proc_table.json
@@ -10,7 +10,7 @@
   "scripts/gl_angle_ext.xml":
     "82d1e91d75d8935a44312da31adca77c",
   "scripts/registry_xml.py":
-    "cdf43c79a91f68bf8678b4c2cb75e9f1",
+    "a002559d0c36f3c78c08ba99f9849c6c",
   "scripts/wgl.xml":
     "aa96419c582af2f6673430e2847693f4",
   "src/libGL/proc_table_wgl_autogen.cpp":
diff --git a/Source/ThirdParty/ANGLE/scripts/export_targets.py b/Source/ThirdParty/ANGLE/scripts/export_targets.py
index e5a6234..db6108c 100755
--- a/Source/ThirdParty/ANGLE/scripts/export_targets.py
+++ b/Source/ThirdParty/ANGLE/scripts/export_targets.py
@@ -56,7 +56,18 @@
 REPO_DIR = pathlib.Path.cwd()
 
 GN_ENV = dict(os.environ)
-GN_ENV['DEPOT_TOOLS_WIN_TOOLCHAIN'] = '0'
+# We need to set DEPOT_TOOLS_WIN_TOOLCHAIN to 0 for non-Googlers, but otherwise
+# leave it unset since vs_toolchain.py assumes that the user is a Googler with
+# the Visual Studio files in depot_tools if DEPOT_TOOLS_WIN_TOOLCHAIN is not
+# explicitly set to 0.
+vs_found = False
+for directory in os.environ['PATH'].split(os.pathsep):
+    vs_dir = os.path.join(directory, 'win_toolchain', 'vs_files')
+    if os.path.exists(vs_dir):
+        vs_found = True
+        break
+if not vs_found:
+    GN_ENV['DEPOT_TOOLS_WIN_TOOLCHAIN'] = '0'
 
 (OUT_DIR, *ROOTS) = sys.argv[1:]
 assert len(ROOTS), 'Usage: export_targets.py OUT_DIR ROOTS...'
@@ -107,7 +118,7 @@
 
 try:
     p = run_checked('gn', 'desc', '--format=json', str(OUT_DIR), '*', stdout=subprocess.PIPE,
-                shell=True, env=GN_ENV)
+                env=GN_ENV, shell=(True if sys.platform == 'win32' else False))
 except subprocess.CalledProcessError:
     sys.stderr.buffer.write(b'`gn` failed. Is depot_tools in your PATH?\n')
     exit(1)
@@ -157,8 +168,17 @@
 assert INCLUDE_REGEX.match(b'#include "foo"')
 assert INCLUDE_REGEX.match(b'\n#include "foo"')
 
+# Most of these are ignored because this script does not currently handle
+# #includes in #ifdefs properly, so they will erroneously be marked as being
+# included, but not part of the source list.
 IGNORED_INCLUDES = {
+    b'compiler/translator/TranslatorESSL.h',
+    b'compiler/translator/TranslatorGLSL.h',
+    b'compiler/translator/TranslatorHLSL.h',
     b'compiler/translator/TranslatorVulkan.h',
+    b'libANGLE/renderer/d3d/DeviceD3D.h',
+    b'libANGLE/renderer/d3d/DisplayD3D.h',
+    b'libANGLE/renderer/d3d/RenderTargetD3D.h',
     b'libANGLE/renderer/d3d/d3d11/winrt/NativeWindow11WinRT.h',
     b'libANGLE/renderer/gl/glx/DisplayGLX.h',
     b'libANGLE/renderer/gl/cgl/DisplayCGL.h',
@@ -188,7 +208,21 @@
     b'X11',
 }
 
+IGNORED_DIRECTORIES = {
+    '//third_party/glslang',
+    '//third_party/spirv-tools',
+    '//third_party/SwiftShader',
+    '//third_party/vulkan-headers',
+    '//third_party/vulkan-loader',
+    '//third_party/vulkan-tools',
+    '//third_party/vulkan-validation-layers',
+}
+
 def has_all_includes(target_name: str, descs: dict) -> bool:
+    for ignored_directory in IGNORED_DIRECTORIES:
+        if target_name.startswith(ignored_directory):
+            return True
+
     flat = flattened_target(target_name, descs, stop_at_lib=False)
     acceptable_sources = flat.get('sources', []) + flat.get('outputs', [])
     acceptable_sources = {x.rsplit('/', 1)[-1].encode() for x in acceptable_sources}
@@ -262,7 +296,6 @@
     for dep_name in set(desc['deps']):
         dep = descs[dep_name]
         if dep['type'] in LIBRARY_TYPES:
-            assert dep_name.startswith('//:'), dep_name
             dep_libs.add(dep_name[3:])
     desc['deps'] = sortedi(dep_libs)
 
diff --git a/Source/ThirdParty/ANGLE/scripts/generate_entry_points.py b/Source/ThirdParty/ANGLE/scripts/generate_entry_points.py
index 2954d34..b6507cf 100755
--- a/Source/ThirdParty/ANGLE/scripts/generate_entry_points.py
+++ b/Source/ThirdParty/ANGLE/scripts/generate_entry_points.py
@@ -522,6 +522,8 @@
     {param_types}
 }};
 
+constexpr uint32_t kParamTypeCount = {param_type_count};
+
 union ParamValue
 {{
     {param_union_values}
@@ -532,7 +534,6 @@
 
 {get_param_val_specializations}
 
-
 template <ParamType PType, typename T>
 T GetParamVal(const ParamValue &value)
 {{
@@ -571,6 +572,14 @@
 
 void WriteParamTypeToStream(std::ostream &os, ParamType paramType, const ParamValue& paramValue);
 const char *ParamTypeToString(ParamType paramType);
+
+enum class ResourceIDType
+{{
+    {resource_id_types}
+}};
+
+ResourceIDType GetResourceIDTypeFromParamType(ParamType paramType);
+const char *GetResourceIDTypeName(ResourceIDType resourceIDType);
 }}  // namespace angle
 
 #endif  // LIBANGLE_FRAME_CAPTURE_UTILS_AUTOGEN_H_
@@ -613,6 +622,27 @@
             return "unknown";
     }}
 }}
+
+ResourceIDType GetResourceIDTypeFromParamType(ParamType paramType)
+{{
+    switch (paramType)
+    {{
+{param_type_resource_id_cases}
+        default:
+            return ResourceIDType::InvalidEnum;
+    }}
+}}
+
+const char *GetResourceIDTypeName(ResourceIDType resourceIDType)
+{{
+    switch (resourceIDType)
+    {{
+{resource_id_type_name_cases}
+        default:
+            UNREACHABLE();
+            return "GetResourceIDTypeName error";
+    }}
+}}
 }}  // namespace angle
 """
 
@@ -642,6 +672,12 @@
 template_param_type_to_string_case = """        case ParamType::T{enum}:
             return "{type}";"""
 
+template_param_type_to_resource_id_type_case = """        case ParamType::T{enum}:
+            return ResourceIDType::{resource_id_type};"""
+
+template_resource_id_type_name_case = """        case ResourceIDType::{resource_id_type}:
+            return "{resource_id_type}";"""
+
 
 def script_relative(path):
     return os.path.join(os.path.dirname(sys.argv[0]), path)
@@ -1314,6 +1350,17 @@
         enum=param_type, union_name=get_param_type_union_name(param_type))
 
 
+def get_resource_id_types(all_param_types):
+    return [t[:-2] for t in filter(lambda t: t.endswith("ID"), all_param_types)]
+
+
+def format_resource_id_types(all_param_types):
+    resource_id_types = get_resource_id_types(all_param_types)
+    resource_id_types += ["EnumCount", "InvalidEnum = EnumCount"]
+    resource_id_types = ",\n    ".join(resource_id_types)
+    return resource_id_types
+
+
 def write_capture_helper_header(all_param_types):
 
     param_types = "\n    ".join(["T%s," % t for t in all_param_types])
@@ -1325,17 +1372,20 @@
     set_param_val_specializations = "\n\n".join(
         [format_set_param_val_specialization(t) for t in all_param_types])
     init_param_value_cases = "\n".join([format_init_param_value_case(t) for t in all_param_types])
+    resource_id_types = format_resource_id_types(all_param_types)
 
     content = template_frame_capture_utils_header.format(
         script_name=os.path.basename(sys.argv[0]),
         data_source_name="gl.xml and gl_angle_ext.xml",
         year=date.today().year,
         param_types=param_types,
+        param_type_count=len(all_param_types),
         param_union_values=param_union_values,
         get_param_val_specializations=get_param_val_specializations,
         access_param_value_cases=access_param_value_cases,
         set_param_val_specializations=set_param_val_specializations,
-        init_param_value_cases=init_param_value_cases)
+        init_param_value_cases=init_param_value_cases,
+        resource_id_types=resource_id_types)
 
     path = path_to("libANGLE", "frame_capture_utils_autogen.h")
 
@@ -1349,6 +1399,30 @@
         enum=param_type, type=get_gl_param_type_type(param_type))
 
 
+def get_resource_id_type_from_param_type(param_type):
+    if param_type.endswith("ConstPointer"):
+        return param_type.replace("ConstPointer", "")[:-2]
+    if param_type.endswith("Pointer"):
+        return param_type.replace("Pointer", "")[:-2]
+    return param_type[:-2]
+
+
+def format_param_type_to_resource_id_type_case(param_type):
+    return template_param_type_to_resource_id_type_case.format(
+        enum=param_type, resource_id_type=get_resource_id_type_from_param_type(param_type))
+
+
+def format_param_type_resource_id_cases(all_param_types):
+    id_types = filter(
+        lambda t: t.endswith("ID") or t.endswith("IDConstPointer") or t.endswith("IDPointer"),
+        all_param_types)
+    return "\n".join([format_param_type_to_resource_id_type_case(t) for t in id_types])
+
+
+def format_resource_id_type_name_case(resource_id_type):
+    return template_resource_id_type_name_case.format(resource_id_type=resource_id_type)
+
+
 def write_capture_helper_source(all_param_types):
 
     write_param_type_to_stream_cases = "\n".join(
@@ -1356,12 +1430,20 @@
     param_type_to_string_cases = "\n".join(
         [format_param_type_to_string_case(t) for t in all_param_types])
 
+    param_type_resource_id_cases = format_param_type_resource_id_cases(all_param_types)
+
+    resource_id_types = get_resource_id_types(all_param_types)
+    resource_id_type_name_cases = "\n".join(
+        [format_resource_id_type_name_case(t) for t in resource_id_types])
+
     content = template_frame_capture_utils_source.format(
         script_name=os.path.basename(sys.argv[0]),
         data_source_name="gl.xml and gl_angle_ext.xml",
         year=date.today().year,
         write_param_type_to_stream_cases=write_param_type_to_stream_cases,
-        param_type_to_string_cases=param_type_to_string_cases)
+        param_type_to_string_cases=param_type_to_string_cases,
+        param_type_resource_id_cases=param_type_resource_id_cases,
+        resource_id_type_name_cases=resource_id_type_name_cases)
 
     path = path_to("libANGLE", "frame_capture_utils_autogen.cpp")
 
diff --git a/Source/ThirdParty/ANGLE/scripts/generate_vulkan_layers_json.py b/Source/ThirdParty/ANGLE/scripts/generate_vulkan_layers_json.py
index 561ac5a..513f694 100755
--- a/Source/ThirdParty/ANGLE/scripts/generate_vulkan_layers_json.py
+++ b/Source/ThirdParty/ANGLE/scripts/generate_vulkan_layers_json.py
@@ -28,6 +28,7 @@
     parser.add_argument('target_dir')
     parser.add_argument('version_header', help='path to vulkan_core.h')
     parser.add_argument('json_files', nargs='*')
+    parser.add_argument('--replacement', help='replacement for the library', default=None)
     args = parser.parse_args()
 
     source_dir = args.source_dir
@@ -46,7 +47,8 @@
         os.makedirs(target_dir)
 
     # Copy the *.json files from source dir to target dir
-    if (set(glob_slash(os.path.join(source_dir, '*.json'))) != set(json_files)):
+    if (set(glob_slash(os.path.join(source_dir, '*.json'))) !=
+            set(json_files)) and data_key != 'ICD':
         print(glob.glob(os.path.join(source_dir, '*.json')))
         print('.json list in gn file is out-of-date', file=sys.stderr)
         return 1
@@ -64,7 +66,10 @@
         # The standard validation layer has no library path.
         if 'library_path' in data[data_key]:
             prev_name = os.path.basename(data[data_key]['library_path'])
-            data[data_key]['library_path'] = prev_name
+            if args.replacement:
+                data[data_key]['library_path'] = args.replacement
+            else:
+                data[data_key]['library_path'] = prev_name
 
         target_fname = os.path.join(target_dir, os.path.basename(json_fname))
         with open(target_fname, 'wb') as outfile:
@@ -73,14 +78,15 @@
     # Get the Vulkan version from the vulkan_core.h file
     vk_header_filename = args.version_header
     vk_version = None
-    with open(vk_header_filename) as vk_header_file:
-        for line in vk_header_file:
-            if line.startswith('#define VK_HEADER_VERSION'):
-                vk_version = line.split()[-1]
-                break
-    if not vk_version:
-        print('failed to extract vk_version', file=sys.stderr)
-        return 1
+    if data_key != 'ICD':
+        with open(vk_header_filename) as vk_header_file:
+            for line in vk_header_file:
+                if line.startswith('#define VK_HEADER_VERSION'):
+                    vk_version = line.split()[-1]
+                    break
+        if not vk_version:
+            print('failed to extract vk_version', file=sys.stderr)
+            return 1
 
     # Set json file prefix and suffix for generating files, default to Linux.
     relative_path_prefix = '../lib'
diff --git a/Source/ThirdParty/ANGLE/scripts/registry_xml.py b/Source/ThirdParty/ANGLE/scripts/registry_xml.py
index 1ac2858..b81930f 100644
--- a/Source/ThirdParty/ANGLE/scripts/registry_xml.py
+++ b/Source/ThirdParty/ANGLE/scripts/registry_xml.py
@@ -113,6 +113,7 @@
     "EGL_KHR_debug",
     "EGL_KHR_fence_sync",
     "EGL_KHR_image",
+    "EGL_KHR_no_config_context",
     "EGL_KHR_stream",
     "EGL_KHR_stream_consumer_gltexture",
     "EGL_KHR_swap_buffers_with_damage",
diff --git a/Source/ThirdParty/ANGLE/src/common/PackedEnums.cpp b/Source/ThirdParty/ANGLE/src/common/PackedEnums.cpp
index cbb18e7..d4bd028 100644
--- a/Source/ThirdParty/ANGLE/src/common/PackedEnums.cpp
+++ b/Source/ThirdParty/ANGLE/src/common/PackedEnums.cpp
@@ -269,6 +269,9 @@
         case VertexAttribType::Int2101010:
             os << "GL_INT_10_10_10_2";
             break;
+        case VertexAttribType::Int1010102:
+            os << "GL_INT_10_10_10_2_OES";
+            break;
         case VertexAttribType::Short:
             os << "GL_SHORT";
             break;
@@ -281,6 +284,9 @@
         case VertexAttribType::UnsignedInt2101010:
             os << "GL_UNSIGNED_INT_10_10_10_2";
             break;
+        case VertexAttribType::UnsignedInt1010102:
+            os << "GL_UNSIGNED_INT_10_10_10_2_OES";
+            break;
         case VertexAttribType::UnsignedShort:
             os << "GL_UNSIGNED_SHORT";
             break;
diff --git a/Source/ThirdParty/ANGLE/src/common/PackedEnums.h b/Source/ThirdParty/ANGLE/src/common/PackedEnums.h
index afe0c91..5460c3a 100644
--- a/Source/ThirdParty/ANGLE/src/common/PackedEnums.h
+++ b/Source/ThirdParty/ANGLE/src/common/PackedEnums.h
@@ -107,7 +107,7 @@
 
     // No explicit construct/copy/destroy for aggregate type
     void fill(const T &u) { mPrivateData.fill(u); }
-    void swap(PackedEnumMap<E, T> &a) noexcept { mPrivateData.swap(a.mPrivateData); }
+    void swap(PackedEnumMap<E, T, MaxSize> &a) noexcept { mPrivateData.swap(a.mPrivateData); }
 
     // iterators:
     iterator begin() noexcept { return mPrivateData.begin(); }
@@ -333,9 +333,12 @@
     Fixed              = 12,  // GLenum == 0x140C
     MaxBasicType       = 12,
     UnsignedInt2101010 = 13,  // GLenum == 0x8368
-    Int2101010         = 14,  // GLenum == 0x8D9F
-    InvalidEnum        = 15,
-    EnumCount          = 15,
+    HalfFloatOES       = 14,  // GLenum == 0x8D61
+    Int2101010         = 15,  // GLenum == 0x8D9F
+    UnsignedInt1010102 = 16,  // GLenum == 0x8DF6
+    Int1010102         = 17,  // GLenum == 0x8DF7
+    InvalidEnum        = 18,
+    EnumCount          = 18,
 };
 
 template <>
@@ -346,8 +349,14 @@
         return static_cast<VertexAttribType>(packed);
     if (from == GL_UNSIGNED_INT_2_10_10_10_REV)
         return VertexAttribType::UnsignedInt2101010;
+    if (from == GL_HALF_FLOAT_OES)
+        return VertexAttribType::HalfFloatOES;
     if (from == GL_INT_2_10_10_10_REV)
         return VertexAttribType::Int2101010;
+    if (from == GL_UNSIGNED_INT_10_10_10_2_OES)
+        return VertexAttribType::UnsignedInt1010102;
+    if (from == GL_INT_10_10_10_2_OES)
+        return VertexAttribType::Int1010102;
     return VertexAttribType::InvalidEnum;
 }
 
@@ -356,8 +365,14 @@
     // This could be optimized using a constexpr table.
     if (from == VertexAttribType::Int2101010)
         return GL_INT_2_10_10_10_REV;
+    if (from == VertexAttribType::HalfFloatOES)
+        return GL_HALF_FLOAT_OES;
     if (from == VertexAttribType::UnsignedInt2101010)
         return GL_UNSIGNED_INT_2_10_10_10_REV;
+    if (from == VertexAttribType::UnsignedInt1010102)
+        return GL_UNSIGNED_INT_10_10_10_2_OES;
+    if (from == VertexAttribType::Int1010102)
+        return GL_INT_10_10_10_2_OES;
     return static_cast<GLenum>(from) + GL_BYTE;
 }
 
@@ -371,87 +386,116 @@
 ANGLE_VALIDATE_PACKED_ENUM(VertexAttribType, HalfFloat, GL_HALF_FLOAT);
 ANGLE_VALIDATE_PACKED_ENUM(VertexAttribType, Fixed, GL_FIXED);
 ANGLE_VALIDATE_PACKED_ENUM(VertexAttribType, Int2101010, GL_INT_2_10_10_10_REV);
+ANGLE_VALIDATE_PACKED_ENUM(VertexAttribType, HalfFloatOES, GL_HALF_FLOAT_OES);
 ANGLE_VALIDATE_PACKED_ENUM(VertexAttribType, UnsignedInt2101010, GL_UNSIGNED_INT_2_10_10_10_REV);
+ANGLE_VALIDATE_PACKED_ENUM(VertexAttribType, Int1010102, GL_INT_10_10_10_2_OES);
+ANGLE_VALIDATE_PACKED_ENUM(VertexAttribType, UnsignedInt1010102, GL_UNSIGNED_INT_10_10_10_2_OES);
 
 std::ostream &operator<<(std::ostream &os, VertexAttribType value);
 
 // Typesafe object handles.
-struct BufferID
-{
-    GLuint value;
-};
 
-struct FenceNVID
-{
-    GLuint value;
-};
+template <typename T>
+struct ResourceTypeToID;
 
-struct FramebufferID
-{
-    GLuint value;
-};
+template <typename T>
+struct IsResourceIDType;
 
-struct MemoryObjectID
-{
-    GLuint value;
-};
+// Clang Format doesn't like the following X macro.
+// clang-format off
+#define ANGLE_ID_TYPES_OP(X) \
+    X(Buffer)                \
+    X(FenceNV)               \
+    X(Framebuffer)           \
+    X(MemoryObject)          \
+    X(Path)                  \
+    X(ProgramPipeline)       \
+    X(Query)                 \
+    X(Renderbuffer)          \
+    X(Sampler)               \
+    X(Semaphore)             \
+    X(Texture)               \
+    X(TransformFeedback)     \
+    X(VertexArray)
+// clang-format on
 
-struct PathID
-{
-    GLuint value;
-};
+#define ANGLE_DEFINE_ID_TYPE(Type)          \
+    class Type;                             \
+    struct Type##ID                         \
+    {                                       \
+        GLuint value;                       \
+    };                                      \
+    template <>                             \
+    struct ResourceTypeToID<Type>           \
+    {                                       \
+        using IDType = Type##ID;            \
+    };                                      \
+    template <>                             \
+    struct IsResourceIDType<Type##ID>       \
+    {                                       \
+        static constexpr bool value = true; \
+    };
 
-struct ProgramPipelineID
-{
-    GLuint value;
-};
+ANGLE_ID_TYPES_OP(ANGLE_DEFINE_ID_TYPE)
 
-struct QueryID
-{
-    GLuint value;
-};
+#undef ANGLE_DEFINE_ID_TYPE
+#undef ANGLE_ID_TYPES_OP
 
-struct RenderbufferID
-{
-    GLuint value;
-};
-
-struct SamplerID
-{
-    GLuint value;
-};
-
-struct SemaphoreID
-{
-    GLuint value;
-};
-
+// Shaders and programs are a bit special as they share IDs.
 struct ShaderProgramID
 {
     GLuint value;
 };
 
-struct TextureID
+template <>
+struct IsResourceIDType<ShaderProgramID>
 {
-    GLuint value;
+    constexpr static bool value = true;
 };
 
-struct TransformFeedbackID
+class Shader;
+template <>
+struct ResourceTypeToID<Shader>
 {
-    GLuint value;
+    using IDType = ShaderProgramID;
 };
 
-struct VertexArrayID
+class Program;
+template <>
+struct ResourceTypeToID<Program>
 {
-    GLuint value;
+    using IDType = ShaderProgramID;
 };
 
-// Util funcs for resourceIDs
-inline bool operator==(const FramebufferID &lhs, const FramebufferID &rhs)
+template <typename T>
+struct ResourceTypeToID
+{
+    using IDType = void;
+};
+
+template <typename T>
+struct IsResourceIDType
+{
+    static constexpr bool value = false;
+};
+
+template <typename T>
+bool ValueEquals(T lhs, T rhs)
 {
     return lhs.value == rhs.value;
 }
-inline bool operator!=(const FramebufferID &lhs, const FramebufferID &rhs)
+
+// Util funcs for resourceIDs
+template <typename T>
+typename std::enable_if<IsResourceIDType<T>::value, bool>::type operator==(const T &lhs,
+                                                                           const T &rhs)
+{
+    return lhs.value == rhs.value;
+}
+
+template <typename T>
+typename std::enable_if<IsResourceIDType<T>::value, bool>::type operator!=(const T &lhs,
+                                                                           const T &rhs)
 {
     return lhs.value != rhs.value;
 }
diff --git a/Source/ThirdParty/ANGLE/src/common/android_util.cpp b/Source/ThirdParty/ANGLE/src/common/android_util.cpp
index 38e0d4fb..1be12e5 100644
--- a/Source/ThirdParty/ANGLE/src/common/android_util.cpp
+++ b/Source/ThirdParty/ANGLE/src/common/android_util.cpp
@@ -7,6 +7,7 @@
 // android_util.cpp: Utilities for the using the Android platform
 
 #include "common/android_util.h"
+#include "common/debug.h"
 
 #include <cstdint>
 
@@ -159,6 +160,14 @@
      *   OpenGL ES: GL_STENCIL_INDEX8
      */
     AHARDWAREBUFFER_FORMAT_S8_UINT                  = 0x35,
+
+    /**
+     * YUV 420 888 format.
+     * Must have an even width and height. Can be accessed in OpenGL
+     * shaders through an external sampler. Does not support mip-maps
+     * cube-maps or multi-layered textures.
+     */
+    AHARDWAREBUFFER_FORMAT_Y8Cb8Cr8_420             = 0x23,
 };
 // clang-format on
 
@@ -247,8 +256,13 @@
             return GL_DEPTH32F_STENCIL8;
         case AHARDWAREBUFFER_FORMAT_S8_UINT:
             return GL_STENCIL_INDEX8;
+        case AHARDWAREBUFFER_FORMAT_Y8Cb8Cr8_420:
+            return GL_RGB8;
         default:
-            return GL_NONE;
+            // Treat unknown formats as RGB. They are vendor-specific YUV formats that would sample
+            // as RGB.
+            WARN() << "Unknown pixelFormat: " << pixelFormat << ". Treating as RGB8";
+            return GL_RGB8;
     }
 }
 
diff --git a/Source/ThirdParty/ANGLE/src/common/angleutils.h b/Source/ThirdParty/ANGLE/src/common/angleutils.h
index 3c93d1b..3a1391e 100644
--- a/Source/ThirdParty/ANGLE/src/common/angleutils.h
+++ b/Source/ThirdParty/ANGLE/src/common/angleutils.h
@@ -253,6 +253,18 @@
 // EXT_texture_type_2_10_10_10_REV
 #define GL_RGB10_UNORM_ANGLEX 0x6AEE
 
+// These are dummy formats for OES_vertex_type_10_10_10_2
+#define GL_A2_RGB10_UNORM_ANGLEX 0x6AEF
+#define GL_A2_RGB10_SNORM_ANGLEX 0x6AF0
+#define GL_A2_RGB10_USCALED_ANGLEX 0x6AF1
+#define GL_A2_RGB10_SSCALED_ANGLEX 0x6AF2
+#define GL_X2_RGB10_UINT_ANGLEX 0x6AF3
+#define GL_X2_RGB10_SINT_ANGLEX 0x6AF4
+#define GL_X2_RGB10_USCALED_ANGLEX 0x6AF5
+#define GL_X2_RGB10_SSCALED_ANGLEX 0x6AF6
+#define GL_X2_RGB10_UNORM_ANGLEX 0x6AF7
+#define GL_X2_RGB10_SNORM_ANGLEX 0x6AF8
+
 #define ANGLE_CHECK_GL_ALLOC(context, result) \
     ANGLE_CHECK(context, result, "Failed to allocate host memory", GL_OUT_OF_MEMORY)
 
diff --git a/Source/ThirdParty/ANGLE/src/common/debug.h b/Source/ThirdParty/ANGLE/src/common/debug.h
index ed669d3..bd4e927 100644
--- a/Source/ThirdParty/ANGLE/src/common/debug.h
+++ b/Source/ThirdParty/ANGLE/src/common/debug.h
@@ -253,6 +253,11 @@
 #    define EVENT(message, ...) (void(0))
 #endif
 
+// The state tracked by ANGLE will be validated with the driver state before each call
+#if defined(ANGLE_ENABLE_ASSERTS)
+#    define ANGLE_STATE_VALIDATION_ENABLED
+#endif
+
 #if defined(__GNUC__)
 #    define ANGLE_CRASH() __builtin_trap()
 #else
diff --git a/Source/ThirdParty/ANGLE/src/common/platform.h b/Source/ThirdParty/ANGLE/src/common/platform.h
index 7ba97d1..9603be4 100644
--- a/Source/ThirdParty/ANGLE/src/common/platform.h
+++ b/Source/ThirdParty/ANGLE/src/common/platform.h
@@ -46,7 +46,7 @@
 #    include <windows.h>
 
 #    if defined(WINAPI_FAMILY) && (WINAPI_FAMILY != WINAPI_FAMILY_DESKTOP_APP)
-#        define ANGLE_ENABLE_WINDOWS_STORE 1
+#        define ANGLE_ENABLE_WINDOWS_UWP 1
 #    endif
 
 #    if defined(ANGLE_ENABLE_D3D9)
@@ -59,16 +59,19 @@
 #        include <d3d10_1.h>
 #        include <d3d11.h>
 #        include <d3d11_3.h>
+#        include <d3d11on12.h>
+#        include <d3d12.h>
 #        include <d3dcompiler.h>
 #        include <dxgi.h>
 #        include <dxgi1_2.h>
+#        include <dxgi1_4.h>
 #    endif
 
 #    if defined(ANGLE_ENABLE_D3D9) || defined(ANGLE_ENABLE_D3D11)
 #        include <wrl.h>
 #    endif
 
-#    if defined(ANGLE_ENABLE_WINDOWS_STORE)
+#    if defined(ANGLE_ENABLE_WINDOWS_UWP)
 #        include <dxgi1_3.h>
 #        if defined(_DEBUG)
 #            include <DXProgrammableCapture.h>
diff --git a/Source/ThirdParty/ANGLE/src/common/system_utils_winuwp.cpp b/Source/ThirdParty/ANGLE/src/common/system_utils_winuwp.cpp
new file mode 100644
index 0000000..72d5509
--- /dev/null
+++ b/Source/ThirdParty/ANGLE/src/common/system_utils_winuwp.cpp
@@ -0,0 +1,120 @@
+//
+// 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_winuwp.cpp: Implementation of OS-specific functions for Windows UWP
+
+#include "system_utils.h"
+
+#include <stdarg.h>
+#include <windows.h>
+#include <array>
+#include <codecvt>
+#include <locale>
+#include <string>
+#include <vector>
+
+#include "common/debug.h"
+
+namespace angle
+{
+
+bool SetEnvironmentVar(const char *variableName, const char *value)
+{
+    // Not supported for UWP
+    return false;
+}
+
+std::string GetEnvironmentVar(const char *variableName)
+{
+    // Not supported for UWP
+    return "";
+}
+
+const char *GetSharedLibraryExtension()
+{
+    return "dll";
+}
+
+const char *GetPathSeparator()
+{
+    return ";";
+}
+
+double GetCurrentTime()
+{
+    LARGE_INTEGER frequency = {};
+    QueryPerformanceFrequency(&frequency);
+
+    LARGE_INTEGER curTime;
+    QueryPerformanceCounter(&curTime);
+
+    return static_cast<double>(curTime.QuadPart) / frequency.QuadPart;
+}
+
+class UwpLibrary : public Library
+{
+  public:
+    UwpLibrary(const char *libraryName, SearchType searchType)
+    {
+        char buffer[MAX_PATH];
+        int ret = snprintf(buffer, MAX_PATH, "%s.%s", libraryName, GetSharedLibraryExtension());
+
+        std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>> converter;
+        std::wstring wideBuffer = converter.from_bytes(buffer);
+
+        if (ret > 0 && ret < MAX_PATH)
+        {
+            switch (searchType)
+            {
+                case SearchType::ApplicationDir:
+                    mModule = LoadPackagedLibrary(wideBuffer.c_str(), 0);
+                    break;
+                case SearchType::SystemDir:
+                    // Not supported in UWP
+                    break;
+            }
+        }
+    }
+
+    ~UwpLibrary() override
+    {
+        if (mModule)
+        {
+            FreeLibrary(mModule);
+        }
+    }
+
+    void *getSymbol(const char *symbolName) override
+    {
+        if (!mModule)
+        {
+            return nullptr;
+        }
+
+        return reinterpret_cast<void *>(GetProcAddress(mModule, symbolName));
+    }
+
+    void *getNative() const override { return reinterpret_cast<void *>(mModule); }
+
+  private:
+    HMODULE mModule = nullptr;
+};
+
+Library *OpenSharedLibrary(const char *libraryName, SearchType searchType)
+{
+    return new UwpLibrary(libraryName, searchType);
+}
+
+bool IsDebuggerAttached()
+{
+    return !!::IsDebuggerPresent();
+}
+
+void BreakDebugger()
+{
+    __debugbreak();
+}
+}  // namespace angle
diff --git a/Source/ThirdParty/ANGLE/src/common/tls.cpp b/Source/ThirdParty/ANGLE/src/common/tls.cpp
index 68c6ecf..9559afe 100644
--- a/Source/ThirdParty/ANGLE/src/common/tls.cpp
+++ b/Source/ThirdParty/ANGLE/src/common/tls.cpp
@@ -10,7 +10,7 @@
 
 #include <assert.h>
 
-#ifdef ANGLE_ENABLE_WINDOWS_STORE
+#ifdef ANGLE_ENABLE_WINDOWS_UWP
 #    include <map>
 #    include <mutex>
 #    include <set>
@@ -39,7 +39,7 @@
     TLSIndex index;
 
 #ifdef ANGLE_PLATFORM_WINDOWS
-#    ifdef ANGLE_ENABLE_WINDOWS_STORE
+#    ifdef ANGLE_ENABLE_WINDOWS_UWP
     if (!freeTlsIndices.empty())
     {
         DWORD result = freeTlsIndices.back();
@@ -76,7 +76,7 @@
     }
 
 #ifdef ANGLE_PLATFORM_WINDOWS
-#    ifdef ANGLE_ENABLE_WINDOWS_STORE
+#    ifdef ANGLE_ENABLE_WINDOWS_UWP
     assert(index < nextTlsIndex);
     assert(find(freeTlsIndices.begin(), freeTlsIndices.end(), index) == freeTlsIndices.end());
 
@@ -106,7 +106,7 @@
     }
 
 #ifdef ANGLE_PLATFORM_WINDOWS
-#    ifdef ANGLE_ENABLE_WINDOWS_STORE
+#    ifdef ANGLE_ENABLE_WINDOWS_UWP
     ThreadLocalData *threadData = currentThreadData;
     if (!threadData)
     {
@@ -138,7 +138,7 @@
     }
 
 #ifdef ANGLE_PLATFORM_WINDOWS
-#    ifdef ANGLE_ENABLE_WINDOWS_STORE
+#    ifdef ANGLE_ENABLE_WINDOWS_UWP
     ThreadLocalData *threadData = currentThreadData;
     if (threadData && threadData->size() > index)
     {
diff --git a/Source/ThirdParty/ANGLE/src/common/tls.h b/Source/ThirdParty/ANGLE/src/common/tls.h
index 641d66f..fbbe19914 100644
--- a/Source/ThirdParty/ANGLE/src/common/tls.h
+++ b/Source/ThirdParty/ANGLE/src/common/tls.h
@@ -14,7 +14,7 @@
 #ifdef ANGLE_PLATFORM_WINDOWS
 
 // TLS does not exist for Windows Store and needs to be emulated
-#    ifdef ANGLE_ENABLE_WINDOWS_STORE
+#    ifdef ANGLE_ENABLE_WINDOWS_UWP
 #        ifndef TLS_OUT_OF_INDEXES
 #            define TLS_OUT_OF_INDEXES static_cast<DWORD>(0xFFFFFFFF)
 #        endif
diff --git a/Source/ThirdParty/ANGLE/src/common/utilities.cpp b/Source/ThirdParty/ANGLE/src/common/utilities.cpp
index e463694..38ddd43 100644
--- a/Source/ThirdParty/ANGLE/src/common/utilities.cpp
+++ b/Source/ThirdParty/ANGLE/src/common/utilities.cpp
@@ -16,7 +16,7 @@
 
 #include <set>
 
-#if defined(ANGLE_ENABLE_WINDOWS_STORE)
+#if defined(ANGLE_ENABLE_WINDOWS_UWP)
 #    include <windows.applicationmodel.core.h>
 #    include <windows.graphics.display.h>
 #    include <wrl.h>
@@ -790,8 +790,11 @@
 std::string StripLastArrayIndex(const std::string &name)
 {
     size_t strippedNameLength = name.find_last_of('[');
-    ASSERT(strippedNameLength != std::string::npos && name.back() == ']');
-    return name.substr(0, strippedNameLength);
+    if (strippedNameLength != std::string::npos && name.back() == ']')
+    {
+        return name.substr(0, strippedNameLength);
+    }
+    return name;
 }
 
 const sh::ShaderVariable *FindShaderVarField(const sh::ShaderVariable &var,
@@ -1081,7 +1084,7 @@
 
 }  // namespace gl_egl
 
-#if !defined(ANGLE_ENABLE_WINDOWS_STORE)
+#if !defined(ANGLE_ENABLE_WINDOWS_UWP)
 std::string getTempPath()
 {
 #    ifdef ANGLE_PLATFORM_WINDOWS
@@ -1119,7 +1122,7 @@
     fwrite(content, sizeof(char), size, file);
     fclose(file);
 }
-#endif  // !ANGLE_ENABLE_WINDOWS_STORE
+#endif  // !ANGLE_ENABLE_WINDOWS_UWP
 
 #if defined(ANGLE_PLATFORM_WINDOWS)
 
diff --git a/Source/ThirdParty/ANGLE/src/common/utilities.h b/Source/ThirdParty/ANGLE/src/common/utilities.h
index a413a7e..e8df8fe 100644
--- a/Source/ThirdParty/ANGLE/src/common/utilities.h
+++ b/Source/ThirdParty/ANGLE/src/common/utilities.h
@@ -245,7 +245,7 @@
 EGLClientBuffer GLObjectHandleToEGLClientBuffer(GLuint handle);
 }  // namespace gl_egl
 
-#if !defined(ANGLE_ENABLE_WINDOWS_STORE)
+#if !defined(ANGLE_ENABLE_WINDOWS_UWP)
 std::string getTempPath();
 void writeFile(const char *path, const void *data, size_t size);
 #endif
diff --git a/Source/ThirdParty/ANGLE/src/compiler.gni b/Source/ThirdParty/ANGLE/src/compiler.gni
index fb7aac8..408c14b 100644
--- a/Source/ThirdParty/ANGLE/src/compiler.gni
+++ b/Source/ThirdParty/ANGLE/src/compiler.gni
@@ -2,6 +2,13 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
+angle_translator_exported_headers = [
+  "include/GLSLANG/ShaderLang.h",
+  "include/GLSLANG/ShaderVars.h",
+  "src/compiler/translator/blocklayout.h",
+  "src/compiler/translator/blocklayoutHLSL.h",
+]
+
 angle_translator_sources = [
   "include/EGL/egl.h",
   "include/EGL/eglext.h",
@@ -13,8 +20,6 @@
   "include/GLES3/gl3platform.h",
   "include/GLES3/gl31.h",
   "include/GLES3/gl32.h",
-  "include/GLSLANG/ShaderLang.h",
-  "include/GLSLANG/ShaderVars.h",
   "include/KHR/khrplatform.h",
   "include/angle_gl.h",
   "src/compiler/translator/BaseTypes.h",
@@ -102,7 +107,6 @@
   "src/compiler/translator/VariablePacker.cpp",
   "src/compiler/translator/VariablePacker.h",
   "src/compiler/translator/blocklayout.cpp",
-  "src/compiler/translator/blocklayout.h",
   "src/compiler/translator/glslang.h",
   "src/compiler/translator/glslang_lex.cpp",
   "src/compiler/translator/glslang_tab.cpp",
@@ -247,7 +251,6 @@
   "src/compiler/translator/AtomicCounterFunctionHLSL.cpp",
   "src/compiler/translator/AtomicCounterFunctionHLSL.h",
   "src/compiler/translator/blocklayoutHLSL.cpp",
-  "src/compiler/translator/blocklayoutHLSL.h",
   "src/compiler/translator/BuiltInFunctionEmulatorHLSL.cpp",
   "src/compiler/translator/BuiltInFunctionEmulatorHLSL.h",
   "src/compiler/translator/OutputHLSL.cpp",
diff --git a/Source/ThirdParty/ANGLE/src/compiler/translator/Compiler.cpp b/Source/ThirdParty/ANGLE/src/compiler/translator/Compiler.cpp
index 6185b37..aa25306 100644
--- a/Source/ThirdParty/ANGLE/src/compiler/translator/Compiler.cpp
+++ b/Source/ThirdParty/ANGLE/src/compiler/translator/Compiler.cpp
@@ -384,7 +384,7 @@
 
     TParseContext parseContext(mSymbolTable, mExtensionBehavior, mShaderType, mShaderSpec,
                                compileOptions, !IsDesktopGLSpec(mShaderSpec), &mDiagnostics,
-                               getResources());
+                               getResources(), getOutputType());
 
     parseContext.setFragmentPrecisionHighOnESSL1(mResources.FragmentPrecisionHigh == 1);
 
diff --git a/Source/ThirdParty/ANGLE/src/compiler/translator/ImmutableString_ESSL_autogen.cpp b/Source/ThirdParty/ANGLE/src/compiler/translator/ImmutableString_ESSL_autogen.cpp
index 17826cd..89500da 100644
--- a/Source/ThirdParty/ANGLE/src/compiler/translator/ImmutableString_ESSL_autogen.cpp
+++ b/Source/ThirdParty/ANGLE/src/compiler/translator/ImmutableString_ESSL_autogen.cpp
@@ -33,121 +33,121 @@
                               748,  1589, 354,  1029, 1042, 1181, 295,  513, 1068, 1237,
                               1019, 748,  1321, 485,  1211, 1623, 1586};
 constexpr int mangledkG[]  = {
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    1628,
-    0,    0,    0,    0,    0,    0,    0,    0,    943,  0,    0,    0,    0,    0,    0,    1793,
-    0,    0,    0,    0,    1601, 733,  0,    0,    0,    740,  0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    1160, 0,    0,    1093, 955,  0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    273,  0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    1602, 0,    166,  0,    1389, 125,  0,    0,    0,    0,    0,
+    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    1629,
+    0,    0,    0,    0,    0,    0,    0,    0,    943,  0,    0,    0,    0,    0,    0,    1794,
+    0,    0,    0,    0,    1602, 732,  0,    0,    0,    740,  0,    0,    0,    0,    0,    0,
+    0,    0,    0,    0,    0,    0,    1159, 0,    0,    1093, 957,  0,    0,    0,    0,    0,
+    0,    0,    0,    0,    0,    272,  0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+    0,    0,    0,    0,    0,    1600, 0,    164,  0,    1390, 125,  0,    0,    0,    0,    0,
     0,    0,    0,    21,   0,    637,  0,    0,    0,    0,    520,  0,    0,    0,    0,    0,
-    0,    0,    0,    0,    597,  0,    0,    0,    197,  0,    0,    310,  0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    843,  0,    0,    901,  0,    1809, 1225, 0,    0,    654,
-    678,  0,    0,    0,    54,   1565, 0,    0,    0,    0,    0,    0,    0,    0,    1836, 0,
-    402,  1585, 0,    0,    0,    0,    0,    0,    0,    1539, 117,  382,  685,  0,    0,    1635,
-    604,  0,    0,    0,    518,  421,  0,    0,    0,    0,    1104, 584,  1779, 1065, 756,  0,
-    0,    0,    0,    0,    0,    1259, 0,    432,  0,    0,    1354, 0,    249,  884,  69,   0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    50,   1728, 0,    466,  48,
-    0,    0,    72,   271,  1583, 0,    0,    165,  0,    0,    0,    371,  1560, 0,    0,    0,
-    0,    1456, 0,    304,  0,    0,    0,    0,    0,    0,    842,  0,    0,    444,  132,  791,
-    0,    0,    0,    0,    0,    0,    1516, 162,  265,  0,    0,    0,    0,    0,    0,    0,
-    0,    0,    683,  0,    758,  0,    0,    75,   1703, 0,    0,    0,    0,    688,  767,  0,
-    1715, 0,    605,  0,    0,    1528, 1319, 0,    0,    0,    0,    0,    0,    0,    0,    507,
-    1774, 0,    0,    0,    1534, 471,  0,    426,  84,   0,    0,    0,    0,    0,    64,   1485,
-    0,    0,    0,    412,  555,  0,    0,    0,    1227, 0,    0,    0,    0,    0,    0,    0,
-    912,  0,    978,  0,    1312, 0,    0,    0,    0,    435,  0,    0,    0,    0,    308,  562,
-    0,    0,    0,    1355, 1110, 0,    0,    1663, 135,  1533, 0,    0,    662,  0,    1338, 0,
-    0,    57,   355,  0,    1365, 0,    1077, 0,    0,    312,  0,    0,    533,  551,  749,  730,
-    0,    0,    377,  0,    0,    0,    1406, 738,  0,    0,    0,    114,  0,    770,  0,    0,
-    0,    556,  113,  0,    440,  0,    0,    0,    0,    0,    1053, 98,   1640, 0,    0,    1619,
-    117,  398,  0,    281,  1481, 0,    0,    0,    0,    0,    0,    0,    0,    478,  0,    0,
-    532,  0,    367,  1751, 1515, 0,    0,    0,    0,    1064, 0,    0,    0,    642,  0,    27,
-    0,    444,  1619, 0,    0,    0,    0,    0,    0,    516,  0,    0,    0,    0,    698,  1219,
-    0,    130,  1356, 0,    326,  0,    0,    0,    0,    0,    655,  1786, 1228, 49,   1594, 909,
-    441,  709,  1703, 460,  0,    875,  0,    0,    0,    309,  0,    1060, 0,    753,  0,    0,
-    0,    335,  0,    0,    1207, 244,  0,    131,  154,  683,  448,  385,  903,  0,    0,    0,
-    334,  0,    0,    803,  0,    0,    0,    3,    0,    1037, 349,  1264, 258,  0,    1491, 0,
-    1634, 1472, 0,    0,    0,    0,    402,  805,  0,    0,    0,    0,    921,  0,    0,    0,
-    801,  0,    876,  0,    0,    0,    1540, 0,    0,    0,    0,    3,    1694, 745,  1691, 515,
-    1647, 717,  0,    516,  0,    0,    712,  0,    0,    197,  0,    0,    0,    0,    0,    1632,
-    17,   1809, 74,   0,    0,    501,  0,    594,  0,    18,   601,  117,  280,  0,    1200, 1832,
-    0,    0,    262,  1157, 0,    164,  0,    0,    0,    618,  494,  0,    0,    41,   336,  896,
-    0,    736,  0,    0,    0,    1759, 0,    0,    0,    0,    1123, 144,  0,    0,    0,    810,
-    392,  752,  1273, 538,  0,    0,    587,  0,    1553, 0,    987,  827,  26,   44,   187,  8,
-    0,    113,  392,  1580, 866,  0,    927,  1535, 1780, 1760, 200,  0,    0,    1105, 989,  0,
-    474,  0,    873,  0,    0,    558,  0,    42,   0,    0,    882,  1600, 818,  817,  377,  0,
-    328,  0,    0,    0,    385,  1665, 0,    0,    0,    500,  0,    0,    1135, 414,  0,    0,
-    407,  0,    343,  454,  0,    255,  314,  1347, 1755, 0,    0,    0,    1762, 0,    619,  329,
-    1160, 0,    0,    0,    0,    0,    1757, 0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    831,  491,  0,    0,    1351, 598,  157,  0,    0,    0,    0,    0,    1194, 135,
-    606,  0,    0,    0,    0,    0,    245,  0,    726,  0,    0,    204,  0,    0,    0,    1776,
-    0,    0,    0,    0,    381,  161,  1832, 34,   39,   0,    0,    445,  0,    190,  0,    379,
-    1485, 1276, 1792, 0,    376,  650,  375,  6,    0,    1052, 0,    290,  0,    1674, 0,    0,
-    1481, 0,    60,   1087, 928,  0,    0,    0,    782,  563,  31,   728,  257,  0,    1608, 0,
-    0,    958,  1532, 1227, 0,    0,    0,    0,    0,    0,    0,    392,  0,    666,  0,    0,
-    319,  903,  507,  0,    0,    971,  903,  0,    13,   683,  1534, 0,    406,  0,    1254, 0,
-    0,    302,  722,  0,    0,    162,  950,  313,  356,  0,    475,  1470, 1736, 169,  0,    694,
-    111,  46,   58,   747,  1433, 0,    1765, 0,    646,  0,    503,  115,  715,  1497, 0,    1507,
-    349,  0,    678,  447,  205,  0,    0,    0,    0,    563,  0,    1577, 0,    192,  0,    0,
-    5,    0,    596,  0,    0,    0,    0,    0,    214,  0,    501,  1456, 28,   0,    0,    904,
-    0,    776,  0,    0,    1703, 910,  1732, 0,    856,  0,    0,    236,  1611, 503,  0,    0,
-    0,    339,  274,  0,    552,  0,    1462, 772,  282,  0,    0,    595,  0,    204,  487,  0,
-    1651, 0,    551,  0,    0,    702,  1610, 589,  0,    0,    175,  285,  351,  0,    113,  1091,
-    802,  0,    755,  0,    0,    1805, 294,  0,    0,    0,    0,    0,    0,    0,    0,    0,
-    237,  0,    0,    338,  0,    149,  1254, 0,    947,  302,  0,    0,    310,  0,    1750, 0,
-    0,    830,  1681, 322,  0,    73,   370,  100,  188,  1323, 0,    0,    0,    920,  0,    0,
-    1839, 1218, 0,    1494, 1364, 0,    0,    0,    791,  542,  1611, 1741, 838,  114,  1500, 0,
-    0,    0,    0,    506,  1299, 982,  885,  12,   1649, 753,  0,    261,  0,    51,   0,    640,
-    0,    0,    1347, 442,  532,  0,    731,  0,    0,    1033, 0,    42,   0,    0,    0,    0,
-    78,   1073, 169,  414,  1236, 0,    1392, 0,    0,    0,    852,  359,  1586, 935,  0,    0,
-    1072, 628,  0,    1546, 0,    0,    1471, 608,  557,  0,    0,    1277, 1681, 686,  309,  0,
-    0,    0,    0,    617,  244,  0,    0,    423,  629,  0,    866,  672,  0,    772,  0,    133,
-    1409, 0,    707,  203,  820,  103,  1529, 146,  0,    1042, 771,  58,   372,  102,  10,   105,
-    154,  28,   0,    0,    0,    683,  389,  207,  0,    0,    837,  1470, 416,  0,    373,  0,
-    0,    0,    0,    1764, 232,  252,  0,    837,  0,    0,    1762, 0,    1765, 0,    146,  0,
-    1133, 656,  592,  0,    259,  0,    735,  0,    1361, 0,    0,    410,  1211, 788,  440,  0,
-    0,    842,  1480, 291,  944,  559,  0,    1403, 931,  0,    1493, 1761, 0,    0,    386,  0,
-    0,    0,    0,    349,  0,    652,  572,  489,  611,  51,   0,    0,    35,   537,  1183, 188,
-    754,  227,  0,    489,  0,    1427, 0,    0,    696,  29,   0,    1364, 65,   438,  1086, 1378,
-    0,    1757, 76,   0,    400,  337,  0,    412,  0,    965,  136,  668,  1174, 0,    23,   0,
-    774,  433,  115,  459,  0,    811,  0,    0,    0,    1191, 950,  81,   0,    0,    710,  995,
-    0,    1515, 718,  549,  634,  616,  775,  0,    447,  0,    0,    38,   437,  624,  0,    0,
-    0,    706,  0,    0,    0,    1755, 640,  0,    134,  1461, 0,    676,  363,  105,  348,  162,
-    0,    0,    685,  0,    0,    379,  1381, 1189, 0,    595,  654,  465,  0,    0,    528,  817,
-    554,  0,    0,    0,    0,    398,  428,  903,  479,  980,  1287, 1631, 0,    626,  493,  19,
-    0,    0,    582,  0,    1688, 251,  652,  0,    173,  543,  0,    0,    0,    0,    0,    1040,
-    0,    0,    0,    0,    978,  359,  0,    0,    376,  1288, 519,  0,    1092, 1598, 875,  819,
-    88,   1614, 1157, 385,  0,    782,  1635, 996,  0,    1535, 132,  0,    0,    919,  0,    13,
-    523,  382,  0,    0,    0,    150,  0,    0,    1135, 99,   357,  0,    0,    600,  460,  193,
-    281,  0,    1518, 0,    1187, 1149, 237,  0,    881,  0,    0,    144,  784,  145,  371,  828,
-    1378, 6,    1705, 0,    0,    79,   0,    170,  0,    0,    36,   0,    0,    767,  703,  0,
-    0,    488,  86,   427,  393,  0,    57,   671,  739,  0,    875,  70,   553,  0,    557,  828,
-    0,    34,   319,  0,    860,  359,  0,    634,  1727, 370,  230,  1655, 0,    1746, 24,   741,
-    0,    673,  467,  0,    0,    450,  0,    699,  905,  0,    871,  75,   0,    0,    0,    0,
-    1203, 0,    795,  922,  851,  0,    0,    0,    1475, 1098, 0,    1231, 0,    0,    1597, 278,
-    0,    0,    104,  501,  1416, 0,    0,    679,  1375, 0,    424,  0,    0,    1210, 0,    304,
-    0,    112,  977,  1301, 139,  33,   0,    456,  0,    841,  283,  1117, 0,    1119, 1721, 897,
-    1726, 0,    945,  699,  0,    684,  825,  1706, 804,  799,  635,  679,  0,    0,    0,    0,
-    0,    0,    0,    1211, 269,  0,    1687, 1583, 0,    259,  0,    0,    938,  1211, 0,    0,
-    0,    1807, 1657, 116,  1822, 0,    0,    1633, 938,  928,  1268, 201,  782,  315,  0,    482,
-    128,  1021, 0,    449,  822,  484,  224,  1791, 0,    677,  0,    0,    1267, 0,    0,    0,
-    584,  0,    0,    509,  354,  43,   0,    1590, 222,  0,    30,   830,  0,    179,  0,    0,
-    0,    607,  0,    140,  0,    0,    0,    378,  84,   0,    322,  1545, 1241, 0,    1578, 828,
-    336,  154,  0,    19,   854,  309,  1145, 0,    0,    1819, 0,    602,  422,  0,    0,    1719,
-    818,  0,    0,    141,  0,    0,    1600, 153,  1650, 0,    780,  932,  0,    0,    1386, 295,
-    97,   153,  801,  1303, 81,   1198, 0,    81,   1143, 0,    646,  544,  750,  435,  444,  339,
-    0,    0,    39,   0,    0,    892,  794,  0,    177,  0,    850,  1745, 476,  0,    0,    691,
-    0,    1288, 1520, 1590, 0,    0,    0,    147,  846,  89,   0,    0,    622,  92,   763,  0,
-    0,    1668, 0,    1820, 714,  958,  0,    725,  432,  669,  657,  510,  0,    303,  279,  0,
-    1195, 0,    109,  973,  887,  1302, 0,    1748, 917,  811,  635,  1205, 0,    1358, 1555, 1730,
-    531,  583,  0,    443,  395,  0,    888,  0,    1634, 0,    120,  0,    530,  0,    0,    275,
-    796,  0,    357,  82,   886,  870,  332,  852,  0,    1336, 38,   441,  68,   1411, 228,  387,
-    0,    103,  0,    0,    1646, 431,  910,  0,    0,    0,    0,    0,    115,  674,  831,  815,
-    0,    1288, 888,  1697, 394,  0,    0,    0,    260,  570,  0,    790,  265,  163,  0,    0,
-    0,    442,  436,  722,  316,  688,  605,  1658, 885,  634,  0,    1398, 1340, 166,  1826, 1438,
-    215,  463,  0,    0,    445,  936,  129,  0,    774,  664,  48,   0,    22,   133,  0,    406,
-    70,   651,  46,   0,    175,  340,  400,  0,    0,    0,    1075, 1316, 420,  0,    1592, 1347,
-    0,    9,    0,    1387, 513,  1198, 1655, 0,    0,    0,    1063, 421,  701,  179,  0,    572,
-    1712, 0,    1506, 1728, 0,    744,  404,  1102, 0,    1421, 865,  1551, 0,    1717, 0,    0,
+    0,    0,    0,    0,    596,  0,    0,    0,    196,  0,    0,    311,  0,    0,    0,    0,
+    0,    0,    0,    0,    0,    0,    843,  0,    0,    901,  0,    1805, 1223, 0,    0,    652,
+    676,  0,    0,    0,    53,   1565, 0,    0,    0,    0,    0,    0,    0,    0,    1833, 0,
+    402,  1585, 0,    0,    0,    0,    0,    0,    0,    1540, 116,  380,  684,  0,    0,    1637,
+    603,  0,    0,    0,    518,  420,  0,    0,    0,    0,    1104, 583,  1779, 1064, 756,  0,
+    0,    0,    0,    0,    0,    1259, 0,    430,  0,    0,    1355, 0,    247,  887,  69,   0,
+    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    49,   1726, 0,    804,  48,
+    0,    0,    76,   270,  1581, 0,    0,    165,  0,    0,    0,    369,  1557, 0,    0,    0,
+    0,    1455, 0,    305,  0,    0,    0,    0,    0,    0,    842,  0,    0,    443,  131,  791,
+    0,    0,    0,    0,    0,    0,    1514, 161,  267,  0,    0,    0,    0,    0,    0,    0,
+    0,    0,    686,  0,    758,  0,    0,    77,   1703, 0,    0,    0,    0,    688,  766,  0,
+    1717, 0,    605,  0,    0,    1527, 1321, 0,    0,    0,    0,    0,    0,    0,    0,    505,
+    1772, 0,    0,    0,    1534, 472,  0,    426,  84,   0,    0,    0,    0,    0,    66,   1486,
+    0,    0,    0,    413,  555,  0,    0,    0,    1228, 0,    0,    0,    0,    0,    0,    0,
+    912,  0,    975,  0,    1312, 0,    0,    0,    0,    431,  0,    0,    0,    0,    308,  568,
+    0,    0,    0,    1351, 1110, 0,    0,    1664, 135,  224,  0,    0,    662,  0,    1337, 0,
+    0,    57,   354,  0,    1370, 0,    1076, 0,    0,    313,  0,    0,    532,  551,  751,  735,
+    0,    0,    375,  0,    0,    0,    1406, 738,  0,    0,    0,    114,  0,    770,  0,    0,
+    0,    556,  109,  0,    442,  0,    0,    0,    0,    0,    1051, 99,   1640, 0,    0,    1622,
+    117,  397,  0,    281,  1479, 0,    0,    0,    0,    0,    0,    0,    0,    476,  0,    0,
+    532,  0,    365,  1745, 1515, 0,    0,    0,    0,    1066, 0,    0,    0,    642,  0,    32,
+    0,    443,  1620, 0,    0,    0,    0,    0,    0,    512,  0,    0,    0,    0,    699,  1220,
+    0,    130,  1361, 0,    324,  0,    0,    0,    0,    0,    656,  1786, 1227, 49,   1594, 911,
+    440,  709,  1702, 458,  0,    868,  0,    0,    0,    311,  0,    1060, 0,    750,  0,    0,
+    0,    335,  0,    0,    1203, 244,  0,    1440, 156,  683,  446,  387,  903,  0,    0,    0,
+    332,  0,    0,    803,  0,    0,    0,    3,    0,    1037, 351,  1263, 256,  0,    1492, 0,
+    1634, 1471, 0,    0,    0,    0,    400,  804,  0,    0,    0,    0,    921,  0,    0,    0,
+    800,  0,    876,  0,    0,    0,    1541, 0,    0,    0,    0,    3,    1691, 746,  1690, 515,
+    1653, 717,  0,    520,  0,    0,    711,  0,    0,    196,  0,    0,    0,    0,    0,    1633,
+    17,   1809, 73,   0,    0,    503,  0,    594,  0,    18,   601,  115,  280,  0,    1198, 1832,
+    0,    0,    261,  1157, 0,    164,  0,    0,    0,    618,  492,  0,    0,    41,   334,  900,
+    0,    735,  0,    0,    0,    1759, 0,    0,    0,    0,    1122, 144,  0,    0,    0,    810,
+    390,  752,  1273, 537,  0,    0,    583,  0,    1554, 0,    981,  827,  26,   42,   186,  8,
+    0,    113,  393,  1581, 866,  0,    925,  1537, 1780, 1760, 199,  0,    0,    1105, 991,  0,
+    474,  0,    871,  0,    0,    558,  0,    41,   0,    0,    883,  1597, 818,  813,  375,  0,
+    327,  0,    0,    0,    387,  1663, 0,    0,    0,    497,  0,    0,    1133, 412,  0,    0,
+    405,  0,    341,  452,  0,    254,  313,  1347, 1755, 0,    0,    0,    1762, 0,    619,  331,
+    1159, 0,    0,    0,    0,    0,    1757, 0,    0,    0,    0,    0,    0,    0,    0,    0,
+    0,    0,    832,  492,  0,    0,    1351, 598,  157,  0,    0,    0,    0,    0,    1191, 135,
+    606,  0,    0,    0,    0,    0,    244,  0,    726,  0,    0,    204,  0,    0,    0,    1772,
+    0,    0,    0,    0,    379,  160,  1831, 34,   39,   0,    0,    446,  0,    189,  0,    381,
+    1488, 1276, 1792, 0,    375,  650,  375,  6,    0,    1051, 0,    289,  0,    1673, 0,    0,
+    1485, 0,    57,   1086, 928,  0,    0,    0,    783,  563,  31,   728,  256,  0,    1607, 0,
+    0,    955,  1530, 1227, 0,    0,    0,    0,    0,    0,    0,    390,  0,    666,  0,    0,
+    320,  896,  505,  0,    0,    971,  901,  0,    14,   682,  1529, 0,    408,  0,    1253, 0,
+    0,    301,  723,  0,    0,    162,  949,  312,  354,  0,    473,  1470, 1737, 169,  0,    694,
+    111,  43,   58,   742,  1431, 0,    1766, 0,    646,  0,    500,  115,  715,  1499, 0,    1508,
+    350,  0,    678,  445,  204,  0,    0,    0,    0,    563,  0,    1575, 0,    196,  0,    0,
+    5,    0,    596,  0,    0,    0,    0,    0,    218,  0,    499,  1456, 28,   0,    0,    904,
+    0,    776,  0,    0,    1701, 909,  1735, 0,    856,  0,    0,    235,  1610, 501,  0,    0,
+    0,    337,  273,  0,    552,  0,    1460, 772,  281,  0,    0,    596,  0,    203,  486,  0,
+    1652, 0,    552,  0,    0,    701,  1609, 587,  0,    0,    175,  284,  350,  0,    112,  1091,
+    802,  0,    759,  0,    0,    1805, 293,  0,    0,    0,    0,    0,    0,    0,    0,    0,
+    239,  0,    0,    336,  0,    149,  1253, 0,    947,  301,  0,    0,    309,  0,    1748, 0,
+    0,    830,  1684, 323,  0,    73,   368,  100,  187,  1321, 0,    0,    0,    920,  0,    0,
+    1839, 1217, 0,    1492, 1365, 0,    0,    0,    794,  542,  1605, 1741, 838,  120,  1498, 0,
+    0,    0,    0,    504,  1300, 979,  885,  12,   1649, 753,  0,    260,  0,    51,   0,    640,
+    0,    0,    1347, 440,  534,  0,    731,  0,    0,    1030, 0,    42,   0,    0,    0,    0,
+    78,   1075, 168,  415,  1236, 0,    1389, 0,    0,    0,    853,  360,  1583, 933,  0,    0,
+    1072, 628,  0,    1544, 0,    0,    1469, 608,  558,  0,    0,    1277, 1679, 686,  310,  0,
+    0,    0,    0,    618,  243,  0,    0,    421,  629,  0,    865,  672,  0,    772,  0,    127,
+    1408, 0,    708,  202,  822,  103,  1528, 146,  0,    1044, 771,  58,   373,  102,  10,   105,
+    154,  28,   0,    0,    0,    683,  387,  206,  0,    0,    837,  1468, 414,  0,    371,  0,
+    0,    0,    0,    1765, 231,  251,  0,    837,  0,    0,    1763, 0,    1763, 0,    146,  0,
+    1135, 656,  593,  0,    258,  0,    733,  0,    1361, 0,    0,    411,  1206, 788,  438,  0,
+    0,    841,  1479, 290,  943,  559,  0,    1401, 931,  0,    1494, 1764, 0,    0,    384,  0,
+    0,    0,    0,    347,  0,    652,  573,  489,  607,  52,   0,    0,    35,   537,  1182, 190,
+    754,  226,  0,    487,  0,    1429, 0,    0,    696,  29,   0,    1363, 65,   436,  1086, 1379,
+    0,    1757, 76,   0,    401,  335,  0,    410,  0,    965,  136,  668,  1174, 0,    23,   0,
+    774,  431,  112,  457,  0,    811,  0,    0,    0,    1189, 952,  81,   0,    0,    710,  995,
+    0,    1515, 718,  549,  634,  616,  775,  0,    449,  0,    0,    39,   435,  624,  0,    0,
+    0,    706,  0,    0,    0,    1755, 640,  0,    134,  1459, 0,    676,  361,  105,  347,  164,
+    0,    0,    685,  0,    0,    377,  1381, 1188, 0,    594,  654,  463,  0,    0,    528,  817,
+    554,  0,    0,    0,    0,    396,  430,  902,  477,  980,  1287, 1631, 0,    626,  491,  19,
+    0,    0,    582,  0,    1535, 250,  652,  0,    172,  543,  0,    0,    0,    0,    0,    1041,
+    0,    0,    0,    0,    977,  359,  0,    0,    374,  1287, 517,  0,    1090, 1599, 875,  820,
+    88,   1613, 1156, 383,  0,    784,  1636, 999,  0,    1535, 131,  0,    0,    917,  0,    13,
+    522,  380,  0,    0,    0,    149,  0,    0,    1136, 100,  357,  0,    0,    600,  460,  191,
+    280,  0,    1520, 0,    1191, 1149, 237,  0,    881,  0,    0,    143,  784,  145,  369,  828,
+    1377, 3,    1701, 0,    0,    78,   0,    169,  0,    0,    36,   0,    0,    767,  703,  0,
+    0,    486,  86,   425,  391,  0,    57,   671,  740,  0,    872,  70,   553,  0,    557,  827,
+    0,    34,   320,  0,    860,  360,  0,    634,  1724, 372,  229,  1653, 0,    1747, 20,   741,
+    0,    673,  465,  0,    0,    448,  0,    699,  905,  0,    871,  74,   0,    0,    0,    0,
+    1200, 0,    795,  922,  851,  0,    0,    0,    1477, 1099, 0,    1226, 0,    0,    1596, 277,
+    0,    0,    104,  499,  1414, 0,    0,    679,  1376, 0,    422,  0,    0,    1209, 0,    303,
+    0,    112,  976,  1296, 139,  33,   0,    454,  0,    841,  283,  1117, 0,    1119, 1722, 897,
+    1726, 0,    946,  699,  0,    684,  824,  1707, 808,  799,  635,  679,  0,    0,    0,    0,
+    0,    0,    0,    1213, 268,  0,    1689, 1582, 0,    261,  0,    0,    939,  1208, 0,    0,
+    0,    1806, 1658, 118,  1826, 0,    0,    1633, 940,  928,  1269, 200,  782,  314,  0,    480,
+    126,  1021, 0,    447,  822,  486,  224,  1791, 0,    677,  0,    0,    1265, 0,    0,    0,
+    584,  0,    0,    507,  353,  43,   0,    1589, 221,  0,    30,   830,  0,    178,  0,    0,
+    0,    608,  0,    140,  0,    0,    0,    376,  84,   0,    321,  1548, 1242, 0,    1579, 828,
+    334,  153,  0,    15,   854,  308,  1144, 0,    0,    1818, 0,    606,  422,  0,    0,    1725,
+    822,  0,    0,    141,  0,    0,    1600, 153,  1648, 0,    780,  932,  0,    0,    1385, 297,
+    97,   153,  801,  1303, 81,   1198, 0,    77,   1142, 0,    646,  544,  750,  433,  442,  340,
+    0,    0,    38,   0,    0,    892,  794,  0,    176,  0,    850,  1742, 478,  0,    0,    685,
+    0,    1289, 1518, 1590, 0,    0,    0,    147,  845,  89,   0,    0,    622,  92,   763,  0,
+    0,    1667, 0,    1821, 714,  959,  0,    725,  433,  669,  657,  508,  0,    302,  278,  0,
+    1195, 0,    109,  974,  887,  1302, 0,    1745, 912,  810,  635,  1205, 0,    1357, 1556, 1729,
+    529,  585,  0,    443,  397,  0,    887,  0,    1633, 0,    120,  0,    530,  0,    0,    274,
+    796,  0,    355,  82,   886,  870,  331,  852,  0,    1336, 38,   439,  68,   1413, 560,  385,
+    0,    99,   0,    0,    1641, 431,  910,  0,    0,    0,    0,    0,    115,  673,  831,  815,
+    0,    1286, 888,  1698, 396,  0,    0,    0,    259,  565,  0,    790,  264,  162,  0,    0,
+    0,    444,  434,  722,  315,  685,  609,  1660, 884,  635,  0,    1400, 1339, 166,  1825, 1432,
+    214,  461,  0,    0,    443,  936,  129,  0,    773,  664,  48,   0,    22,   133,  0,    404,
+    70,   651,  46,   0,    174,  342,  398,  0,    0,    0,    1074, 1316, 418,  0,    1593, 1347,
+    0,    9,    0,    1386, 513,  1200, 1655, 0,    0,    0,    1064, 419,  701,  179,  0,    572,
+    1712, 0,    1509, 1729, 0,    744,  402,  1101, 0,    1419, 865,  1549, 0,    1715, 0,    0,
     0};
 
 int MangledHashG(const char *key, const int *T)
@@ -175,19 +175,19 @@
 constexpr int unmangledkT2[] = {159, 88, 35,  79,  181, 132, 45,  85, 237, 60,  14,  103, 116,
                                 85,  78, 164, 123, 28,  85,  167, 46, 29,  204, 166, 227, 102};
 constexpr int unmangledkG[]  = {
-    0,   0,   0,   0,   0,   0,   83,  0,   0,   0,   145, 0,   0,   0,   0,   0,   0,   9,   4,
-    0,   230, 0,   0,   126, 0,   0,   0,   64,  41,  0,   217, 0,   71,  0,   0,   224, 0,   14,
-    0,   28,  9,   140, 0,   184, 0,   195, 0,   0,   0,   0,   4,   0,   0,   100, 110, 65,  96,
-    0,   144, 0,   0,   69,  0,   197, 4,   6,   47,  162, 0,   125, 56,  149, 0,   22,  30,  138,
-    21,  0,   115, 33,  0,   104, 0,   233, 59,  0,   0,   78,  176, 0,   0,   142, 175, 107, 76,
-    33,  75,  3,   0,   222, 8,   97,  0,   143, 7,   35,  0,   0,   0,   0,   147, 230, 50,  0,
-    0,   0,   174, 123, 26,  192, 109, 23,  66,  195, 214, 0,   157, 0,   115, 1,   0,   167, 146,
-    233, 53,  185, 0,   186, 60,  210, 124, 217, 234, 0,   44,  222, 232, 112, 0,   135, 32,  236,
-    161, 0,   60,  20,  61,  28,  0,   0,   0,   98,  0,   0,   68,  197, 44,  0,   73,  68,  18,
-    67,  0,   6,   131, 0,   0,   0,   78,  109, 20,  114, 37,  25,  201, 110, 87,  72,  149, 63,
-    153, 0,   36,  104, 0,   100, 145, 126, 148, 118, 47,  0,   72,  0,   0,   147, 48,  209, 63,
-    28,  75,  79,  169, 0,   0,   32,  201, 92,  79,  130, 0,   0,   0,   98,  197, 0,   52,  181,
-    25,  0,   8,   150, 0,   224, 0,   5,   16,  40};
+    0,   0,   0,   0,   0,   0,   79,  0,   0,   0,   147, 0,   0,   0,   0,   0,   0,   8,   1,
+    0,   228, 0,   0,   128, 0,   0,   0,   64,  42,  0,   218, 0,   70,  0,   0,   222, 0,   14,
+    0,   28,  9,   139, 0,   188, 0,   195, 0,   0,   0,   0,   1,   0,   0,   101, 109, 65,  96,
+    0,   143, 0,   0,   69,  0,   195, 5,   6,   49,  163, 0,   124, 56,  151, 0,   20,  30,  136,
+    20,  0,   117, 31,  0,   100, 0,   234, 59,  0,   0,   78,  178, 0,   0,   142, 176, 104, 75,
+    34,  74,  2,   0,   219, 8,   100, 0,   144, 6,   36,  0,   0,   0,   0,   147, 231, 50,  0,
+    0,   0,   171, 126, 26,  192, 107, 22,  66,  197, 215, 0,   156, 0,   114, 2,   0,   167, 146,
+    233, 52,  186, 0,   183, 60,  210, 126, 217, 232, 0,   44,  225, 232, 110, 0,   137, 32,  235,
+    161, 0,   59,  20,  64,  26,  0,   0,   0,   97,  0,   0,   67,  197, 44,  0,   74,  67,  16,
+    67,  0,   8,   131, 0,   0,   0,   75,  108, 22,  114, 37,  25,  202, 108, 86,  72,  148, 62,
+    148, 0,   36,  103, 0,   99,  147, 125, 148, 117, 47,  0,   73,  0,   0,   147, 47,  210, 64,
+    27,  71,  126, 168, 0,   0,   31,  204, 92,  78,  130, 0,   0,   0,   96,  196, 0,   52,  181,
+    25,  0,   8,   147, 0,   228, 0,   5,   15,  40};
 
 int UnmangledHashG(const char *key, const int *T)
 {
diff --git a/Source/ThirdParty/ANGLE/src/compiler/translator/ImmutableString_autogen.cpp b/Source/ThirdParty/ANGLE/src/compiler/translator/ImmutableString_autogen.cpp
index 6283f6d..8c68483 100644
--- a/Source/ThirdParty/ANGLE/src/compiler/translator/ImmutableString_autogen.cpp
+++ b/Source/ThirdParty/ANGLE/src/compiler/translator/ImmutableString_autogen.cpp
@@ -52,7 +52,7 @@
     2621, 727,  1889, 0,    0,    144,  0,    649,  0,    0,    0,    0,    0,    816,  3127, 73,
     0,    0,    0,    2194, 0,    0,    0,    0,    2623, 0,    0,    0,    1887, 3126, 0,    0,
     0,    0,    0,    0,    0,    3112, 0,    0,    0,    0,    0,    0,    3080, 0,    0,    3523,
-    0,    2651, 0,    0,    0,    2927, 0,    237,  0,    0,    0,    1720, 1511, 0,    2787, 0,
+    0,    2651, 0,    0,    0,    2927, 0,    237,  0,    0,    0,    1720, 1511, 0,    1036, 0,
     592,  0,    0,    3123, 0,    0,    0,    0,    0,    241,  0,    0,    1919, 0,    753,  0,
     35,   537,  0,    0,    0,    0,    0,    1744, 0,    2854, 1643, 229,  0,    1554, 0,    0,
     2594, 1801, 3855, 0,    183,  1341, 3695, 2786, 0,    3079, 0,    0,    512,  0,    0,    0,
@@ -78,10 +78,10 @@
     0,    266,  0,    0,    0,    2054, 1579, 0,    3326, 0,    324,  461,  0,    1083, 0,    0,
     0,    0,    2305, 440,  0,    0,    500,  0,    0,    1593, 1608, 0,    2781, 0,    0,    0,
     117,  0,    0,    2483, 81,   0,    0,    1099, 0,    0,    0,    1735, 0,    0,    77,   3630,
-    442,  0,    953,  0,    0,    0,    1008, 0,    0,    2223, 2435, 0,    0,    0,    0,    3383,
+    442,  0,    953,  0,    0,    0,    1008, 0,    0,    2157, 2435, 0,    0,    0,    0,    3383,
     0,    0,    1831, 0,    1706, 0,    0,    1138, 0,    0,    986,  0,    0,    0,    0,    0,
     0,    0,    122,  0,    3583, 0,    0,    1614, 0,    0,    0,    0,    0,    0,    1310, 0,
-    2951, 701,  0,    0,    0,    0,    0,    0,    0,    0,    0,    395,  1079, 62,   2225, 3234,
+    2951, 701,  0,    0,    0,    0,    0,    0,    0,    0,    0,    395,  393,  62,   2225, 3234,
     0,    0,    0,    2073, 1818, 1528, 0,    0,    2075, 0,    0,    0,    108,  0,    0,    0,
     163,  577,  2191, 0,    1584, 0,    1427, 0,    88,   0,    0,    0,    2008, 3483, 0,    0,
     2028, 0,    8,    0,    0,    0,    0,    0,    0,    3881, 0,    916,  271,  0,    1985, 0,
@@ -157,23 +157,23 @@
     0,    543,  1790, 634,  478,  861,  0,    2464, 0,    0,    1564, 1929, 1773, 3584, 0,    71,
     0,    848,  1673, 1381, 317,  3866, 101,  0,    469,  0,    0,    0,    498,  463,  3719, 1592,
     0,    0,    0,    1317, 603,  0,    2198, 791,  1968, 3849, 2474, 241,  17,   3513, 0,    849,
-    168,  0,    502,  0,    839,  0,    0,    1481, 0,    73,   1763, 0,    0,    0,    3639, 1161,
+    168,  0,    502,  0,    839,  0,    0,    1415, 0,    73,   1763, 0,    0,    0,    3639, 1161,
     713,  470,  0,    0,    0,    3706, 1738, 1791, 0,    3482, 0,    137,  2122, 0,    58,   1105,
-    1526, 441,  2774, 0,    1826, 1279, 0,    0,    3798, 1528, 1621, 0,    0,    3048, 0,    3261,
+    1526, 441,  2774, 0,    1826, 1279, 0,    0,    3798, 1528, 2307, 0,    0,    3048, 0,    3261,
     0,    1615, 821,  1539, 0,    0,    590,  0,    3483, 0,    0,    0,    1589, 0,    0,    0,
     740,  1158, 3256, 1332, 0,    0,    0,    2791, 863,  0,    1453, 0,    128,  0,    0,    0,
     0,    0,    1208, 1876, 0,    3308, 861,  1277, 856,  0,    0,    1066, 0,    0,    680,  0,
     2315, 481,  3805, 1823, 3491, 746,  0,    3342, 3260, 1561, 0,    712,  2715, 3390, 0,    0,
     0,    227,  0,    1197, 0,    3353, 899,  0,    649,  0,    0,    0,    0,    3180, 1566, 2808,
     2968, 378,  0,    0,    354,  1184, 1530, 0,    0,    2487, 2817, 0,    0,    3049, 1383, 2965,
-    2072, 1093, 0,    102,  3190, 0,    103,  0,    0,    923,  27,   935,  852,  1742, 0,    3306,
+    2072, 1093, 0,    102,  3190, 0,    103,  0,    0,    923,  27,   935,  852,  1742, 0,    1039,
     993,  3329, 0,    1355, 0,    2356, 0,    769,  543,  2817, 991,  3408, 159,  1745, 0,    1520,
     0,    56,   0,    0,    0,    0,    2086, 2808, 2361, 2721, 0,    1206, 2877, 2603, 0,    0,
     0,    2995, 3614, 2812, 3401, 2773, 0,    1996, 2748, 0,    0,    0,    0,    0,    0,    524,
     642,  1548, 0,    1731, 2972, 0,    4003, 0,    892,  3770, 0,    1524, 0,    0,    446,  0,
     3611, 1190, 3711, 3711, 2827, 1257, 44,   2957, 0,    1945, 3877, 625,  0,    0,    0,    0,
     0,    108,  0,    1622, 0,    0,    2604, 3567, 0,    1015, 1246, 572,  938,  3808, 1985, 267,
-    0,    2282, 0,    0,    1657, 226,  0,    2482, 1883, 0,    3220, 1822, 0,    239,  0,    80,
+    0,    2184, 0,    0,    1657, 226,  0,    2482, 1883, 0,    3220, 1822, 0,    239,  0,    80,
     1258, 0,    0,    0,    750,  2117, 2768, 0,    0,    799,  3610, 329,  0,    1341, 2145, 120,
     1345, 3772, 0,    402,  0,    0,    781,  0,    1163, 902,  1267, 3578, 0,    700,  179,  3471,
     3531, 581,  3388, 2819, 3887, 0,    1056, 1783, 0,    1787, 0,    1699, 0,    1374, 2477, 0,
@@ -188,19 +188,19 @@
     1779, 1038, 0,    0,    135,  3114, 1497, 1682, 0,    117,  0,    1261, 0,    0,    1184, 3025,
     0,    0,    1690, 489,  0,    0,    0,    0,    2979, 0,    0,    1039, 0,    3872, 857,  2869,
     2513, 0,    2323, 1110, 3304, 0,    0,    1170, 0,    329,  16,   0,    0,    699,  1414, 2975,
-    994,  0,    531,  0,    1808, 0,    0,    447,  1685, 3792, 1719, 1989, 3593, 3503, 3904, 1951,
+    994,  0,    531,  0,    1808, 0,    0,    447,  1685, 3792, 1719, 1989, 3659, 3503, 3904, 1951,
     3780, 505,  2839, 1179, 2024, 3292, 1114, 1678, 3469, 0,    0,    2092, 0,    0,    0,    2204,
     0,    3330, 0,    461,  2763, 190,  0,    3636, 1969, 3,    2863, 0,    1079, 281,  0,    0,
     0,    1946, 0,    0,    1062, 450,  0,    0,    880,  0,    2990, 0,    75,   0,    3774, 71,
     0,    3748, 1127, 0,    0,    3951, 399,  0,    1288, 37,   0,    3439, 2714, 0,    2479, 3482,
     192,  1377, 0,    738,  0,    1632, 293,  2081, 0,    931,  2848, 0,    3845, 1328, 3929, 0,
     1369, 197,  149,  2756, 0,    7,    3461, 0,    1920, 1237, 549,  135,  1748, 0,    0,    2006,
-    591,  1390, 729,  3868, 587,  0,    1482, 641,  2858, 1074, 0,    932,  0,    0,    2535, 0,
+    591,  1390, 729,  3868, 587,  0,    1482, 641,  591,  1074, 0,    932,  0,    0,    2535, 0,
     0,    182,  171,  0,    0,    667,  984,  1529, 0,    2937, 0,    0,    2193, 0,    0,    3610,
     1997, 0,    126,  2103, 1165, 2082, 0,    3114, 0,    0,    0,    0,    924,  411,  0,    66,
     0,    0,    605,  2243, 1055, 1704, 0,    0,    0,    539,  3756, 395,  952,  218,  0,    720,
     3824, 0,    0,    1447, 0,    916,  486,  1758, 3985, 517,  649,  1784, 0,    0,    3121, 3241,
-    105,  0,    0,    3442, 1273, 0,    0,    1390, 0,    0,    1347, 620,  289,  3713, 1388, 1657,
+    105,  0,    0,    3442, 1273, 0,    0,    1390, 0,    0,    1347, 98,   289,  3713, 1388, 1657,
     1122, 209,  430,  0,    43,   0,    1525, 3879, 0,    0,    0,    300,  3466, 0,    2368, 0,
     2032, 3813, 0,    2105, 1522, 0,    0,    1268, 1144, 2115, 0,    921,  3337, 0,    441,  0,
     1964, 0,    0,    0,    0,    0,    3160, 2383, 0,    0,    1507, 1631, 0,    3796, 0,    0,
@@ -209,11 +209,11 @@
     19,   1641, 1308, 1391, 2326, 1061, 1453, 0,    0,    1580, 3202, 3039, 3829, 3087, 0,    994,
     0,    2557, 0,    2499, 0,    0,    932,  0,    1018, 1171, 2046, 1425, 0,    0,    2898, 63,
     2696, 3946, 1900, 3497, 0,    0,    1824, 3810, 0,    436,  1116, 1464, 482,  0,    168,  1959,
-    283,  3642, 1890, 0,    3347, 3389, 0,    0,    1795, 1699, 1916, 3783, 0,    1483, 0,    1848,
+    283,  3642, 1890, 0,    3413, 3389, 0,    0,    1795, 1699, 1916, 3783, 0,    1483, 0,    1848,
     2150, 0,    1768, 2505, 0,    418,  3129, 3710, 2125, 1785, 0,    137,  972,  0,    0,    3423,
     0,    1586, 0,    1651, 0,    1178, 0,    3140, 0,    91,   0,    3408, 356,  194,  1034, 2976,
     1337, 388,  407,  0,    1574, 1368, 0,    1529, 684,  1714, 1559, 0,    202,  0,    819,  598,
-    209,  0,    1336, 0,    0,    0,    143,  2330, 3583, 652,  2986, 0,    0,    0,    0,    3834,
+    209,  0,    814,  0,    0,    0,    143,  2330, 3583, 652,  2986, 0,    0,    0,    0,    3834,
     0,    3274, 1351, 3961, 2230, 0,    1749, 0,    1359, 1820, 2595, 1099, 338,  1033, 0,    2964,
     0,    1860, 0,    2354, 1813, 3878, 0,    14,   1386, 1151, 967,  0,    0,    0,    2041, 2536,
     0,    0,    201,  1224, 730,  0,    216,  0,    3298, 0,    12,   515,  573,  1895, 630,  0,
@@ -227,9 +227,9 @@
     2888, 3628, 0,    0,    0,    0,    2474, 394,  531,  2483, 1041, 0,    957,  0,    204,  0,
     1372, 0,    1230, 1166, 0,    1218, 0,    674,  0,    0,    1538, 1224, 1097, 3426, 0,    746,
     816,  0,    2887, 81,   906,  1671, 1204, 85,   0,    3246, 0,    964,  1346, 0,    2184, 0,
-    1246, 231,  3811, 0,    571,  767,  0,    0,    382,  2850, 0,    2876, 0,    0,    1933, 1821,
+    1246, 231,  3811, 0,    571,  767,  0,    0,    2649, 2850, 0,    2876, 0,    0,    1933, 1821,
     0,    778,  530,  0,    0,    0,    347,  450,  0,    0,    2184, 1273, 3785, 0,    0,    3823,
-    1080, 3675, 600,  1301, 1791, 1510, 0,    1859, 3339, 1933, 1835, 0,    3612, 0,    0,    2001,
+    1080, 3675, 600,  1301, 3542, 1510, 0,    1859, 3339, 1933, 1835, 0,    3612, 0,    0,    2001,
     0,    1191, 1648, 3939, 0,    731,  2381, 1033, 1770, 0,    0,    935,  703,  926,  1141, 1831,
     0,    2422, 3907, 3258, 625,  0,    4002, 406,  1995, 936,  0,    787,  0,    2809, 119,  2571,
     1240, 826,  0,    1410, 0,    0,    0,    1726, 523,  0,    1371, 0,    0,    0,    669,  434,
@@ -244,26 +244,26 @@
     1544, 0,    520,  0,    1993, 0,    2946, 2533, 3364, 0,    0,    3167, 0,    1312, 2248, 0,
     0,    0,    0,    0,    1522, 3031, 0,    0,    0,    0,    1070, 0,    0,    0,    2440, 0,
     253,  1201, 937,  2587, 726,  340,  238,  1338, 274,  3576, 126,  1474, 2995, 539,  1806, 3670,
-    0,    416,  0,    0,    3927, 3234, 396,  2,    1280, 321,  1233, 1987, 633,  0,    1936, 1671,
+    0,    416,  0,    0,    3993, 3234, 396,  2,    1280, 321,  1233, 1987, 633,  0,    1936, 1671,
     2788, 0,    2977, 0,    0,    0,    1002, 552,  0,    3893, 3725, 762,  0,    0,    696,  0,
     235,  846,  2927, 673,  1431, 3779, 3356, 0,    660,  0,    0,    3442, 1208, 0,    3680, 1010,
     234,  1235, 2108, 3534, 463,  778,  1667, 1583, 1466, 1118, 341,  0,    2310, 3413, 1023, 3648,
-    0,    0,    0,    0,    2403, 0,    570,  0,    0,    0,    1552, 0,    0,    0,    3864, 0,
-    0,    3781, 784,  1589, 0,    3155, 0,    3384, 1969, 0,    614,  989,  0,    2279, 2616, 459,
+    0,    0,    0,    0,    2403, 0,    570,  0,    0,    0,    1486, 0,    0,    0,    3864, 0,
+    0,    3781, 784,  1589, 0,    3155, 0,    3384, 1969, 0,    614,  989,  0,    2279, 2682, 459,
     0,    1938, 1328, 390,  1865, 1624, 0,    0,    1800, 0,    3837, 0,    2257, 2114, 0,    422,
     1611, 0,    0,    2235, 0,    578,  1827, 0,    1168, 1057, 0,    1301, 1998, 0,    990,  3723,
     0,    1199, 1022, 1216, 3953, 0,    0,    303,  1149, 0,    0,    0,    3278, 1129, 279,  1445,
     3519, 2649, 0,    969,  0,    0,    1794, 0,    0,    1975, 0,    3704, 0,    3292, 3615, 158,
     3754, 0,    2003, 1655, 2233, 2476, 606,  551,  3966, 2831, 676,  0,    0,    167,  2837, 1048,
-    0,    901,  1428, 445,  0,    0,    249,  1771, 270,  0,    0,    19,   1162, 2888, 0,    725,
+    0,    901,  1428, 445,  0,    0,    249,  1705, 270,  0,    0,    19,   1162, 2888, 0,    725,
     0,    0,    443,  0,    864,  2049, 1507, 2112, 3439, 1153, 3197, 0,    0,    3385, 3047, 0,
-    2229, 0,    0,    0,    150,  1913, 2050, 0,    0,    0,    0,    931,  0,    1203, 0,    0,
+    2229, 0,    0,    0,    150,  1913, 2050, 0,    0,    0,    0,    931,  0,    1301, 0,    0,
     1467, 2872, 2784, 0,    535,  0,    0,    0,    1495, 928,  1537, 1157, 3415, 1053, 960,  108,
     3677, 311,  0,    0,    2167, 1905, 2802, 307,  2126, 3824, 2072, 2998, 0,    400,  556,  2654,
     514,  1567, 722,  0,    3740, 34,   0,    3194, 2063, 0,    0,    266,  0,    0,    348,  623,
     0,    3181, 1497, 0,    0,    625,  0,    0,    1307, 557,  355,  3059, 2576, 0,    494,  0,
     1947, 0,    1930, 41,   294,  0,    0,    3927, 1844, 588,  1718, 3088, 2722, 898,  0,    1500,
-    0,    2946, 1124, 99,   0,    0,    0,    0,    0,    397,  1449, 1186, 707,  2345, 1587, 3988,
+    0,    2946, 1124, 99,   0,    0,    0,    0,    0,    919,  1449, 1186, 707,  2345, 1587, 3988,
     0,    2087, 433,  3985, 1423, 57,   0,    0,    2753, 544,  225,  3931, 1319, 221,  270,  0,
     1219, 1966, 0,    0,    2091, 973,  1379, 851,  3134, 727,  0,    3339, 0,    3893, 3297, 2189,
     0,    0,    0,    0,    0,    1382, 0,    2457, 0,    3962, 1012, 1422, 1379, 1024, 0,    0,
@@ -274,12 +274,12 @@
     1805, 0,    0,    0,    1620, 1535, 0,    288,  0,    0,    0,    35,   842,  632,  0,    0,
     3648, 3429, 1884, 0,    862,  91,   2492, 898,  0,    2974, 98,   0,    0,    271,  3934, 0,
     0,    0,    1527, 2096, 1859, 0,    3871, 0,    0,    177,  0,    0,    2963, 0,    0,    481,
-    1010, 38,   447,  0,    1264, 877,  188,  0,    1413, 525,  0,    703,  835,  0,    0,    1611,
-    369,  1097, 989,  0,    338,  1564, 1698, 2083, 3099, 119,  0,    3452, 1862, 0,    0,    0,
+    1010, 38,   447,  0,    1264, 877,  188,  0,    1413, 525,  0,    703,  835,  0,    0,    1545,
+    369,  1097, 467,  0,    338,  1564, 1698, 2083, 3099, 119,  0,    3452, 1862, 0,    0,    0,
     1539, 0,    2084, 1785, 379,  3416, 0,    1762, 155,  1776, 0,    1730, 3670, 1738, 0,    1385,
-    1697, 185,  2200, 0,    3910, 1074, 0,    0,    314,  0,    3037, 1541, 0,    1614, 0,    762,
+    1697, 185,  2200, 0,    3910, 1074, 0,    0,    314,  0,    3103, 1541, 0,    1614, 0,    762,
     0,    0,    2127, 0,    0,    0,    0,    1040, 2692, 1583, 827,  0,    61,   0,    1402, 0,
-    0,    0,    3677, 1373, 0,    1593, 0,    160,  1682, 1205, 3839, 1305, 323,  606,  0,    1869,
+    0,    0,    3677, 1373, 0,    1593, 0,    160,  1682, 1205, 3839, 3572, 323,  606,  0,    1869,
     284,  1721, 1938, 1878, 0,    0,    0,    153,  922,  0,    3428, 489,  1927, 3671, 635,  1367,
     3251, 0,    382,  2592, 2863, 0,    0,    421,  292,  0,    1483, 0,    658,  627,  970,  0,
     0,    3781, 2490, 2175, 417,  1193, 965,  0,    253,  0,    2064, 2004, 11,   0,    67,   2133,
@@ -311,24 +311,24 @@
 constexpr int unmangledkT2[] = {1,   83, 258, 205, 211, 68,  233, 316, 8,  149, 134, 322, 221,
                                 224, 26, 115, 27,  229, 285, 163, 104, 44, 281, 182, 107, 199};
 constexpr int unmangledkG[]  = {
-    0,   0,   0,   0,   0,   0,   196, 0,   0,   0,   0,   0,   0,   0,   0,   0,   34,  62,  0,
-    0,   0,   0,   0,   0,   0,   0,   0,   0,   119, 179, 0,   31,  0,   223, 174, 0,   18,  154,
-    11,  0,   0,   170, 325, 0,   70,  0,   123, 0,   233, 0,   330, 0,   240, 57,  0,   0,   1,
-    0,   146, 140, 293, 144, 2,   244, 42,  0,   205, 213, 0,   127, 0,   0,   0,   296, 207, 0,
-    0,   196, 151, 0,   0,   65,  250, 0,   0,   237, 141, 0,   6,   49,  0,   0,   0,   0,   186,
-    252, 88,  146, 60,  321, 0,   0,   193, 206, 212, 248, 83,  0,   0,   257, 0,   99,  0,   0,
-    45,  0,   0,   126, 173, 119, 0,   318, 81,  229, 0,   0,   0,   330, 319, 138, 73,  189, 0,
-    153, 191, 174, 89,  150, 134, 206, 173, 0,   0,   0,   314, 279, 8,   212, 0,   261, 275, 248,
-    0,   31,  25,  167, 51,  0,   0,   209, 0,   323, 0,   185, 106, 54,  0,   0,   20,  106, 88,
-    88,  267, 25,  112, 157, 148, 153, 0,   88,  244, 238, 173, 279, 0,   0,   30,  136, 271, 0,
-    42,  165, 75,  249, 0,   145, 0,   0,   0,   163, 230, 194, 0,   258, 0,   297, 282, 23,  0,
-    0,   218, 245, 0,   0,   43,  77,  62,  117, 0,   250, 0,   166, 6,   226, 15,  0,   89,  0,
-    220, 96,  101, 0,   196, 0,   51,  0,   0,   0,   164, 327, 123, 0,   55,  194, 184, 125, 313,
-    0,   0,   0,   40,  71,  319, 274, 25,  273, 271, 230, 8,   48,  0,   230, 137, 281, 0,   152,
-    0,   0,   193, 0,   315, 0,   328, 293, 131, 0,   155, 191, 199, 113, 11,  73,  0,   7,   69,
-    300, 210, 307, 45,  0,   280, 146, 203, 0,   134, 182, 0,   10,  0,   129, 140, 170, 0,   16,
-    204, 290, 0,   15,  0,   14,  74,  82,  65,  227, 319, 178, 110, 164, 59,  0,   0,   306, 187,
-    191, 204, 325, 0,   0,   63,  133, 289};
+    0,   0,   0,   0,   0,   0,   195, 0,   0,   0,   0,   0,   0,   0,   0,   0,   34,  59,  0,
+    0,   0,   0,   0,   0,   0,   0,   0,   0,   118, 180, 0,   31,  0,   223, 174, 0,   18,  154,
+    11,  0,   0,   170, 325, 0,   70,  0,   120, 0,   232, 0,   330, 0,   240, 57,  0,   0,   1,
+    0,   147, 140, 296, 143, 3,   242, 44,  0,   204, 214, 0,   128, 0,   0,   0,   296, 208, 0,
+    0,   196, 152, 0,   0,   64,  249, 0,   0,   236, 140, 0,   7,   50,  0,   0,   0,   0,   186,
+    250, 88,  146, 60,  321, 0,   0,   193, 206, 210, 247, 84,  0,   0,   258, 0,   100, 0,   0,
+    45,  0,   0,   125, 175, 119, 0,   316, 81,  229, 0,   0,   0,   329, 319, 137, 73,  190, 0,
+    152, 191, 174, 89,  149, 133, 279, 173, 0,   0,   0,   314, 279, 9,   209, 0,   262, 274, 249,
+    0,   30,  25,  166, 52,  0,   0,   209, 0,   323, 0,   183, 105, 53,  0,   0,   20,  105, 87,
+    87,  266, 25,  113, 156, 147, 152, 0,   88,  245, 239, 172, 280, 0,   0,   32,  135, 270, 0,
+    42,  165, 75,  248, 0,   145, 0,   0,   0,   163, 231, 194, 0,   257, 0,   296, 283, 24,  0,
+    0,   217, 248, 0,   0,   43,  76,  62,  115, 0,   249, 0,   165, 6,   228, 15,  0,   86,  0,
+    220, 96,  100, 0,   196, 0,   51,  0,   0,   0,   164, 327, 124, 0,   55,  194, 183, 122, 313,
+    0,   0,   0,   40,  70,  321, 271, 25,  273, 272, 229, 8,   48,  0,   231, 135, 279, 0,   151,
+    0,   0,   191, 0,   316, 0,   328, 293, 130, 0,   154, 191, 199, 114, 11,  74,  0,   7,   69,
+    303, 208, 307, 45,  0,   281, 147, 203, 0,   133, 182, 0,   10,  0,   128, 139, 169, 0,   16,
+    204, 289, 0,   16,  0,   14,  74,  81,  65,  227, 319, 176, 109, 164, 58,  0,   0,   304, 187,
+    191, 204, 324, 0,   0,   61,  132, 287};
 
 int UnmangledHashG(const char *key, const int *T)
 {
diff --git a/Source/ThirdParty/ANGLE/src/compiler/translator/IntermNode.h b/Source/ThirdParty/ANGLE/src/compiler/translator/IntermNode.h
index 561b2f16..0612768 100644
--- a/Source/ThirdParty/ANGLE/src/compiler/translator/IntermNode.h
+++ b/Source/ThirdParty/ANGLE/src/compiler/translator/IntermNode.h
@@ -963,7 +963,7 @@
     Endif,
 };
 
-class TIntermPreprocessorDirective : public TIntermNode
+class TIntermPreprocessorDirective final : public TIntermNode
 {
   public:
     // This could also take an ImmutableString as an argument.
diff --git a/Source/ThirdParty/ANGLE/src/compiler/translator/ParseContext.cpp b/Source/ThirdParty/ANGLE/src/compiler/translator/ParseContext.cpp
index cac4ae6a..26286eb 100644
--- a/Source/ThirdParty/ANGLE/src/compiler/translator/ParseContext.cpp
+++ b/Source/ThirdParty/ANGLE/src/compiler/translator/ParseContext.cpp
@@ -169,7 +169,8 @@
                              ShCompileOptions options,
                              bool checksPrecErrors,
                              TDiagnostics *diagnostics,
-                             const ShBuiltInResources &resources)
+                             const ShBuiltInResources &resources,
+                             ShShaderOutput outputType)
     : symbolTable(symt),
       mDeferredNonEmptyDeclarationErrorCheck(false),
       mShaderType(type),
@@ -217,7 +218,8 @@
       mGeometryShaderMaxVertices(-1),
       mMaxGeometryShaderInvocations(resources.MaxGeometryShaderInvocations),
       mMaxGeometryShaderMaxVertices(resources.MaxGeometryOutputVertices),
-      mFunctionBodyNewScope(false)
+      mFunctionBodyNewScope(false),
+      mOutputType(outputType)
 {}
 
 TParseContext::~TParseContext() {}
@@ -1014,15 +1016,18 @@
         return 1u;
     }
 
-    // The size of arrays is restricted here to prevent issues further down the
-    // compiler/translator/driver stack. Shader Model 5 generation hardware is limited to
-    // 4096 registers so this should be reasonable even for aggressively optimizable code.
-    const unsigned int sizeLimit = 65536;
-
-    if (size > sizeLimit)
+    if (IsOutputHLSL(getOutputType()))
     {
-        error(line, "array size too large", "");
-        return 1u;
+        // The size of arrays is restricted here to prevent issues further down the
+        // compiler/translator/driver stack. Shader Model 5 generation hardware is limited to
+        // 4096 registers so this should be reasonable even for aggressively optimizable code.
+        const unsigned int sizeLimit = 65536;
+
+        if (size > sizeLimit)
+        {
+            error(line, "array size too large", "");
+            return 1u;
+        }
     }
 
     return size;
@@ -3364,10 +3369,9 @@
 
     if (getShaderVersion() >= 300)
     {
-        const UnmangledBuiltIn *builtIn =
-            symbolTable.getUnmangledBuiltInForShaderVersion(function->name(), getShaderVersion());
-        if (builtIn &&
-            (builtIn->extension == TExtension::UNDEFINED || isExtensionEnabled(builtIn->extension)))
+
+        if (symbolTable.isUnmangledBuiltInName(function->name(), getShaderVersion(),
+                                               extensionBehavior()))
         {
             // With ESSL 3.00 and above, names of built-in functions cannot be redeclared as
             // functions. Therefore overloading or redefining builtin functions is an error.
diff --git a/Source/ThirdParty/ANGLE/src/compiler/translator/ParseContext.h b/Source/ThirdParty/ANGLE/src/compiler/translator/ParseContext.h
index c3455e7..8638d5b 100644
--- a/Source/ThirdParty/ANGLE/src/compiler/translator/ParseContext.h
+++ b/Source/ThirdParty/ANGLE/src/compiler/translator/ParseContext.h
@@ -40,7 +40,8 @@
                   ShCompileOptions options,
                   bool checksPrecErrors,
                   TDiagnostics *diagnostics,
-                  const ShBuiltInResources &resources);
+                  const ShBuiltInResources &resources,
+                  ShShaderOutput outputType);
     ~TParseContext();
 
     bool anyMultiviewExtensionAvailable();
@@ -459,6 +460,8 @@
         return mGeometryShaderOutputPrimitiveType;
     }
 
+    ShShaderOutput getOutputType() const { return mOutputType; }
+
     // TODO(jmadill): make this private
     TSymbolTable &symbolTable;  // symbol table that goes with the language currently being parsed
 
@@ -655,6 +658,8 @@
 
     // Track when we add new scope for func body in ESSL 1.00 spec
     bool mFunctionBodyNewScope;
+
+    ShShaderOutput mOutputType;
 };
 
 int PaParseStrings(size_t count,
diff --git a/Source/ThirdParty/ANGLE/src/compiler/translator/ShaderVars.cpp b/Source/ThirdParty/ANGLE/src/compiler/translator/ShaderVars.cpp
index ac22cb0..3cebc70 100644
--- a/Source/ThirdParty/ANGLE/src/compiler/translator/ShaderVars.cpp
+++ b/Source/ThirdParty/ANGLE/src/compiler/translator/ShaderVars.cpp
@@ -101,7 +101,7 @@
     offset                        = other.offset;
     readonly                      = other.readonly;
     writeonly                     = other.writeonly;
-    writeonly                     = other.index;
+    index                         = other.index;
     interpolation                 = other.interpolation;
     isInvariant                   = other.isInvariant;
     return *this;
diff --git a/Source/ThirdParty/ANGLE/src/compiler/translator/SymbolTable.cpp b/Source/ThirdParty/ANGLE/src/compiler/translator/SymbolTable.cpp
index 75529c4..049523b 100644
--- a/Source/ThirdParty/ANGLE/src/compiler/translator/SymbolTable.cpp
+++ b/Source/ThirdParty/ANGLE/src/compiler/translator/SymbolTable.cpp
@@ -21,6 +21,38 @@
 
 namespace sh
 {
+namespace
+{
+bool CheckShaderType(Shader expected, GLenum actual)
+{
+    switch (expected)
+    {
+        case Shader::ALL:
+            return true;
+        case Shader::FRAGMENT:
+            return actual == GL_FRAGMENT_SHADER;
+        case Shader::VERTEX:
+            return actual == GL_VERTEX_SHADER;
+        case Shader::COMPUTE:
+            return actual == GL_COMPUTE_SHADER;
+        case Shader::GEOMETRY:
+            return actual == GL_GEOMETRY_SHADER;
+        case Shader::GEOMETRY_EXT:
+            return actual == GL_GEOMETRY_SHADER_EXT;
+        case Shader::NOT_COMPUTE:
+            return actual != GL_COMPUTE_SHADER;
+        default:
+            UNREACHABLE();
+            return false;
+    }
+}
+
+bool CheckExtension(uint32_t extensionIndex, const ShBuiltInResources &resources)
+{
+    const int *resourcePtr = reinterpret_cast<const int *>(&resources);
+    return resourcePtr[extensionIndex] > 0;
+}
+}  // namespace
 
 class TSymbolTable::TSymbolTableLevel
 {
@@ -133,7 +165,7 @@
     {
         return mGlInVariableWithArraySize->getType().getOutermostArraySize() == inputArraySize;
     }
-    const TInterfaceBlock *glPerVertex = static_cast<const TInterfaceBlock *>(mVar_gl_PerVertex);
+    const TInterfaceBlock *glPerVertex = static_cast<const TInterfaceBlock *>(m_gl_PerVertex);
     TType *glInType = new TType(glPerVertex, EvqPerVertexIn, TLayoutQualifier::Create());
     glInType->makeArray(inputArraySize);
     mGlInVariableWithArraySize =
@@ -149,12 +181,12 @@
 
 const TVariable *TSymbolTable::gl_FragData() const
 {
-    return static_cast<const TVariable *>(mVar_gl_FragData);
+    return static_cast<const TVariable *>(m_gl_FragData);
 }
 
 const TVariable *TSymbolTable::gl_SecondaryFragDataEXT() const
 {
-    return static_cast<const TVariable *>(mVar_gl_SecondaryFragDataEXT);
+    return static_cast<const TVariable *>(m_gl_SecondaryFragDataEXT);
 }
 
 TSymbolTable::VariableMetadata *TSymbolTable::getOrCreateVariableMetadata(const TVariable &variable)
@@ -416,4 +448,87 @@
 TSymbolTable::VariableMetadata::VariableMetadata()
     : staticRead(false), staticWrite(false), invariant(false)
 {}
+
+const TSymbol *SymbolRule::get(ShShaderSpec shaderSpec,
+                               int shaderVersion,
+                               sh::GLenum shaderType,
+                               const ShBuiltInResources &resources,
+                               const TSymbolTableBase &symbolTable) const
+{
+    if (IsDesktopGLSpec(shaderSpec) != (mIsDesktop == 1))
+        return nullptr;
+
+    if (mVersion == kESSL1Only && shaderVersion != static_cast<int>(kESSL1Only))
+        return nullptr;
+
+    if (mVersion > shaderVersion)
+        return nullptr;
+
+    if (!CheckShaderType(static_cast<Shader>(mShaders), shaderType))
+        return nullptr;
+
+    if (mExtensionIndex != 0 && !CheckExtension(mExtensionIndex, resources))
+        return nullptr;
+
+    return mIsVar > 0 ? symbolTable.*(mSymbolOrVar.var) : mSymbolOrVar.symbol;
+}
+
+const TSymbol *FindMangledBuiltIn(ShShaderSpec shaderSpec,
+                                  int shaderVersion,
+                                  sh::GLenum shaderType,
+                                  const ShBuiltInResources &resources,
+                                  const TSymbolTableBase &symbolTable,
+                                  const SymbolRule *rules,
+                                  uint16_t startIndex,
+                                  uint16_t endIndex)
+{
+    for (uint32_t ruleIndex = startIndex; ruleIndex < endIndex; ++ruleIndex)
+    {
+        const TSymbol *symbol =
+            rules[ruleIndex].get(shaderSpec, shaderVersion, shaderType, resources, symbolTable);
+        if (symbol)
+        {
+            return symbol;
+        }
+    }
+
+    return nullptr;
+}
+
+bool UnmangledEntry::matches(const ImmutableString &name,
+                             ShShaderSpec shaderSpec,
+                             int shaderVersion,
+                             sh::GLenum shaderType,
+                             const TExtensionBehavior &extensions) const
+{
+    if (name != mName)
+        return false;
+
+    if (!CheckShaderType(static_cast<Shader>(mShaderType), shaderType))
+        return false;
+
+    if (IsDesktopGLSpec(shaderSpec))
+    {
+        if (mGLSLVersion > shaderVersion)
+            return false;
+
+        if (static_cast<TExtension>(mGLSLExtension) == TExtension::UNDEFINED)
+            return true;
+
+        return IsExtensionEnabled(extensions, static_cast<TExtension>(mGLSLExtension));
+    }
+    else
+    {
+        if (mESSLVersion == kESSL1Only && shaderVersion != static_cast<int>(kESSL1Only))
+            return false;
+
+        if (mESSLVersion > shaderVersion)
+            return false;
+
+        if (static_cast<TExtension>(mESSLExtension) == TExtension::UNDEFINED)
+            return true;
+
+        return IsExtensionEnabled(extensions, static_cast<TExtension>(mESSLExtension));
+    }
+}
 }  // namespace sh
diff --git a/Source/ThirdParty/ANGLE/src/compiler/translator/SymbolTable.h b/Source/ThirdParty/ANGLE/src/compiler/translator/SymbolTable.h
index 362b234..264d8cb 100644
--- a/Source/ThirdParty/ANGLE/src/compiler/translator/SymbolTable.h
+++ b/Source/ThirdParty/ANGLE/src/compiler/translator/SymbolTable.h
@@ -30,6 +30,7 @@
 //   are tracked in the intermediate representation, not the symbol table.
 //
 
+#include <limits>
 #include <memory>
 #include <set>
 
@@ -62,107 +63,150 @@
     TExtension extension;
 };
 
-using VarPointer = TSymbol *(TSymbolTableBase::*);
-
+using VarPointer        = TSymbol *(TSymbolTableBase::*);
 using ValidateExtension = int(ShBuiltInResources::*);
 
-struct SymbolEntry
+enum class Spec
 {
-    constexpr SymbolEntry(ImmutableString &&name,
-                          const TSymbol *symbol,
-                          VarPointer var,
-                          int esslVersion,
-                          int glslVersion,
-                          Shader shaderType,
-                          const TSymbol *esslExtSymbol,
-                          VarPointer esslExtVar,
-                          int esslExtVersion,
-                          Shader esslExtShaderType,
-                          ValidateExtension esslExtension,
-                          const TSymbol *glslExtSymbol,
-                          VarPointer glslExtVar,
-                          int glslExtVersion,
-                          Shader glslExtShaderType,
-                          ValidateExtension glslExtension,
-                          const TSymbol *esslExtSymbol2    = nullptr,
-                          VarPointer esslExtVar2           = nullptr,
-                          int esslExtVersion2              = -1,
-                          Shader esslExtShaderType2        = Shader::ALL,
-                          ValidateExtension esslExtension2 = nullptr)
-        : name(std::move(name)),
-          symbol(symbol),
-          var(var),
-          esslVersion(esslVersion),
-          glslVersion(glslVersion),
-          shaderType(shaderType),
-          esslExtSymbol(esslExtSymbol),
-          esslExtVar(esslExtVar),
-          esslExtVersion(esslExtVersion),
-          esslExtShaderType(esslExtShaderType),
-          esslExtension(esslExtension),
-          glslExtSymbol(glslExtSymbol),
-          glslExtVar(glslExtVar),
-          glslExtVersion(glslExtVersion),
-          glslExtShaderType(glslExtShaderType),
-          glslExtension(glslExtension),
-          esslExtSymbol2(esslExtSymbol2),
-          esslExtVar2(esslExtVar2),
-          esslExtVersion2(esslExtVersion2),
-          esslExtShaderType2(esslExtShaderType2),
-          esslExtension2(esslExtension2)
-    {}
-
-    ImmutableString name;
-
-    const TSymbol *symbol;
-    VarPointer var;
-    int esslVersion;
-    int glslVersion;
-    Shader shaderType;
-
-    const TSymbol *esslExtSymbol;
-    VarPointer esslExtVar;
-    int esslExtVersion;
-    Shader esslExtShaderType;
-    ValidateExtension esslExtension;
-
-    const TSymbol *glslExtSymbol;
-    VarPointer glslExtVar;
-    int glslExtVersion;
-    Shader glslExtShaderType;
-    ValidateExtension glslExtension;
-
-    const TSymbol *esslExtSymbol2;
-    VarPointer esslExtVar2;
-    int esslExtVersion2;
-    Shader esslExtShaderType2;
-    ValidateExtension esslExtension2;
+    GLSL,
+    ESSL
 };
 
-struct UnmangledEntry
+constexpr uint16_t kESSL1Only = 100;
+
+static_assert(offsetof(ShBuiltInResources, OES_standard_derivatives) != 0,
+              "Update SymbolTable extension logic");
+
+#define EXT_INDEX(Ext) (offsetof(ShBuiltInResources, Ext) / sizeof(int))
+
+class SymbolRule
 {
-    constexpr UnmangledEntry(ImmutableString &&name,
-                             const UnmangledBuiltIn *esslUnmangled,
-                             const UnmangledBuiltIn *glslUnmangled,
+  public:
+    const TSymbol *get(ShShaderSpec shaderSpec,
+                       int shaderVersion,
+                       sh::GLenum shaderType,
+                       const ShBuiltInResources &resources,
+                       const TSymbolTableBase &symbolTable) const;
+
+    template <Spec spec, int version, Shader shaders, size_t extensionIndex, typename T>
+    constexpr static SymbolRule Get(T value);
+
+  private:
+    constexpr SymbolRule(Spec spec,
+                         int version,
+                         Shader shaders,
+                         size_t extensionIndex,
+                         const TSymbol *symbol);
+
+    constexpr SymbolRule(Spec spec,
+                         int version,
+                         Shader shaders,
+                         size_t extensionIndex,
+                         VarPointer resourceVar);
+
+    union SymbolOrVar
+    {
+        constexpr SymbolOrVar(const TSymbol *symbolIn) : symbol(symbolIn) {}
+        constexpr SymbolOrVar(VarPointer varIn) : var(varIn) {}
+
+        const TSymbol *symbol;
+        VarPointer var;
+    };
+
+    uint16_t mIsDesktop : 1;
+    uint16_t mIsVar : 1;
+    uint16_t mVersion : 14;
+    uint8_t mShaders;
+    uint8_t mExtensionIndex;
+    SymbolOrVar mSymbolOrVar;
+};
+
+constexpr SymbolRule::SymbolRule(Spec spec,
+                                 int version,
+                                 Shader shaders,
+                                 size_t extensionIndex,
+                                 const TSymbol *symbol)
+    : mIsDesktop(spec == Spec::GLSL ? 1u : 0u),
+      mIsVar(0u),
+      mVersion(static_cast<uint16_t>(version)),
+      mShaders(static_cast<uint8_t>(shaders)),
+      mExtensionIndex(extensionIndex),
+      mSymbolOrVar(symbol)
+{}
+
+constexpr SymbolRule::SymbolRule(Spec spec,
+                                 int version,
+                                 Shader shaders,
+                                 size_t extensionIndex,
+                                 VarPointer resourceVar)
+    : mIsDesktop(spec == Spec::GLSL ? 1u : 0u),
+      mIsVar(1u),
+      mVersion(static_cast<uint16_t>(version)),
+      mShaders(static_cast<uint8_t>(shaders)),
+      mExtensionIndex(extensionIndex),
+      mSymbolOrVar(resourceVar)
+{}
+
+template <Spec spec, int version, Shader shaders, size_t extensionIndex, typename T>
+// static
+constexpr SymbolRule SymbolRule::Get(T value)
+{
+    static_assert(version < 0x4000u, "version OOR");
+    static_assert(static_cast<uint8_t>(shaders) < 0xFFu, "shaders OOR");
+    static_assert(static_cast<uint8_t>(extensionIndex) < 0xFF, "extensionIndex OOR");
+    return SymbolRule(spec, version, shaders, extensionIndex, value);
+}
+
+const TSymbol *FindMangledBuiltIn(ShShaderSpec shaderSpec,
+                                  int shaderVersion,
+                                  sh::GLenum shaderType,
+                                  const ShBuiltInResources &resources,
+                                  const TSymbolTableBase &symbolTable,
+                                  const SymbolRule *rules,
+                                  uint16_t startIndex,
+                                  uint16_t endIndex);
+
+class UnmangledEntry
+{
+  public:
+    constexpr UnmangledEntry(const char *name,
+                             TExtension esslExtension,
+                             TExtension glslExtension,
                              int esslVersion,
                              int glslVersion,
-                             Shader shaderType)
-        : name(std::move(name)),
-          esslUnmangled(esslUnmangled),
-          glslUnmangled(glslUnmangled),
-          esslVersion(esslVersion),
-          glslVersion(glslVersion),
-          shaderType(shaderType)
-    {}
+                             Shader shaderType);
 
-    ImmutableString name;
-    const UnmangledBuiltIn *esslUnmangled;
-    const UnmangledBuiltIn *glslUnmangled;
-    int esslVersion;
-    int glslVersion;
-    Shader shaderType;
+    bool matches(const ImmutableString &name,
+                 ShShaderSpec shaderSpec,
+                 int shaderVersion,
+                 sh::GLenum shaderType,
+                 const TExtensionBehavior &extensions) const;
+
+  private:
+    const char *mName;
+    uint8_t mESSLExtension;
+    uint8_t mGLSLExtension;
+    uint8_t mShaderType;
+    uint16_t mESSLVersion;
+    uint16_t mGLSLVersion;
 };
 
+constexpr UnmangledEntry::UnmangledEntry(const char *name,
+                                         TExtension esslExtension,
+                                         TExtension glslExtension,
+                                         int esslVersion,
+                                         int glslVersion,
+                                         Shader shaderType)
+    : mName(name),
+      mESSLExtension(static_cast<uint8_t>(esslExtension)),
+      mGLSLExtension(static_cast<uint8_t>(glslExtension)),
+      mShaderType(static_cast<uint8_t>(shaderType)),
+      mESSLVersion(esslVersion < 0 ? std::numeric_limits<uint16_t>::max()
+                                   : static_cast<uint16_t>(esslVersion)),
+      mGLSLVersion(glslVersion < 0 ? std::numeric_limits<uint16_t>::max()
+                                   : static_cast<uint16_t>(glslVersion))
+{}
+
 class TSymbolTable : angle::NonCopyable, TSymbolTableBase
 {
   public:
@@ -242,8 +286,9 @@
     const TSymbolUniqueId nextUniqueId() { return TSymbolUniqueId(this); }
 
     // Gets the built-in accessible by a shader with the specified version, if any.
-    const UnmangledBuiltIn *getUnmangledBuiltInForShaderVersion(const ImmutableString &name,
-                                                                int shaderVersion);
+    bool isUnmangledBuiltInName(const ImmutableString &name,
+                                int shaderVersion,
+                                const TExtensionBehavior &extensions) const;
 
     void initializeBuiltIns(sh::GLenum type,
                             ShShaderSpec spec,
@@ -273,12 +318,6 @@
 
     VariableMetadata *getOrCreateVariableMetadata(const TVariable &variable);
 
-    const TSymbol *getSymbol(SymbolEntry entry, const ImmutableString &name, int version) const;
-
-    const UnmangledBuiltIn *getUnmangled(UnmangledEntry entry,
-                                         const ImmutableString &name,
-                                         int version) const;
-
     std::vector<std::unique_ptr<TSymbolTableLevel>> mTable;
 
     // There's one precision stack level for predefined precisions and then one level for each scope
diff --git a/Source/ThirdParty/ANGLE/src/compiler/translator/SymbolTable_ESSL_autogen.cpp b/Source/ThirdParty/ANGLE/src/compiler/translator/SymbolTable_ESSL_autogen.cpp
index 5518373..0da89e1 100644
--- a/Source/ThirdParty/ANGLE/src/compiler/translator/SymbolTable_ESSL_autogen.cpp
+++ b/Source/ThirdParty/ANGLE/src/compiler/translator/SymbolTable_ESSL_autogen.cpp
@@ -20,6 +20,8 @@
 
 namespace sh
 {
+using Resources = ShBuiltInResources;
+using TableBase = TSymbolTableBase;
 
 // Since some of the BuiltInId declarations are used outside of constexpr expressions, we need to
 // have these definitions without an initializer. C++17 should eventually remove the need for this.
@@ -1260,790 +1262,765 @@
 namespace BuiltInVariable
 {
 
-constexpr const TVariable kVar_angle_BaseInstance(
+constexpr const TVariable kangle_BaseInstance(
     BuiltInId::angle_BaseInstance,
     BuiltInName::angle_BaseInstance,
     SymbolType::BuiltIn,
     TExtension::ANGLE_base_vertex_base_instance,
     StaticType::Get<EbtInt, EbpHigh, EvqBaseInstance, 1, 1>());
-constexpr const TVariable kVar_angle_BaseVertex(
+constexpr const TVariable kangle_BaseVertex(
     BuiltInId::angle_BaseVertex,
     BuiltInName::angle_BaseVertex,
     SymbolType::BuiltIn,
     TExtension::ANGLE_base_vertex_base_instance,
     StaticType::Get<EbtInt, EbpHigh, EvqBaseVertex, 1, 1>());
-constexpr const TVariable kVar_gl_BaseInstance(
+constexpr const TVariable kgl_BaseInstance(
     BuiltInId::gl_BaseInstance,
     BuiltInName::gl_BaseInstance,
     SymbolType::BuiltIn,
     TExtension::ANGLE_base_vertex_base_instance,
     StaticType::Get<EbtInt, EbpHigh, EvqBaseInstance, 1, 1>());
-constexpr const TVariable kVar_gl_BaseVertex(
-    BuiltInId::gl_BaseVertex,
-    BuiltInName::gl_BaseVertex,
-    SymbolType::BuiltIn,
-    TExtension::ANGLE_base_vertex_base_instance,
-    StaticType::Get<EbtInt, EbpHigh, EvqBaseVertex, 1, 1>());
-constexpr const TVariable kVar_gl_DrawID(BuiltInId::gl_DrawID,
-                                         BuiltInName::gl_DrawID,
+constexpr const TVariable kgl_BaseVertex(BuiltInId::gl_BaseVertex,
+                                         BuiltInName::gl_BaseVertex,
                                          SymbolType::BuiltIn,
-                                         TExtension::ANGLE_multi_draw,
-                                         StaticType::Get<EbtInt, EbpHigh, EvqDrawID, 1, 1>());
-constexpr const TVariable kVar_gl_FragColor(
-    BuiltInId::gl_FragColor,
-    BuiltInName::gl_FragColor,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtFloat, EbpMedium, EvqFragColor, 4, 1>());
-constexpr const TVariable kVar_gl_FragCoord(
-    BuiltInId::gl_FragCoord,
-    BuiltInName::gl_FragCoord,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtFloat, EbpMedium, EvqFragCoord, 4, 1>());
-constexpr const TVariable kVar_gl_FragDepth(
-    BuiltInId::gl_FragDepth,
-    BuiltInName::gl_FragDepth,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtFloat, EbpHigh, EvqFragDepth, 1, 1>());
-constexpr const TVariable kVar_gl_FrontFacing(
+                                         TExtension::ANGLE_base_vertex_base_instance,
+                                         StaticType::Get<EbtInt, EbpHigh, EvqBaseVertex, 1, 1>());
+constexpr const TVariable kgl_DrawID(BuiltInId::gl_DrawID,
+                                     BuiltInName::gl_DrawID,
+                                     SymbolType::BuiltIn,
+                                     TExtension::ANGLE_multi_draw,
+                                     StaticType::Get<EbtInt, EbpHigh, EvqDrawID, 1, 1>());
+constexpr const TVariable kgl_FragColor(BuiltInId::gl_FragColor,
+                                        BuiltInName::gl_FragColor,
+                                        SymbolType::BuiltIn,
+                                        TExtension::UNDEFINED,
+                                        StaticType::Get<EbtFloat, EbpMedium, EvqFragColor, 4, 1>());
+constexpr const TVariable kgl_FragCoord(BuiltInId::gl_FragCoord,
+                                        BuiltInName::gl_FragCoord,
+                                        SymbolType::BuiltIn,
+                                        TExtension::UNDEFINED,
+                                        StaticType::Get<EbtFloat, EbpMedium, EvqFragCoord, 4, 1>());
+constexpr const TVariable kgl_FragDepth(BuiltInId::gl_FragDepth,
+                                        BuiltInName::gl_FragDepth,
+                                        SymbolType::BuiltIn,
+                                        TExtension::UNDEFINED,
+                                        StaticType::Get<EbtFloat, EbpHigh, EvqFragDepth, 1, 1>());
+constexpr const TVariable kgl_FrontFacing(
     BuiltInId::gl_FrontFacing,
     BuiltInName::gl_FrontFacing,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtBool, EbpUndefined, EvqFrontFacing, 1, 1>());
-constexpr const TVariable kVar_gl_GlobalInvocationID(
+constexpr const TVariable kgl_GlobalInvocationID(
     BuiltInId::gl_GlobalInvocationID,
     BuiltInName::gl_GlobalInvocationID,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobalInvocationID, 3, 1>());
-constexpr const TVariable kVar_gl_InstanceID(
-    BuiltInId::gl_InstanceID,
-    BuiltInName::gl_InstanceID,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtInt, EbpHigh, EvqInstanceID, 1, 1>());
-constexpr const TVariable kVar_gl_InstanceIndex(
+constexpr const TVariable kgl_InstanceID(BuiltInId::gl_InstanceID,
+                                         BuiltInName::gl_InstanceID,
+                                         SymbolType::BuiltIn,
+                                         TExtension::UNDEFINED,
+                                         StaticType::Get<EbtInt, EbpHigh, EvqInstanceID, 1, 1>());
+constexpr const TVariable kgl_InstanceIndex(
     BuiltInId::gl_InstanceIndex,
     BuiltInName::gl_InstanceIndex,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtInt, EbpHigh, EvqInstanceID, 1, 1>());
-constexpr const TVariable kVar_gl_InvocationID(
+constexpr const TVariable kgl_InvocationID(
     BuiltInId::gl_InvocationID,
     BuiltInName::gl_InvocationID,
     SymbolType::BuiltIn,
     TExtension::EXT_geometry_shader,
     StaticType::Get<EbtInt, EbpHigh, EvqInvocationID, 1, 1>());
-constexpr const TVariable kVar_gl_LastFragColor(
+constexpr const TVariable kgl_LastFragColor(
     BuiltInId::gl_LastFragColor,
     BuiltInName::gl_LastFragColor,
     SymbolType::BuiltIn,
     TExtension::NV_shader_framebuffer_fetch,
     StaticType::Get<EbtFloat, EbpMedium, EvqLastFragColor, 4, 1>());
-constexpr const TVariable kVar_gl_LastFragColorARM(
+constexpr const TVariable kgl_LastFragColorARM(
     BuiltInId::gl_LastFragColorARM,
     BuiltInName::gl_LastFragColorARM,
     SymbolType::BuiltIn,
     TExtension::ARM_shader_framebuffer_fetch,
     StaticType::Get<EbtFloat, EbpMedium, EvqLastFragColor, 4, 1>());
-constexpr const TVariable kVar_gl_Layer(BuiltInId::gl_Layer,
-                                        BuiltInName::gl_Layer,
-                                        SymbolType::BuiltIn,
-                                        TExtension::EXT_geometry_shader,
-                                        StaticType::Get<EbtInt, EbpHigh, EvqLayer, 1, 1>());
-constexpr const TVariable kVar_gl_LayerGS(BuiltInId::gl_LayerGS,
-                                          BuiltInName::gl_Layer,
-                                          SymbolType::BuiltIn,
-                                          TExtension::EXT_geometry_shader,
-                                          StaticType::Get<EbtInt, EbpHigh, EvqLayer, 1, 1>());
-constexpr const TVariable kVar_gl_LayerVS(BuiltInId::gl_LayerVS,
-                                          BuiltInName::gl_Layer,
-                                          SymbolType::BuiltIn,
-                                          TExtension::UNDEFINED,
-                                          StaticType::Get<EbtInt, EbpHigh, EvqLayer, 1, 1>());
-constexpr const TVariable kVar_gl_LocalInvocationID(
+constexpr const TVariable kgl_Layer(BuiltInId::gl_Layer,
+                                    BuiltInName::gl_Layer,
+                                    SymbolType::BuiltIn,
+                                    TExtension::EXT_geometry_shader,
+                                    StaticType::Get<EbtInt, EbpHigh, EvqLayer, 1, 1>());
+constexpr const TVariable kgl_LayerGS(BuiltInId::gl_LayerGS,
+                                      BuiltInName::gl_Layer,
+                                      SymbolType::BuiltIn,
+                                      TExtension::EXT_geometry_shader,
+                                      StaticType::Get<EbtInt, EbpHigh, EvqLayer, 1, 1>());
+constexpr const TVariable kgl_LayerVS(BuiltInId::gl_LayerVS,
+                                      BuiltInName::gl_Layer,
+                                      SymbolType::BuiltIn,
+                                      TExtension::UNDEFINED,
+                                      StaticType::Get<EbtInt, EbpHigh, EvqLayer, 1, 1>());
+constexpr const TVariable kgl_LocalInvocationID(
     BuiltInId::gl_LocalInvocationID,
     BuiltInName::gl_LocalInvocationID,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtUInt, EbpUndefined, EvqLocalInvocationID, 3, 1>());
-constexpr const TVariable kVar_gl_LocalInvocationIndex(
+constexpr const TVariable kgl_LocalInvocationIndex(
     BuiltInId::gl_LocalInvocationIndex,
     BuiltInName::gl_LocalInvocationIndex,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtUInt, EbpUndefined, EvqLocalInvocationIndex, 1, 1>());
-constexpr const TVariable kVar_gl_NumWorkGroups(
+constexpr const TVariable kgl_NumWorkGroups(
     BuiltInId::gl_NumWorkGroups,
     BuiltInName::gl_NumWorkGroups,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtUInt, EbpUndefined, EvqNumWorkGroups, 3, 1>());
-constexpr const TVariable kVar_gl_PointCoord(
+constexpr const TVariable kgl_PointCoord(
     BuiltInId::gl_PointCoord,
     BuiltInName::gl_PointCoord,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtFloat, EbpMedium, EvqPointCoord, 2, 1>());
-constexpr const TVariable kVar_gl_PointSize(
-    BuiltInId::gl_PointSize,
-    BuiltInName::gl_PointSize,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtFloat, EbpMedium, EvqPointSize, 1, 1>());
-constexpr const TVariable kVar_gl_Position(BuiltInId::gl_Position,
-                                           BuiltInName::gl_Position,
-                                           SymbolType::BuiltIn,
-                                           TExtension::UNDEFINED,
-                                           StaticType::Get<EbtFloat, EbpHigh, EvqPosition, 4, 1>());
-constexpr const TVariable kVar_gl_PrimitiveID(
-    BuiltInId::gl_PrimitiveID,
-    BuiltInName::gl_PrimitiveID,
-    SymbolType::BuiltIn,
-    TExtension::EXT_geometry_shader,
-    StaticType::Get<EbtInt, EbpHigh, EvqPrimitiveID, 1, 1>());
-constexpr const TVariable kVar_gl_PrimitiveIDGS(
+constexpr const TVariable kgl_PointSize(BuiltInId::gl_PointSize,
+                                        BuiltInName::gl_PointSize,
+                                        SymbolType::BuiltIn,
+                                        TExtension::UNDEFINED,
+                                        StaticType::Get<EbtFloat, EbpMedium, EvqPointSize, 1, 1>());
+constexpr const TVariable kgl_Position(BuiltInId::gl_Position,
+                                       BuiltInName::gl_Position,
+                                       SymbolType::BuiltIn,
+                                       TExtension::UNDEFINED,
+                                       StaticType::Get<EbtFloat, EbpHigh, EvqPosition, 4, 1>());
+constexpr const TVariable kgl_PrimitiveID(BuiltInId::gl_PrimitiveID,
+                                          BuiltInName::gl_PrimitiveID,
+                                          SymbolType::BuiltIn,
+                                          TExtension::EXT_geometry_shader,
+                                          StaticType::Get<EbtInt, EbpHigh, EvqPrimitiveID, 1, 1>());
+constexpr const TVariable kgl_PrimitiveIDGS(
     BuiltInId::gl_PrimitiveIDGS,
     BuiltInName::gl_PrimitiveID,
     SymbolType::BuiltIn,
     TExtension::EXT_geometry_shader,
     StaticType::Get<EbtInt, EbpHigh, EvqPrimitiveID, 1, 1>());
-constexpr const TVariable kVar_gl_PrimitiveIDIn(
+constexpr const TVariable kgl_PrimitiveIDIn(
     BuiltInId::gl_PrimitiveIDIn,
     BuiltInName::gl_PrimitiveIDIn,
     SymbolType::BuiltIn,
     TExtension::EXT_geometry_shader,
     StaticType::Get<EbtInt, EbpHigh, EvqPrimitiveIDIn, 1, 1>());
-constexpr const TVariable kVar_gl_SecondaryFragColorEXT(
+constexpr const TVariable kgl_SecondaryFragColorEXT(
     BuiltInId::gl_SecondaryFragColorEXT,
     BuiltInName::gl_SecondaryFragColorEXT,
     SymbolType::BuiltIn,
     TExtension::EXT_blend_func_extended,
     StaticType::Get<EbtFloat, EbpMedium, EvqSecondaryFragColorEXT, 4, 1>());
-constexpr const TVariable kVar_gl_VertexID(BuiltInId::gl_VertexID,
-                                           BuiltInName::gl_VertexID,
-                                           SymbolType::BuiltIn,
-                                           TExtension::UNDEFINED,
-                                           StaticType::Get<EbtInt, EbpHigh, EvqVertexID, 1, 1>());
-constexpr const TVariable kVar_gl_VertexIndex(
-    BuiltInId::gl_VertexIndex,
-    BuiltInName::gl_VertexIndex,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtInt, EbpHigh, EvqVertexID, 1, 1>());
-constexpr const TVariable kVar_gl_ViewID_OVR(
-    BuiltInId::gl_ViewID_OVR,
-    BuiltInName::gl_ViewID_OVR,
-    SymbolType::BuiltIn,
-    TExtension::OVR_multiview,
-    StaticType::Get<EbtUInt, EbpHigh, EvqViewIDOVR, 1, 1>());
-constexpr const TVariable kVar_gl_ViewportIndex(
+constexpr const TVariable kgl_VertexID(BuiltInId::gl_VertexID,
+                                       BuiltInName::gl_VertexID,
+                                       SymbolType::BuiltIn,
+                                       TExtension::UNDEFINED,
+                                       StaticType::Get<EbtInt, EbpHigh, EvqVertexID, 1, 1>());
+constexpr const TVariable kgl_VertexIndex(BuiltInId::gl_VertexIndex,
+                                          BuiltInName::gl_VertexIndex,
+                                          SymbolType::BuiltIn,
+                                          TExtension::UNDEFINED,
+                                          StaticType::Get<EbtInt, EbpHigh, EvqVertexID, 1, 1>());
+constexpr const TVariable kgl_ViewID_OVR(BuiltInId::gl_ViewID_OVR,
+                                         BuiltInName::gl_ViewID_OVR,
+                                         SymbolType::BuiltIn,
+                                         TExtension::OVR_multiview,
+                                         StaticType::Get<EbtUInt, EbpHigh, EvqViewIDOVR, 1, 1>());
+constexpr const TVariable kgl_ViewportIndex(
     BuiltInId::gl_ViewportIndex,
     BuiltInName::gl_ViewportIndex,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtInt, EbpHigh, EvqViewportIndex, 1, 1>());
-constexpr const TVariable kVar_gl_WorkGroupID(
+constexpr const TVariable kgl_WorkGroupID(
     BuiltInId::gl_WorkGroupID,
     BuiltInName::gl_WorkGroupID,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtUInt, EbpUndefined, EvqWorkGroupID, 3, 1>());
-constexpr const TVariable kVar_gl_WorkGroupSize(
+constexpr const TVariable kgl_WorkGroupSize(
     BuiltInId::gl_WorkGroupSize,
     BuiltInName::gl_WorkGroupSize,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtUInt, EbpUndefined, EvqWorkGroupSize, 3, 1>());
-constexpr const TVariable kVar_pt00B(BuiltInId::pt00B,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00D(BuiltInId::pt00D,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00E(BuiltInId::pt00E,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00F(BuiltInId::pt00F,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00G(
+constexpr const TVariable kpt00B(BuiltInId::pt00B,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt00D(BuiltInId::pt00D,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt00E(BuiltInId::pt00E,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt00F(BuiltInId::pt00F,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt00G(
     BuiltInId::pt00G,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtAtomicCounter, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00H(
+constexpr const TVariable kpt00H(
     BuiltInId::pt00H,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtYuvCscStandardEXT, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00I(
-    BuiltInId::pt00I,
-    BuiltInName::_empty,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtSampler2D, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00J(
-    BuiltInId::pt00J,
-    BuiltInName::_empty,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtSampler3D, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00K(
-    BuiltInId::pt00K,
-    BuiltInName::_empty,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtSamplerCube, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00L(
+constexpr const TVariable kpt00I(BuiltInId::pt00I,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtSampler2D, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt00J(BuiltInId::pt00J,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtSampler3D, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt00K(BuiltInId::pt00K,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtSamplerCube, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt00L(
     BuiltInId::pt00L,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtSampler2DArray, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00M(
+constexpr const TVariable kpt00M(
     BuiltInId::pt00M,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtSamplerExternalOES, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00N(
+constexpr const TVariable kpt00N(
     BuiltInId::pt00N,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtSamplerExternal2DY2YEXT, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00O(
+constexpr const TVariable kpt00O(
     BuiltInId::pt00O,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtSampler2DRect, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00P(
-    BuiltInId::pt00P,
-    BuiltInName::_empty,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtSampler2DMS, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00Q(
+constexpr const TVariable kpt00P(BuiltInId::pt00P,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtSampler2DMS, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt00Q(
     BuiltInId::pt00Q,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtSampler2DMSArray, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00R(
-    BuiltInId::pt00R,
-    BuiltInName::_empty,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtISampler2D, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00S(
-    BuiltInId::pt00S,
-    BuiltInName::_empty,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtISampler3D, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00T(
-    BuiltInId::pt00T,
-    BuiltInName::_empty,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtISamplerCube, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00U(
+constexpr const TVariable kpt00R(BuiltInId::pt00R,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtISampler2D, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt00S(BuiltInId::pt00S,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtISampler3D, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt00T(BuiltInId::pt00T,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtISamplerCube, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt00U(
     BuiltInId::pt00U,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtISampler2DArray, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00V(
-    BuiltInId::pt00V,
-    BuiltInName::_empty,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtISampler2DMS, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00W(
+constexpr const TVariable kpt00V(BuiltInId::pt00V,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtISampler2DMS, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt00W(
     BuiltInId::pt00W,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtISampler2DMSArray, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00X(
-    BuiltInId::pt00X,
-    BuiltInName::_empty,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtUSampler2D, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00Y(
-    BuiltInId::pt00Y,
-    BuiltInName::_empty,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtUSampler3D, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00Z(
-    BuiltInId::pt00Z,
-    BuiltInName::_empty,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtUSamplerCube, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00a(
+constexpr const TVariable kpt00X(BuiltInId::pt00X,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtUSampler2D, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt00Y(BuiltInId::pt00Y,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtUSampler3D, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt00Z(BuiltInId::pt00Z,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtUSamplerCube, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt00a(
     BuiltInId::pt00a,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtUSampler2DArray, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00b(
-    BuiltInId::pt00b,
-    BuiltInName::_empty,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtUSampler2DMS, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00c(
+constexpr const TVariable kpt00b(BuiltInId::pt00b,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtUSampler2DMS, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt00c(
     BuiltInId::pt00c,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtUSampler2DMSArray, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00d(
+constexpr const TVariable kpt00d(
     BuiltInId::pt00d,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtSampler2DShadow, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00e(
+constexpr const TVariable kpt00e(
     BuiltInId::pt00e,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtSamplerCubeShadow, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00f(
+constexpr const TVariable kpt00f(
     BuiltInId::pt00f,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtSampler2DArrayShadow, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00y(BuiltInId::pt00y,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtImage2D, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00z(BuiltInId::pt00z,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtIImage2D, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt01A(BuiltInId::pt01A,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtUImage2D, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt01B(BuiltInId::pt01B,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtImage3D, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt01C(BuiltInId::pt01C,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtIImage3D, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt01D(BuiltInId::pt01D,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtUImage3D, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt01E(
-    BuiltInId::pt01E,
-    BuiltInName::_empty,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtImage2DArray, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt01F(
+constexpr const TVariable kpt00y(BuiltInId::pt00y,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtImage2D, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt00z(BuiltInId::pt00z,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtIImage2D, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt01A(BuiltInId::pt01A,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtUImage2D, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt01B(BuiltInId::pt01B,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtImage3D, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt01C(BuiltInId::pt01C,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtIImage3D, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt01D(BuiltInId::pt01D,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtUImage3D, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt01E(BuiltInId::pt01E,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtImage2DArray, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt01F(
     BuiltInId::pt01F,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtIImage2DArray, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt01G(
+constexpr const TVariable kpt01G(
     BuiltInId::pt01G,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtUImage2DArray, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt01H(
-    BuiltInId::pt01H,
-    BuiltInName::_empty,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtImageCube, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt01I(
-    BuiltInId::pt01I,
-    BuiltInName::_empty,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtIImageCube, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt01J(
-    BuiltInId::pt01J,
-    BuiltInName::_empty,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtUImageCube, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt10B(BuiltInId::pt10B,
+constexpr const TVariable kpt01H(BuiltInId::pt01H,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtImageCube, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt01I(BuiltInId::pt01I,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtIImageCube, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt01J(BuiltInId::pt01J,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtUImageCube, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt10B(BuiltInId::pt10B,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>());
+constexpr const TVariable kpt10D(BuiltInId::pt10D,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>());
+constexpr const TVariable kpt10E(BuiltInId::pt10E,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>());
+constexpr const TVariable kpt10F(BuiltInId::pt10F,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>());
+constexpr const TVariable kpt20B(BuiltInId::pt20B,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>());
+constexpr const TVariable kpt20D(BuiltInId::pt20D,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>());
+constexpr const TVariable kpt20E(BuiltInId::pt20E,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>());
+constexpr const TVariable kpt20F(BuiltInId::pt20F,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>());
+constexpr const TVariable kpt30B(BuiltInId::pt30B,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>());
+constexpr const TVariable kpt30D(BuiltInId::pt30D,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>());
+constexpr const TVariable kpt30E(BuiltInId::pt30E,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>());
+constexpr const TVariable kpt30F(BuiltInId::pt30F,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>());
+constexpr const TVariable kpt50B(BuiltInId::pt50B,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 2>());
+constexpr const TVariable kpt60B(BuiltInId::pt60B,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 2>());
+constexpr const TVariable kpt70B(BuiltInId::pt70B,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 2>());
+constexpr const TVariable kpt90B(BuiltInId::pt90B,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 3>());
+constexpr const TVariable kptA0B(BuiltInId::ptA0B,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 3>());
+constexpr const TVariable kptB0B(BuiltInId::ptB0B,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 3>());
+constexpr const TVariable kptD0B(BuiltInId::ptD0B,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 4>());
+constexpr const TVariable kptE0B(BuiltInId::ptE0B,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 4>());
+constexpr const TVariable kptF0B(BuiltInId::ptF0B,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 4>());
+constexpr const TVariable kpt_io_00D(BuiltInId::pt_io_00D,
                                      BuiltInName::_empty,
                                      SymbolType::BuiltIn,
                                      TExtension::UNDEFINED,
-                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>());
-constexpr const TVariable kVar_pt10D(BuiltInId::pt10D,
+                                     StaticType::Get<EbtInt, EbpUndefined, EvqInOut, 1, 1>());
+constexpr const TVariable kpt_io_00E(BuiltInId::pt_io_00E,
                                      BuiltInName::_empty,
                                      SymbolType::BuiltIn,
                                      TExtension::UNDEFINED,
-                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>());
-constexpr const TVariable kVar_pt10E(BuiltInId::pt10E,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>());
-constexpr const TVariable kVar_pt10F(BuiltInId::pt10F,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>());
-constexpr const TVariable kVar_pt20B(BuiltInId::pt20B,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>());
-constexpr const TVariable kVar_pt20D(BuiltInId::pt20D,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>());
-constexpr const TVariable kVar_pt20E(BuiltInId::pt20E,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>());
-constexpr const TVariable kVar_pt20F(BuiltInId::pt20F,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>());
-constexpr const TVariable kVar_pt30B(BuiltInId::pt30B,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>());
-constexpr const TVariable kVar_pt30D(BuiltInId::pt30D,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>());
-constexpr const TVariable kVar_pt30E(BuiltInId::pt30E,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>());
-constexpr const TVariable kVar_pt30F(BuiltInId::pt30F,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>());
-constexpr const TVariable kVar_pt50B(BuiltInId::pt50B,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 2>());
-constexpr const TVariable kVar_pt60B(BuiltInId::pt60B,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 2>());
-constexpr const TVariable kVar_pt70B(BuiltInId::pt70B,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 2>());
-constexpr const TVariable kVar_pt90B(BuiltInId::pt90B,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 3>());
-constexpr const TVariable kVar_ptA0B(BuiltInId::ptA0B,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 3>());
-constexpr const TVariable kVar_ptB0B(BuiltInId::ptB0B,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 3>());
-constexpr const TVariable kVar_ptD0B(BuiltInId::ptD0B,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 4>());
-constexpr const TVariable kVar_ptE0B(BuiltInId::ptE0B,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 4>());
-constexpr const TVariable kVar_ptF0B(BuiltInId::ptF0B,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 4>());
-constexpr const TVariable kVar_pt_io_00D(BuiltInId::pt_io_00D,
-                                         BuiltInName::_empty,
-                                         SymbolType::BuiltIn,
-                                         TExtension::UNDEFINED,
-                                         StaticType::Get<EbtInt, EbpUndefined, EvqInOut, 1, 1>());
-constexpr const TVariable kVar_pt_io_00E(BuiltInId::pt_io_00E,
-                                         BuiltInName::_empty,
-                                         SymbolType::BuiltIn,
-                                         TExtension::UNDEFINED,
-                                         StaticType::Get<EbtUInt, EbpUndefined, EvqInOut, 1, 1>());
-constexpr const TVariable kVar_pt_o_00B(BuiltInId::pt_o_00B,
-                                        BuiltInName::_empty,
-                                        SymbolType::BuiltIn,
-                                        TExtension::UNDEFINED,
-                                        StaticType::Get<EbtFloat, EbpUndefined, EvqOut, 1, 1>());
-constexpr const TVariable kVar_pt_o_00D(BuiltInId::pt_o_00D,
-                                        BuiltInName::_empty,
-                                        SymbolType::BuiltIn,
-                                        TExtension::UNDEFINED,
-                                        StaticType::Get<EbtInt, EbpUndefined, EvqOut, 1, 1>());
-constexpr const TVariable kVar_pt_o_00E(BuiltInId::pt_o_00E,
-                                        BuiltInName::_empty,
-                                        SymbolType::BuiltIn,
-                                        TExtension::UNDEFINED,
-                                        StaticType::Get<EbtUInt, EbpUndefined, EvqOut, 1, 1>());
-constexpr const TVariable kVar_pt_o_10B(BuiltInId::pt_o_10B,
-                                        BuiltInName::_empty,
-                                        SymbolType::BuiltIn,
-                                        TExtension::UNDEFINED,
-                                        StaticType::Get<EbtFloat, EbpUndefined, EvqOut, 2, 1>());
-constexpr const TVariable kVar_pt_o_10D(BuiltInId::pt_o_10D,
-                                        BuiltInName::_empty,
-                                        SymbolType::BuiltIn,
-                                        TExtension::UNDEFINED,
-                                        StaticType::Get<EbtInt, EbpUndefined, EvqOut, 2, 1>());
-constexpr const TVariable kVar_pt_o_10E(BuiltInId::pt_o_10E,
-                                        BuiltInName::_empty,
-                                        SymbolType::BuiltIn,
-                                        TExtension::UNDEFINED,
-                                        StaticType::Get<EbtUInt, EbpUndefined, EvqOut, 2, 1>());
-constexpr const TVariable kVar_pt_o_20B(BuiltInId::pt_o_20B,
-                                        BuiltInName::_empty,
-                                        SymbolType::BuiltIn,
-                                        TExtension::UNDEFINED,
-                                        StaticType::Get<EbtFloat, EbpUndefined, EvqOut, 3, 1>());
-constexpr const TVariable kVar_pt_o_20D(BuiltInId::pt_o_20D,
-                                        BuiltInName::_empty,
-                                        SymbolType::BuiltIn,
-                                        TExtension::UNDEFINED,
-                                        StaticType::Get<EbtInt, EbpUndefined, EvqOut, 3, 1>());
-constexpr const TVariable kVar_pt_o_20E(BuiltInId::pt_o_20E,
-                                        BuiltInName::_empty,
-                                        SymbolType::BuiltIn,
-                                        TExtension::UNDEFINED,
-                                        StaticType::Get<EbtUInt, EbpUndefined, EvqOut, 3, 1>());
-constexpr const TVariable kVar_pt_o_30B(BuiltInId::pt_o_30B,
-                                        BuiltInName::_empty,
-                                        SymbolType::BuiltIn,
-                                        TExtension::UNDEFINED,
-                                        StaticType::Get<EbtFloat, EbpUndefined, EvqOut, 4, 1>());
-constexpr const TVariable kVar_pt_o_30D(BuiltInId::pt_o_30D,
-                                        BuiltInName::_empty,
-                                        SymbolType::BuiltIn,
-                                        TExtension::UNDEFINED,
-                                        StaticType::Get<EbtInt, EbpUndefined, EvqOut, 4, 1>());
-constexpr const TVariable kVar_pt_o_30E(BuiltInId::pt_o_30E,
-                                        BuiltInName::_empty,
-                                        SymbolType::BuiltIn,
-                                        TExtension::UNDEFINED,
-                                        StaticType::Get<EbtUInt, EbpUndefined, EvqOut, 4, 1>());
+                                     StaticType::Get<EbtUInt, EbpUndefined, EvqInOut, 1, 1>());
+constexpr const TVariable kpt_o_00B(BuiltInId::pt_o_00B,
+                                    BuiltInName::_empty,
+                                    SymbolType::BuiltIn,
+                                    TExtension::UNDEFINED,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqOut, 1, 1>());
+constexpr const TVariable kpt_o_00D(BuiltInId::pt_o_00D,
+                                    BuiltInName::_empty,
+                                    SymbolType::BuiltIn,
+                                    TExtension::UNDEFINED,
+                                    StaticType::Get<EbtInt, EbpUndefined, EvqOut, 1, 1>());
+constexpr const TVariable kpt_o_00E(BuiltInId::pt_o_00E,
+                                    BuiltInName::_empty,
+                                    SymbolType::BuiltIn,
+                                    TExtension::UNDEFINED,
+                                    StaticType::Get<EbtUInt, EbpUndefined, EvqOut, 1, 1>());
+constexpr const TVariable kpt_o_10B(BuiltInId::pt_o_10B,
+                                    BuiltInName::_empty,
+                                    SymbolType::BuiltIn,
+                                    TExtension::UNDEFINED,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqOut, 2, 1>());
+constexpr const TVariable kpt_o_10D(BuiltInId::pt_o_10D,
+                                    BuiltInName::_empty,
+                                    SymbolType::BuiltIn,
+                                    TExtension::UNDEFINED,
+                                    StaticType::Get<EbtInt, EbpUndefined, EvqOut, 2, 1>());
+constexpr const TVariable kpt_o_10E(BuiltInId::pt_o_10E,
+                                    BuiltInName::_empty,
+                                    SymbolType::BuiltIn,
+                                    TExtension::UNDEFINED,
+                                    StaticType::Get<EbtUInt, EbpUndefined, EvqOut, 2, 1>());
+constexpr const TVariable kpt_o_20B(BuiltInId::pt_o_20B,
+                                    BuiltInName::_empty,
+                                    SymbolType::BuiltIn,
+                                    TExtension::UNDEFINED,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqOut, 3, 1>());
+constexpr const TVariable kpt_o_20D(BuiltInId::pt_o_20D,
+                                    BuiltInName::_empty,
+                                    SymbolType::BuiltIn,
+                                    TExtension::UNDEFINED,
+                                    StaticType::Get<EbtInt, EbpUndefined, EvqOut, 3, 1>());
+constexpr const TVariable kpt_o_20E(BuiltInId::pt_o_20E,
+                                    BuiltInName::_empty,
+                                    SymbolType::BuiltIn,
+                                    TExtension::UNDEFINED,
+                                    StaticType::Get<EbtUInt, EbpUndefined, EvqOut, 3, 1>());
+constexpr const TVariable kpt_o_30B(BuiltInId::pt_o_30B,
+                                    BuiltInName::_empty,
+                                    SymbolType::BuiltIn,
+                                    TExtension::UNDEFINED,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqOut, 4, 1>());
+constexpr const TVariable kpt_o_30D(BuiltInId::pt_o_30D,
+                                    BuiltInName::_empty,
+                                    SymbolType::BuiltIn,
+                                    TExtension::UNDEFINED,
+                                    StaticType::Get<EbtInt, EbpUndefined, EvqOut, 4, 1>());
+constexpr const TVariable kpt_o_30E(BuiltInId::pt_o_30E,
+                                    BuiltInName::_empty,
+                                    SymbolType::BuiltIn,
+                                    TExtension::UNDEFINED,
+                                    StaticType::Get<EbtUInt, EbpUndefined, EvqOut, 4, 1>());
 
 const TVariable *angle_BaseInstance()
 {
-    return &kVar_angle_BaseInstance;
+    return &kangle_BaseInstance;
 }
 
 const TVariable *angle_BaseVertex()
 {
-    return &kVar_angle_BaseVertex;
+    return &kangle_BaseVertex;
 }
 
 const TVariable *gl_BaseInstance()
 {
-    return &kVar_gl_BaseInstance;
+    return &kgl_BaseInstance;
 }
 
 const TVariable *gl_BaseVertex()
 {
-    return &kVar_gl_BaseVertex;
+    return &kgl_BaseVertex;
 }
 
 const TVariable *gl_DrawID()
 {
-    return &kVar_gl_DrawID;
+    return &kgl_DrawID;
 }
 
 const TVariable *gl_FragColor()
 {
-    return &kVar_gl_FragColor;
+    return &kgl_FragColor;
 }
 
 const TVariable *gl_FragCoord()
 {
-    return &kVar_gl_FragCoord;
+    return &kgl_FragCoord;
 }
 
 const TVariable *gl_FragDepth()
 {
-    return &kVar_gl_FragDepth;
+    return &kgl_FragDepth;
 }
 
 const TVariable *gl_FrontFacing()
 {
-    return &kVar_gl_FrontFacing;
+    return &kgl_FrontFacing;
 }
 
 const TVariable *gl_GlobalInvocationID()
 {
-    return &kVar_gl_GlobalInvocationID;
+    return &kgl_GlobalInvocationID;
 }
 
 const TVariable *gl_InstanceID()
 {
-    return &kVar_gl_InstanceID;
+    return &kgl_InstanceID;
 }
 
 const TVariable *gl_InstanceIndex()
 {
-    return &kVar_gl_InstanceIndex;
+    return &kgl_InstanceIndex;
 }
 
 const TVariable *gl_InvocationID()
 {
-    return &kVar_gl_InvocationID;
+    return &kgl_InvocationID;
 }
 
 const TVariable *gl_LastFragColor()
 {
-    return &kVar_gl_LastFragColor;
+    return &kgl_LastFragColor;
 }
 
 const TVariable *gl_LastFragColorARM()
 {
-    return &kVar_gl_LastFragColorARM;
+    return &kgl_LastFragColorARM;
 }
 
 const TVariable *gl_Layer()
 {
-    return &kVar_gl_Layer;
+    return &kgl_Layer;
 }
 
 const TVariable *gl_LayerGS()
 {
-    return &kVar_gl_LayerGS;
+    return &kgl_LayerGS;
 }
 
 const TVariable *gl_LayerVS()
 {
-    return &kVar_gl_LayerVS;
+    return &kgl_LayerVS;
 }
 
 const TVariable *gl_LocalInvocationID()
 {
-    return &kVar_gl_LocalInvocationID;
+    return &kgl_LocalInvocationID;
 }
 
 const TVariable *gl_LocalInvocationIndex()
 {
-    return &kVar_gl_LocalInvocationIndex;
+    return &kgl_LocalInvocationIndex;
 }
 
 const TVariable *gl_NumWorkGroups()
 {
-    return &kVar_gl_NumWorkGroups;
+    return &kgl_NumWorkGroups;
 }
 
 const TVariable *gl_PointCoord()
 {
-    return &kVar_gl_PointCoord;
+    return &kgl_PointCoord;
 }
 
 const TVariable *gl_PointSize()
 {
-    return &kVar_gl_PointSize;
+    return &kgl_PointSize;
 }
 
 const TVariable *gl_Position()
 {
-    return &kVar_gl_Position;
+    return &kgl_Position;
 }
 
 const TVariable *gl_PrimitiveID()
 {
-    return &kVar_gl_PrimitiveID;
+    return &kgl_PrimitiveID;
 }
 
 const TVariable *gl_PrimitiveIDGS()
 {
-    return &kVar_gl_PrimitiveIDGS;
+    return &kgl_PrimitiveIDGS;
 }
 
 const TVariable *gl_PrimitiveIDIn()
 {
-    return &kVar_gl_PrimitiveIDIn;
+    return &kgl_PrimitiveIDIn;
 }
 
 const TVariable *gl_SecondaryFragColorEXT()
 {
-    return &kVar_gl_SecondaryFragColorEXT;
+    return &kgl_SecondaryFragColorEXT;
 }
 
 const TVariable *gl_VertexID()
 {
-    return &kVar_gl_VertexID;
+    return &kgl_VertexID;
 }
 
 const TVariable *gl_VertexIndex()
 {
-    return &kVar_gl_VertexIndex;
+    return &kgl_VertexIndex;
 }
 
 const TVariable *gl_ViewID_OVR()
 {
-    return &kVar_gl_ViewID_OVR;
+    return &kgl_ViewID_OVR;
 }
 
 const TVariable *gl_ViewportIndex()
 {
-    return &kVar_gl_ViewportIndex;
+    return &kgl_ViewportIndex;
 }
 
 const TVariable *gl_WorkGroupID()
 {
-    return &kVar_gl_WorkGroupID;
+    return &kgl_WorkGroupID;
 }
 
 const TVariable *gl_WorkGroupSize()
 {
-    return &kVar_gl_WorkGroupSize;
+    return &kgl_WorkGroupSize;
 }
 
 }  // namespace BuiltInVariable
@@ -2052,1341 +2029,1120 @@
 {
 
 constexpr const TVariable **empty        = nullptr;
-constexpr const TVariable *p00B00B00B[3] = {
-    &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00B00B00F[3] = {
-    &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt00F};
-constexpr const TVariable *p00B00B10B[3] = {
-    &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt10B};
-constexpr const TVariable *p00B00B20B[3] = {
-    &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt20B};
-constexpr const TVariable *p00B00B30B[3] = {
-    &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt30B};
-constexpr const TVariable *p00B00D[2]       = {&BuiltInVariable::kVar_pt00B,
-                                         &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00B10B[2]       = {&BuiltInVariable::kVar_pt00B,
-                                         &BuiltInVariable::kVar_pt10B};
-constexpr const TVariable *p00B20B[2]       = {&BuiltInVariable::kVar_pt00B,
-                                         &BuiltInVariable::kVar_pt20B};
-constexpr const TVariable *p00B30B[2]       = {&BuiltInVariable::kVar_pt00B,
-                                         &BuiltInVariable::kVar_pt30B};
-constexpr const TVariable *p00B_o_00B[2]    = {&BuiltInVariable::kVar_pt00B,
-                                            &BuiltInVariable::kVar_pt_o_00B};
-constexpr const TVariable *p00B_o_00D[2]    = {&BuiltInVariable::kVar_pt00B,
-                                            &BuiltInVariable::kVar_pt_o_00D};
-constexpr const TVariable *p00D00D00D00D[4] = {
-    &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D};
+constexpr const TVariable *p00B00B00B[3] = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt00B,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00B00B00F[3] = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt00B,
+                                            &BuiltInVariable::kpt00F};
+constexpr const TVariable *p00B00B10B[3] = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt00B,
+                                            &BuiltInVariable::kpt10B};
+constexpr const TVariable *p00B00B20B[3] = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt00B,
+                                            &BuiltInVariable::kpt20B};
+constexpr const TVariable *p00B00B30B[3] = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt00B,
+                                            &BuiltInVariable::kpt30B};
+constexpr const TVariable *p00B00D[2]    = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00B10B[2]    = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt10B};
+constexpr const TVariable *p00B20B[2]    = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt20B};
+constexpr const TVariable *p00B30B[2]    = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt30B};
+constexpr const TVariable *p00B_o_00B[2] = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt_o_00B};
+constexpr const TVariable *p00B_o_00D[2] = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt_o_00D};
+constexpr const TVariable *p00D00D00D00D[4] = {&BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
 constexpr const TVariable *p00D00D_o_00D_o_00D[4] = {
-    &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt_o_00D,
-    &BuiltInVariable::kVar_pt_o_00D};
-constexpr const TVariable *p00E00D00D[3] = {
-    &BuiltInVariable::kVar_pt00E, &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00E00E00D00D[4] = {
-    &BuiltInVariable::kVar_pt00E, &BuiltInVariable::kVar_pt00E, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00E00E00E[3] = {
-    &BuiltInVariable::kVar_pt00E, &BuiltInVariable::kVar_pt00E, &BuiltInVariable::kVar_pt00E};
+    &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D, &BuiltInVariable::kpt_o_00D,
+    &BuiltInVariable::kpt_o_00D};
+constexpr const TVariable *p00E00D00D[3]    = {&BuiltInVariable::kpt00E, &BuiltInVariable::kpt00D,
+                                            &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00E00E00D00D[4] = {&BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00E00E00E[3]    = {&BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E,
+                                            &BuiltInVariable::kpt00E};
 constexpr const TVariable *p00E00E_o_00E_o_00E[4] = {
-    &BuiltInVariable::kVar_pt00E, &BuiltInVariable::kVar_pt00E, &BuiltInVariable::kVar_pt_o_00E,
-    &BuiltInVariable::kVar_pt_o_00E};
-constexpr const TVariable *p00G[1]          = {&BuiltInVariable::kVar_pt00G};
-constexpr const TVariable *p00I00D[2]       = {&BuiltInVariable::kVar_pt00I,
-                                         &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00I10B00B10D[4] = {
-    &BuiltInVariable::kVar_pt00I, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00I10B00D[3] = {
-    &BuiltInVariable::kVar_pt00I, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt00D};
+    &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E, &BuiltInVariable::kpt_o_00E,
+    &BuiltInVariable::kpt_o_00E};
+constexpr const TVariable *p00G[1]          = {&BuiltInVariable::kpt00G};
+constexpr const TVariable *p00I00D[2]       = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00I10B00B10D[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt10B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00I10B00D[3]    = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt10B,
+                                            &BuiltInVariable::kpt00D};
 constexpr const TVariable *p00I10B10B10B10D[5] = {
-    &BuiltInVariable::kVar_pt00I, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10B,
-    &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00I10B10D00B[4] = {
-    &BuiltInVariable::kVar_pt00I, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00I10B10D00D[4] = {
-    &BuiltInVariable::kVar_pt00I, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00I10D00D10D[4] = {
-    &BuiltInVariable::kVar_pt00I, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00I20B00B10D[4] = {
-    &BuiltInVariable::kVar_pt00I, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt10D};
+    &BuiltInVariable::kpt00I, &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10B,
+    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00I10B10D00B[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt10B,
+                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00I10B10D00D[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt10B,
+                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00I10D00D10D[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt10D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00I20B00B10D[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
 constexpr const TVariable *p00I20B10B10B10D[5] = {
-    &BuiltInVariable::kVar_pt00I, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt10B,
-    &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00I20B10D00B[4] = {
-    &BuiltInVariable::kVar_pt00I, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt10D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00I30B00B10D[4] = {
-    &BuiltInVariable::kVar_pt00I, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt10D};
+    &BuiltInVariable::kpt00I, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B,
+    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00I20B10D00B[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00I30B00B10D[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt30B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
 constexpr const TVariable *p00I30B10B10B10D[5] = {
-    &BuiltInVariable::kVar_pt00I, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt10B,
-    &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00I30B10D00B[4] = {
-    &BuiltInVariable::kVar_pt00I, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt10D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00J00D[2]       = {&BuiltInVariable::kVar_pt00J,
-                                         &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00J20B00B20D[4] = {
-    &BuiltInVariable::kVar_pt00J, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt20D};
+    &BuiltInVariable::kpt00I, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt10B,
+    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00I30B10D00B[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt30B,
+                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00J00D[2]       = {&BuiltInVariable::kpt00J, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00J20B00B20D[4] = {&BuiltInVariable::kpt00J, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt20D};
 constexpr const TVariable *p00J20B20B20B20D[5] = {
-    &BuiltInVariable::kVar_pt00J, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt20B,
-    &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt20D};
-constexpr const TVariable *p00J20B20D00B[4] = {
-    &BuiltInVariable::kVar_pt00J, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt20D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00J20D00D20D[4] = {
-    &BuiltInVariable::kVar_pt00J, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt20D};
-constexpr const TVariable *p00J30B00B20D[4] = {
-    &BuiltInVariable::kVar_pt00J, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt20D};
+    &BuiltInVariable::kpt00J, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B,
+    &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20D};
+constexpr const TVariable *p00J20B20D00B[4] = {&BuiltInVariable::kpt00J, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00J20D00D20D[4] = {&BuiltInVariable::kpt00J, &BuiltInVariable::kpt20D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt20D};
+constexpr const TVariable *p00J30B00B20D[4] = {&BuiltInVariable::kpt00J, &BuiltInVariable::kpt30B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt20D};
 constexpr const TVariable *p00J30B20B20B20D[5] = {
-    &BuiltInVariable::kVar_pt00J, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt20B,
-    &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt20D};
-constexpr const TVariable *p00J30B20D00B[4] = {
-    &BuiltInVariable::kVar_pt00J, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt20D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00K00D[2]    = {&BuiltInVariable::kVar_pt00K,
-                                         &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00K20B00B[3] = {
-    &BuiltInVariable::kVar_pt00K, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00K20B00D[3] = {
-    &BuiltInVariable::kVar_pt00K, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00K20B20B20B[4] = {
-    &BuiltInVariable::kVar_pt00K, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt20B,
-    &BuiltInVariable::kVar_pt20B};
-constexpr const TVariable *p00L00D[2]       = {&BuiltInVariable::kVar_pt00L,
-                                         &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00L20B00B10D[4] = {
-    &BuiltInVariable::kVar_pt00L, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00L20B00D[3] = {
-    &BuiltInVariable::kVar_pt00L, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00D};
+    &BuiltInVariable::kpt00J, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt20B,
+    &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20D};
+constexpr const TVariable *p00J30B20D00B[4] = {&BuiltInVariable::kpt00J, &BuiltInVariable::kpt30B,
+                                               &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00K00D[2]       = {&BuiltInVariable::kpt00K, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00K20B00B[3]    = {&BuiltInVariable::kpt00K, &BuiltInVariable::kpt20B,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00K20B00D[3]    = {&BuiltInVariable::kpt00K, &BuiltInVariable::kpt20B,
+                                            &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00K20B20B20B[4] = {&BuiltInVariable::kpt00K, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B};
+constexpr const TVariable *p00L00D[2]       = {&BuiltInVariable::kpt00L, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00L20B00B10D[4] = {&BuiltInVariable::kpt00L, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00L20B00D[3]    = {&BuiltInVariable::kpt00L, &BuiltInVariable::kpt20B,
+                                            &BuiltInVariable::kpt00D};
 constexpr const TVariable *p00L20B10B10B10D[5] = {
-    &BuiltInVariable::kVar_pt00L, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt10B,
-    &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00L20B10D00B[4] = {
-    &BuiltInVariable::kVar_pt00L, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt10D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00L20B10D00D[4] = {
-    &BuiltInVariable::kVar_pt00L, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt10D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00L20D00D10D[4] = {
-    &BuiltInVariable::kVar_pt00L, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00M00D[2]    = {&BuiltInVariable::kVar_pt00M,
-                                         &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00M10B00B[3] = {
-    &BuiltInVariable::kVar_pt00M, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00M10D00D[3] = {
-    &BuiltInVariable::kVar_pt00M, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00M20B00B[3] = {
-    &BuiltInVariable::kVar_pt00M, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00M30B00B[3] = {
-    &BuiltInVariable::kVar_pt00M, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00N00D[2]    = {&BuiltInVariable::kVar_pt00N,
-                                         &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00N10B00B[3] = {
-    &BuiltInVariable::kVar_pt00N, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00N10D00D[3] = {
-    &BuiltInVariable::kVar_pt00N, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00N20B00B[3] = {
-    &BuiltInVariable::kVar_pt00N, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00N30B00B[3] = {
-    &BuiltInVariable::kVar_pt00N, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00O10B[2]    = {&BuiltInVariable::kVar_pt00O,
-                                         &BuiltInVariable::kVar_pt10B};
-constexpr const TVariable *p00O20B[2]    = {&BuiltInVariable::kVar_pt00O,
-                                         &BuiltInVariable::kVar_pt20B};
-constexpr const TVariable *p00O30B[2]    = {&BuiltInVariable::kVar_pt00O,
-                                         &BuiltInVariable::kVar_pt30B};
-constexpr const TVariable *p00P10D00D[3] = {
-    &BuiltInVariable::kVar_pt00P, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00Q20D00D[3] = {
-    &BuiltInVariable::kVar_pt00Q, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00R00D[2]       = {&BuiltInVariable::kVar_pt00R,
-                                         &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00R10B00B10D[4] = {
-    &BuiltInVariable::kVar_pt00R, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00R10B00D[3] = {
-    &BuiltInVariable::kVar_pt00R, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt00D};
+    &BuiltInVariable::kpt00L, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B,
+    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00L20B10D00B[4] = {&BuiltInVariable::kpt00L, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00L20B10D00D[4] = {&BuiltInVariable::kpt00L, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00L20D00D10D[4] = {&BuiltInVariable::kpt00L, &BuiltInVariable::kpt20D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00M00D[2]       = {&BuiltInVariable::kpt00M, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00M10B00B[3]    = {&BuiltInVariable::kpt00M, &BuiltInVariable::kpt10B,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00M10D00D[3]    = {&BuiltInVariable::kpt00M, &BuiltInVariable::kpt10D,
+                                            &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00M20B00B[3]    = {&BuiltInVariable::kpt00M, &BuiltInVariable::kpt20B,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00M30B00B[3]    = {&BuiltInVariable::kpt00M, &BuiltInVariable::kpt30B,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00N00D[2]       = {&BuiltInVariable::kpt00N, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00N10B00B[3]    = {&BuiltInVariable::kpt00N, &BuiltInVariable::kpt10B,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00N10D00D[3]    = {&BuiltInVariable::kpt00N, &BuiltInVariable::kpt10D,
+                                            &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00N20B00B[3]    = {&BuiltInVariable::kpt00N, &BuiltInVariable::kpt20B,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00N30B00B[3]    = {&BuiltInVariable::kpt00N, &BuiltInVariable::kpt30B,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00O10B[2]       = {&BuiltInVariable::kpt00O, &BuiltInVariable::kpt10B};
+constexpr const TVariable *p00O20B[2]       = {&BuiltInVariable::kpt00O, &BuiltInVariable::kpt20B};
+constexpr const TVariable *p00O30B[2]       = {&BuiltInVariable::kpt00O, &BuiltInVariable::kpt30B};
+constexpr const TVariable *p00P10D00D[3]    = {&BuiltInVariable::kpt00P, &BuiltInVariable::kpt10D,
+                                            &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00Q20D00D[3]    = {&BuiltInVariable::kpt00Q, &BuiltInVariable::kpt20D,
+                                            &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00R00D[2]       = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00R10B00B10D[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt10B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00R10B00D[3]    = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt10B,
+                                            &BuiltInVariable::kpt00D};
 constexpr const TVariable *p00R10B10B10B10D[5] = {
-    &BuiltInVariable::kVar_pt00R, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10B,
-    &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00R10B10D00B[4] = {
-    &BuiltInVariable::kVar_pt00R, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00R10B10D00D[4] = {
-    &BuiltInVariable::kVar_pt00R, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00R10D00D10D[4] = {
-    &BuiltInVariable::kVar_pt00R, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00R20B00B10D[4] = {
-    &BuiltInVariable::kVar_pt00R, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt10D};
+    &BuiltInVariable::kpt00R, &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10B,
+    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00R10B10D00B[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt10B,
+                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00R10B10D00D[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt10B,
+                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00R10D00D10D[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt10D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00R20B00B10D[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
 constexpr const TVariable *p00R20B10B10B10D[5] = {
-    &BuiltInVariable::kVar_pt00R, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt10B,
-    &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00R20B10D00B[4] = {
-    &BuiltInVariable::kVar_pt00R, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt10D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00R30B00B10D[4] = {
-    &BuiltInVariable::kVar_pt00R, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt10D};
+    &BuiltInVariable::kpt00R, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B,
+    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00R20B10D00B[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00R30B00B10D[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt30B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
 constexpr const TVariable *p00R30B10B10B10D[5] = {
-    &BuiltInVariable::kVar_pt00R, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt10B,
-    &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00R30B10D00B[4] = {
-    &BuiltInVariable::kVar_pt00R, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt10D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00S00D[2]       = {&BuiltInVariable::kVar_pt00S,
-                                         &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00S20B00B20D[4] = {
-    &BuiltInVariable::kVar_pt00S, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt20D};
+    &BuiltInVariable::kpt00R, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt10B,
+    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00R30B10D00B[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt30B,
+                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00S00D[2]       = {&BuiltInVariable::kpt00S, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00S20B00B20D[4] = {&BuiltInVariable::kpt00S, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt20D};
 constexpr const TVariable *p00S20B20B20B20D[5] = {
-    &BuiltInVariable::kVar_pt00S, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt20B,
-    &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt20D};
-constexpr const TVariable *p00S20B20D00B[4] = {
-    &BuiltInVariable::kVar_pt00S, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt20D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00S20D00D20D[4] = {
-    &BuiltInVariable::kVar_pt00S, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt20D};
-constexpr const TVariable *p00S30B00B20D[4] = {
-    &BuiltInVariable::kVar_pt00S, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt20D};
+    &BuiltInVariable::kpt00S, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B,
+    &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20D};
+constexpr const TVariable *p00S20B20D00B[4] = {&BuiltInVariable::kpt00S, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00S20D00D20D[4] = {&BuiltInVariable::kpt00S, &BuiltInVariable::kpt20D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt20D};
+constexpr const TVariable *p00S30B00B20D[4] = {&BuiltInVariable::kpt00S, &BuiltInVariable::kpt30B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt20D};
 constexpr const TVariable *p00S30B20B20B20D[5] = {
-    &BuiltInVariable::kVar_pt00S, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt20B,
-    &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt20D};
-constexpr const TVariable *p00S30B20D00B[4] = {
-    &BuiltInVariable::kVar_pt00S, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt20D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00T00D[2]    = {&BuiltInVariable::kVar_pt00T,
-                                         &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00T20B00B[3] = {
-    &BuiltInVariable::kVar_pt00T, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00T20B00D[3] = {
-    &BuiltInVariable::kVar_pt00T, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00T20B20B20B[4] = {
-    &BuiltInVariable::kVar_pt00T, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt20B,
-    &BuiltInVariable::kVar_pt20B};
-constexpr const TVariable *p00U00D[2]       = {&BuiltInVariable::kVar_pt00U,
-                                         &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00U20B00B10D[4] = {
-    &BuiltInVariable::kVar_pt00U, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00U20B00D[3] = {
-    &BuiltInVariable::kVar_pt00U, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00D};
+    &BuiltInVariable::kpt00S, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt20B,
+    &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20D};
+constexpr const TVariable *p00S30B20D00B[4] = {&BuiltInVariable::kpt00S, &BuiltInVariable::kpt30B,
+                                               &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00T00D[2]       = {&BuiltInVariable::kpt00T, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00T20B00B[3]    = {&BuiltInVariable::kpt00T, &BuiltInVariable::kpt20B,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00T20B00D[3]    = {&BuiltInVariable::kpt00T, &BuiltInVariable::kpt20B,
+                                            &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00T20B20B20B[4] = {&BuiltInVariable::kpt00T, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B};
+constexpr const TVariable *p00U00D[2]       = {&BuiltInVariable::kpt00U, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00U20B00B10D[4] = {&BuiltInVariable::kpt00U, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00U20B00D[3]    = {&BuiltInVariable::kpt00U, &BuiltInVariable::kpt20B,
+                                            &BuiltInVariable::kpt00D};
 constexpr const TVariable *p00U20B10B10B10D[5] = {
-    &BuiltInVariable::kVar_pt00U, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt10B,
-    &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00U20B10D00B[4] = {
-    &BuiltInVariable::kVar_pt00U, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt10D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00U20B10D00D[4] = {
-    &BuiltInVariable::kVar_pt00U, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt10D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00U20D00D10D[4] = {
-    &BuiltInVariable::kVar_pt00U, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00V10D00D[3] = {
-    &BuiltInVariable::kVar_pt00V, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00W20D00D[3] = {
-    &BuiltInVariable::kVar_pt00W, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00X00D[2]       = {&BuiltInVariable::kVar_pt00X,
-                                         &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00X10B00B10D[4] = {
-    &BuiltInVariable::kVar_pt00X, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00X10B00D[3] = {
-    &BuiltInVariable::kVar_pt00X, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt00D};
+    &BuiltInVariable::kpt00U, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B,
+    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00U20B10D00B[4] = {&BuiltInVariable::kpt00U, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00U20B10D00D[4] = {&BuiltInVariable::kpt00U, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00U20D00D10D[4] = {&BuiltInVariable::kpt00U, &BuiltInVariable::kpt20D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00V10D00D[3]    = {&BuiltInVariable::kpt00V, &BuiltInVariable::kpt10D,
+                                            &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00W20D00D[3]    = {&BuiltInVariable::kpt00W, &BuiltInVariable::kpt20D,
+                                            &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00X00D[2]       = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00X10B00B10D[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt10B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00X10B00D[3]    = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt10B,
+                                            &BuiltInVariable::kpt00D};
 constexpr const TVariable *p00X10B10B10B10D[5] = {
-    &BuiltInVariable::kVar_pt00X, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10B,
-    &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00X10B10D00B[4] = {
-    &BuiltInVariable::kVar_pt00X, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00X10B10D00D[4] = {
-    &BuiltInVariable::kVar_pt00X, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00X10D00D10D[4] = {
-    &BuiltInVariable::kVar_pt00X, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00X20B00B10D[4] = {
-    &BuiltInVariable::kVar_pt00X, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt10D};
+    &BuiltInVariable::kpt00X, &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10B,
+    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00X10B10D00B[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt10B,
+                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00X10B10D00D[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt10B,
+                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00X10D00D10D[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt10D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00X20B00B10D[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
 constexpr const TVariable *p00X20B10B10B10D[5] = {
-    &BuiltInVariable::kVar_pt00X, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt10B,
-    &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00X20B10D00B[4] = {
-    &BuiltInVariable::kVar_pt00X, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt10D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00X30B00B10D[4] = {
-    &BuiltInVariable::kVar_pt00X, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt10D};
+    &BuiltInVariable::kpt00X, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B,
+    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00X20B10D00B[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00X30B00B10D[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt30B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
 constexpr const TVariable *p00X30B10B10B10D[5] = {
-    &BuiltInVariable::kVar_pt00X, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt10B,
-    &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00X30B10D00B[4] = {
-    &BuiltInVariable::kVar_pt00X, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt10D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00Y00D[2]       = {&BuiltInVariable::kVar_pt00Y,
-                                         &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00Y20B00B20D[4] = {
-    &BuiltInVariable::kVar_pt00Y, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt20D};
+    &BuiltInVariable::kpt00X, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt10B,
+    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00X30B10D00B[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt30B,
+                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00Y00D[2]       = {&BuiltInVariable::kpt00Y, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00Y20B00B20D[4] = {&BuiltInVariable::kpt00Y, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt20D};
 constexpr const TVariable *p00Y20B20B20B20D[5] = {
-    &BuiltInVariable::kVar_pt00Y, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt20B,
-    &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt20D};
-constexpr const TVariable *p00Y20B20D00B[4] = {
-    &BuiltInVariable::kVar_pt00Y, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt20D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00Y20D00D20D[4] = {
-    &BuiltInVariable::kVar_pt00Y, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt20D};
-constexpr const TVariable *p00Y30B00B20D[4] = {
-    &BuiltInVariable::kVar_pt00Y, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt20D};
+    &BuiltInVariable::kpt00Y, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B,
+    &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20D};
+constexpr const TVariable *p00Y20B20D00B[4] = {&BuiltInVariable::kpt00Y, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00Y20D00D20D[4] = {&BuiltInVariable::kpt00Y, &BuiltInVariable::kpt20D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt20D};
+constexpr const TVariable *p00Y30B00B20D[4] = {&BuiltInVariable::kpt00Y, &BuiltInVariable::kpt30B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt20D};
 constexpr const TVariable *p00Y30B20B20B20D[5] = {
-    &BuiltInVariable::kVar_pt00Y, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt20B,
-    &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt20D};
-constexpr const TVariable *p00Y30B20D00B[4] = {
-    &BuiltInVariable::kVar_pt00Y, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt20D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00Z00D[2]    = {&BuiltInVariable::kVar_pt00Z,
-                                         &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00Z20B00B[3] = {
-    &BuiltInVariable::kVar_pt00Z, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00Z20B00D[3] = {
-    &BuiltInVariable::kVar_pt00Z, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00Z20B20B20B[4] = {
-    &BuiltInVariable::kVar_pt00Z, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt20B,
-    &BuiltInVariable::kVar_pt20B};
-constexpr const TVariable *p00a00D[2]       = {&BuiltInVariable::kVar_pt00a,
-                                         &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00a20B00B10D[4] = {
-    &BuiltInVariable::kVar_pt00a, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00a20B00D[3] = {
-    &BuiltInVariable::kVar_pt00a, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00D};
+    &BuiltInVariable::kpt00Y, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt20B,
+    &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20D};
+constexpr const TVariable *p00Y30B20D00B[4] = {&BuiltInVariable::kpt00Y, &BuiltInVariable::kpt30B,
+                                               &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00Z00D[2]       = {&BuiltInVariable::kpt00Z, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00Z20B00B[3]    = {&BuiltInVariable::kpt00Z, &BuiltInVariable::kpt20B,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00Z20B00D[3]    = {&BuiltInVariable::kpt00Z, &BuiltInVariable::kpt20B,
+                                            &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00Z20B20B20B[4] = {&BuiltInVariable::kpt00Z, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B};
+constexpr const TVariable *p00a00D[2]       = {&BuiltInVariable::kpt00a, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00a20B00B10D[4] = {&BuiltInVariable::kpt00a, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00a20B00D[3]    = {&BuiltInVariable::kpt00a, &BuiltInVariable::kpt20B,
+                                            &BuiltInVariable::kpt00D};
 constexpr const TVariable *p00a20B10B10B10D[5] = {
-    &BuiltInVariable::kVar_pt00a, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt10B,
-    &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00a20B10D00B[4] = {
-    &BuiltInVariable::kVar_pt00a, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt10D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00a20B10D00D[4] = {
-    &BuiltInVariable::kVar_pt00a, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt10D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00a20D00D10D[4] = {
-    &BuiltInVariable::kVar_pt00a, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00b10D00D[3] = {
-    &BuiltInVariable::kVar_pt00b, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00c20D00D[3] = {
-    &BuiltInVariable::kVar_pt00c, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00d00D[2]       = {&BuiltInVariable::kVar_pt00d,
-                                         &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00d10B00B10D[4] = {
-    &BuiltInVariable::kVar_pt00d, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00d20B00B10D[4] = {
-    &BuiltInVariable::kVar_pt00d, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt10D};
+    &BuiltInVariable::kpt00a, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B,
+    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00a20B10D00B[4] = {&BuiltInVariable::kpt00a, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00a20B10D00D[4] = {&BuiltInVariable::kpt00a, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00a20D00D10D[4] = {&BuiltInVariable::kpt00a, &BuiltInVariable::kpt20D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00b10D00D[3]    = {&BuiltInVariable::kpt00b, &BuiltInVariable::kpt10D,
+                                            &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00c20D00D[3]    = {&BuiltInVariable::kpt00c, &BuiltInVariable::kpt20D,
+                                            &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00d00D[2]       = {&BuiltInVariable::kpt00d, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00d10B00B10D[4] = {&BuiltInVariable::kpt00d, &BuiltInVariable::kpt10B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00d20B00B10D[4] = {&BuiltInVariable::kpt00d, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
 constexpr const TVariable *p00d20B10B10B10D[5] = {
-    &BuiltInVariable::kVar_pt00d, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt10B,
-    &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00d20B10D00B[4] = {
-    &BuiltInVariable::kVar_pt00d, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt10D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00d30B00B10D[4] = {
-    &BuiltInVariable::kVar_pt00d, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt10D};
+    &BuiltInVariable::kpt00d, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B,
+    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00d20B10D00B[4] = {&BuiltInVariable::kpt00d, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00d30B00B10D[4] = {&BuiltInVariable::kpt00d, &BuiltInVariable::kpt30B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
 constexpr const TVariable *p00d30B10B10B10D[5] = {
-    &BuiltInVariable::kVar_pt00d, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt10B,
-    &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00d30B10D00B[4] = {
-    &BuiltInVariable::kVar_pt00d, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt10D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00e00D[2]    = {&BuiltInVariable::kVar_pt00e,
-                                         &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00e20B00B[3] = {
-    &BuiltInVariable::kVar_pt00e, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00e30B00B[3] = {
-    &BuiltInVariable::kVar_pt00e, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00e30B20B20B[4] = {
-    &BuiltInVariable::kVar_pt00e, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt20B,
-    &BuiltInVariable::kVar_pt20B};
-constexpr const TVariable *p00f00D[2]       = {&BuiltInVariable::kVar_pt00f,
-                                         &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00f20B00B10D[4] = {
-    &BuiltInVariable::kVar_pt00f, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt10D};
+    &BuiltInVariable::kpt00d, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt10B,
+    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00d30B10D00B[4] = {&BuiltInVariable::kpt00d, &BuiltInVariable::kpt30B,
+                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00e00D[2]       = {&BuiltInVariable::kpt00e, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00e20B00B[3]    = {&BuiltInVariable::kpt00e, &BuiltInVariable::kpt20B,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00e30B00B[3]    = {&BuiltInVariable::kpt00e, &BuiltInVariable::kpt30B,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00e30B20B20B[4] = {&BuiltInVariable::kpt00e, &BuiltInVariable::kpt30B,
+                                               &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B};
+constexpr const TVariable *p00f00D[2]       = {&BuiltInVariable::kpt00f, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00f20B00B10D[4] = {&BuiltInVariable::kpt00f, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
 constexpr const TVariable *p00f30B10B10B10D[5] = {
-    &BuiltInVariable::kVar_pt00f, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt10B,
-    &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00y10D30B[3] = {
-    &BuiltInVariable::kVar_pt00y, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt30B};
-constexpr const TVariable *p00z10D30D[3] = {
-    &BuiltInVariable::kVar_pt00z, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt30D};
-constexpr const TVariable *p01A10D30E[3] = {
-    &BuiltInVariable::kVar_pt01A, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt30E};
-constexpr const TVariable *p01B20D30B[3] = {
-    &BuiltInVariable::kVar_pt01B, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt30B};
-constexpr const TVariable *p01C20D30D[3] = {
-    &BuiltInVariable::kVar_pt01C, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt30D};
-constexpr const TVariable *p01D20D30E[3] = {
-    &BuiltInVariable::kVar_pt01D, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt30E};
-constexpr const TVariable *p01E20D30B[3] = {
-    &BuiltInVariable::kVar_pt01E, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt30B};
-constexpr const TVariable *p01F20D30D[3] = {
-    &BuiltInVariable::kVar_pt01F, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt30D};
-constexpr const TVariable *p01G20D30E[3] = {
-    &BuiltInVariable::kVar_pt01G, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt30E};
-constexpr const TVariable *p01H20D30B[3] = {
-    &BuiltInVariable::kVar_pt01H, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt30B};
-constexpr const TVariable *p01I20D30D[3] = {
-    &BuiltInVariable::kVar_pt01I, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt30D};
-constexpr const TVariable *p01J20D30E[3] = {
-    &BuiltInVariable::kVar_pt01J, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt30E};
-constexpr const TVariable *p10B00B00B[3] = {
-    &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p10B10B00B[3] = {
-    &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p10B10B10B[3] = {
-    &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10B};
-constexpr const TVariable *p10B10B10F[3] = {
-    &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10F};
-constexpr const TVariable *p10B10D[2]    = {&BuiltInVariable::kVar_pt10B,
-                                         &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p10B20B[2]    = {&BuiltInVariable::kVar_pt10B,
-                                         &BuiltInVariable::kVar_pt20B};
-constexpr const TVariable *p10B30B[2]    = {&BuiltInVariable::kVar_pt10B,
-                                         &BuiltInVariable::kVar_pt30B};
-constexpr const TVariable *p10B_o_10B[2] = {&BuiltInVariable::kVar_pt10B,
-                                            &BuiltInVariable::kVar_pt_o_10B};
-constexpr const TVariable *p10B_o_10D[2] = {&BuiltInVariable::kVar_pt10B,
-                                            &BuiltInVariable::kVar_pt_o_10D};
-constexpr const TVariable *p10D00D00D[3] = {
-    &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p10D10D00D00D[4] = {
-    &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p10D10D10D[3] = {
-    &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt10D};
+    &BuiltInVariable::kpt00f, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt10B,
+    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00y10D30B[3] = {&BuiltInVariable::kpt00y, &BuiltInVariable::kpt10D,
+                                            &BuiltInVariable::kpt30B};
+constexpr const TVariable *p00z10D30D[3] = {&BuiltInVariable::kpt00z, &BuiltInVariable::kpt10D,
+                                            &BuiltInVariable::kpt30D};
+constexpr const TVariable *p01A10D30E[3] = {&BuiltInVariable::kpt01A, &BuiltInVariable::kpt10D,
+                                            &BuiltInVariable::kpt30E};
+constexpr const TVariable *p01B20D30B[3] = {&BuiltInVariable::kpt01B, &BuiltInVariable::kpt20D,
+                                            &BuiltInVariable::kpt30B};
+constexpr const TVariable *p01C20D30D[3] = {&BuiltInVariable::kpt01C, &BuiltInVariable::kpt20D,
+                                            &BuiltInVariable::kpt30D};
+constexpr const TVariable *p01D20D30E[3] = {&BuiltInVariable::kpt01D, &BuiltInVariable::kpt20D,
+                                            &BuiltInVariable::kpt30E};
+constexpr const TVariable *p01E20D30B[3] = {&BuiltInVariable::kpt01E, &BuiltInVariable::kpt20D,
+                                            &BuiltInVariable::kpt30B};
+constexpr const TVariable *p01F20D30D[3] = {&BuiltInVariable::kpt01F, &BuiltInVariable::kpt20D,
+                                            &BuiltInVariable::kpt30D};
+constexpr const TVariable *p01G20D30E[3] = {&BuiltInVariable::kpt01G, &BuiltInVariable::kpt20D,
+                                            &BuiltInVariable::kpt30E};
+constexpr const TVariable *p01H20D30B[3] = {&BuiltInVariable::kpt01H, &BuiltInVariable::kpt20D,
+                                            &BuiltInVariable::kpt30B};
+constexpr const TVariable *p01I20D30D[3] = {&BuiltInVariable::kpt01I, &BuiltInVariable::kpt20D,
+                                            &BuiltInVariable::kpt30D};
+constexpr const TVariable *p01J20D30E[3] = {&BuiltInVariable::kpt01J, &BuiltInVariable::kpt20D,
+                                            &BuiltInVariable::kpt30E};
+constexpr const TVariable *p10B00B00B[3] = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt00B,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p10B10B00B[3] = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt10B,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p10B10B10B[3] = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt10B,
+                                            &BuiltInVariable::kpt10B};
+constexpr const TVariable *p10B10B10F[3] = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt10B,
+                                            &BuiltInVariable::kpt10F};
+constexpr const TVariable *p10B10D[2]    = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p10B20B[2]    = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt20B};
+constexpr const TVariable *p10B30B[2]    = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt30B};
+constexpr const TVariable *p10B_o_10B[2] = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt_o_10B};
+constexpr const TVariable *p10B_o_10D[2] = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt_o_10D};
+constexpr const TVariable *p10D00D00D[3] = {&BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D,
+                                            &BuiltInVariable::kpt00D};
+constexpr const TVariable *p10D10D00D00D[4] = {&BuiltInVariable::kpt10D, &BuiltInVariable::kpt10D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p10D10D10D[3]    = {&BuiltInVariable::kpt10D, &BuiltInVariable::kpt10D,
+                                            &BuiltInVariable::kpt10D};
 constexpr const TVariable *p10D10D_o_10D_o_10D[4] = {
-    &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt_o_10D,
-    &BuiltInVariable::kVar_pt_o_10D};
-constexpr const TVariable *p10E00D00D[3] = {
-    &BuiltInVariable::kVar_pt10E, &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p10E00E00E[3] = {
-    &BuiltInVariable::kVar_pt10E, &BuiltInVariable::kVar_pt00E, &BuiltInVariable::kVar_pt00E};
-constexpr const TVariable *p10E10E00D00D[4] = {
-    &BuiltInVariable::kVar_pt10E, &BuiltInVariable::kVar_pt10E, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p10E10E10E[3] = {
-    &BuiltInVariable::kVar_pt10E, &BuiltInVariable::kVar_pt10E, &BuiltInVariable::kVar_pt10E};
+    &BuiltInVariable::kpt10D, &BuiltInVariable::kpt10D, &BuiltInVariable::kpt_o_10D,
+    &BuiltInVariable::kpt_o_10D};
+constexpr const TVariable *p10E00D00D[3]    = {&BuiltInVariable::kpt10E, &BuiltInVariable::kpt00D,
+                                            &BuiltInVariable::kpt00D};
+constexpr const TVariable *p10E00E00E[3]    = {&BuiltInVariable::kpt10E, &BuiltInVariable::kpt00E,
+                                            &BuiltInVariable::kpt00E};
+constexpr const TVariable *p10E10E00D00D[4] = {&BuiltInVariable::kpt10E, &BuiltInVariable::kpt10E,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p10E10E10E[3]    = {&BuiltInVariable::kpt10E, &BuiltInVariable::kpt10E,
+                                            &BuiltInVariable::kpt10E};
 constexpr const TVariable *p10E10E_o_10E_o_10E[4] = {
-    &BuiltInVariable::kVar_pt10E, &BuiltInVariable::kVar_pt10E, &BuiltInVariable::kVar_pt_o_10E,
-    &BuiltInVariable::kVar_pt_o_10E};
-constexpr const TVariable *p10F10F[2]    = {&BuiltInVariable::kVar_pt10F,
-                                         &BuiltInVariable::kVar_pt10F};
-constexpr const TVariable *p20B00B00B[3] = {
-    &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p20B00H[2]    = {&BuiltInVariable::kVar_pt20B,
-                                         &BuiltInVariable::kVar_pt00H};
-constexpr const TVariable *p20B10B[2]    = {&BuiltInVariable::kVar_pt20B,
-                                         &BuiltInVariable::kVar_pt10B};
-constexpr const TVariable *p20B20B00B[3] = {
-    &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p20B20B20B[3] = {
-    &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt20B};
-constexpr const TVariable *p20B20B20F[3] = {
-    &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt20F};
-constexpr const TVariable *p20B20D[2]    = {&BuiltInVariable::kVar_pt20B,
-                                         &BuiltInVariable::kVar_pt20D};
-constexpr const TVariable *p20B30B[2]    = {&BuiltInVariable::kVar_pt20B,
-                                         &BuiltInVariable::kVar_pt30B};
-constexpr const TVariable *p20B_o_20B[2] = {&BuiltInVariable::kVar_pt20B,
-                                            &BuiltInVariable::kVar_pt_o_20B};
-constexpr const TVariable *p20B_o_20D[2] = {&BuiltInVariable::kVar_pt20B,
-                                            &BuiltInVariable::kVar_pt_o_20D};
-constexpr const TVariable *p20D00D00D[3] = {
-    &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p20D20D00D00D[4] = {
-    &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p20D20D20D[3] = {
-    &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt20D};
+    &BuiltInVariable::kpt10E, &BuiltInVariable::kpt10E, &BuiltInVariable::kpt_o_10E,
+    &BuiltInVariable::kpt_o_10E};
+constexpr const TVariable *p10F10F[2]    = {&BuiltInVariable::kpt10F, &BuiltInVariable::kpt10F};
+constexpr const TVariable *p20B00B00B[3] = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt00B,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p20B00H[2]    = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt00H};
+constexpr const TVariable *p20B10B[2]    = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B};
+constexpr const TVariable *p20B20B00B[3] = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p20B20B20B[3] = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B,
+                                            &BuiltInVariable::kpt20B};
+constexpr const TVariable *p20B20B20F[3] = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B,
+                                            &BuiltInVariable::kpt20F};
+constexpr const TVariable *p20B20D[2]    = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt20D};
+constexpr const TVariable *p20B30B[2]    = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt30B};
+constexpr const TVariable *p20B_o_20B[2] = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt_o_20B};
+constexpr const TVariable *p20B_o_20D[2] = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt_o_20D};
+constexpr const TVariable *p20D00D00D[3] = {&BuiltInVariable::kpt20D, &BuiltInVariable::kpt00D,
+                                            &BuiltInVariable::kpt00D};
+constexpr const TVariable *p20D20D00D00D[4] = {&BuiltInVariable::kpt20D, &BuiltInVariable::kpt20D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p20D20D20D[3]    = {&BuiltInVariable::kpt20D, &BuiltInVariable::kpt20D,
+                                            &BuiltInVariable::kpt20D};
 constexpr const TVariable *p20D20D_o_20D_o_20D[4] = {
-    &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt_o_20D,
-    &BuiltInVariable::kVar_pt_o_20D};
-constexpr const TVariable *p20E00D00D[3] = {
-    &BuiltInVariable::kVar_pt20E, &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p20E00E00E[3] = {
-    &BuiltInVariable::kVar_pt20E, &BuiltInVariable::kVar_pt00E, &BuiltInVariable::kVar_pt00E};
-constexpr const TVariable *p20E20E00D00D[4] = {
-    &BuiltInVariable::kVar_pt20E, &BuiltInVariable::kVar_pt20E, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p20E20E20E[3] = {
-    &BuiltInVariable::kVar_pt20E, &BuiltInVariable::kVar_pt20E, &BuiltInVariable::kVar_pt20E};
+    &BuiltInVariable::kpt20D, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt_o_20D,
+    &BuiltInVariable::kpt_o_20D};
+constexpr const TVariable *p20E00D00D[3]    = {&BuiltInVariable::kpt20E, &BuiltInVariable::kpt00D,
+                                            &BuiltInVariable::kpt00D};
+constexpr const TVariable *p20E00E00E[3]    = {&BuiltInVariable::kpt20E, &BuiltInVariable::kpt00E,
+                                            &BuiltInVariable::kpt00E};
+constexpr const TVariable *p20E20E00D00D[4] = {&BuiltInVariable::kpt20E, &BuiltInVariable::kpt20E,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p20E20E20E[3]    = {&BuiltInVariable::kpt20E, &BuiltInVariable::kpt20E,
+                                            &BuiltInVariable::kpt20E};
 constexpr const TVariable *p20E20E_o_20E_o_20E[4] = {
-    &BuiltInVariable::kVar_pt20E, &BuiltInVariable::kVar_pt20E, &BuiltInVariable::kVar_pt_o_20E,
-    &BuiltInVariable::kVar_pt_o_20E};
-constexpr const TVariable *p20F20F[2]    = {&BuiltInVariable::kVar_pt20F,
-                                         &BuiltInVariable::kVar_pt20F};
-constexpr const TVariable *p30B00B00B[3] = {
-    &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p30B10B[2]    = {&BuiltInVariable::kVar_pt30B,
-                                         &BuiltInVariable::kVar_pt10B};
-constexpr const TVariable *p30B20B[2]    = {&BuiltInVariable::kVar_pt30B,
-                                         &BuiltInVariable::kVar_pt20B};
-constexpr const TVariable *p30B30B00B[3] = {
-    &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p30B30B30B[3] = {
-    &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt30B};
-constexpr const TVariable *p30B30B30F[3] = {
-    &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt30F};
-constexpr const TVariable *p30B30D[2]    = {&BuiltInVariable::kVar_pt30B,
-                                         &BuiltInVariable::kVar_pt30D};
-constexpr const TVariable *p30B_o_30B[2] = {&BuiltInVariable::kVar_pt30B,
-                                            &BuiltInVariable::kVar_pt_o_30B};
-constexpr const TVariable *p30B_o_30D[2] = {&BuiltInVariable::kVar_pt30B,
-                                            &BuiltInVariable::kVar_pt_o_30D};
-constexpr const TVariable *p30D00D00D[3] = {
-    &BuiltInVariable::kVar_pt30D, &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p30D30D00D00D[4] = {
-    &BuiltInVariable::kVar_pt30D, &BuiltInVariable::kVar_pt30D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p30D30D30D[3] = {
-    &BuiltInVariable::kVar_pt30D, &BuiltInVariable::kVar_pt30D, &BuiltInVariable::kVar_pt30D};
+    &BuiltInVariable::kpt20E, &BuiltInVariable::kpt20E, &BuiltInVariable::kpt_o_20E,
+    &BuiltInVariable::kpt_o_20E};
+constexpr const TVariable *p20F20F[2]    = {&BuiltInVariable::kpt20F, &BuiltInVariable::kpt20F};
+constexpr const TVariable *p30B00B00B[3] = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt00B,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p30B10B[2]    = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt10B};
+constexpr const TVariable *p30B20B[2]    = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt20B};
+constexpr const TVariable *p30B30B00B[3] = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt30B,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p30B30B30B[3] = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt30B,
+                                            &BuiltInVariable::kpt30B};
+constexpr const TVariable *p30B30B30F[3] = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt30B,
+                                            &BuiltInVariable::kpt30F};
+constexpr const TVariable *p30B30D[2]    = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt30D};
+constexpr const TVariable *p30B_o_30B[2] = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt_o_30B};
+constexpr const TVariable *p30B_o_30D[2] = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt_o_30D};
+constexpr const TVariable *p30D00D00D[3] = {&BuiltInVariable::kpt30D, &BuiltInVariable::kpt00D,
+                                            &BuiltInVariable::kpt00D};
+constexpr const TVariable *p30D30D00D00D[4] = {&BuiltInVariable::kpt30D, &BuiltInVariable::kpt30D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p30D30D30D[3]    = {&BuiltInVariable::kpt30D, &BuiltInVariable::kpt30D,
+                                            &BuiltInVariable::kpt30D};
 constexpr const TVariable *p30D30D_o_30D_o_30D[4] = {
-    &BuiltInVariable::kVar_pt30D, &BuiltInVariable::kVar_pt30D, &BuiltInVariable::kVar_pt_o_30D,
-    &BuiltInVariable::kVar_pt_o_30D};
-constexpr const TVariable *p30E00D00D[3] = {
-    &BuiltInVariable::kVar_pt30E, &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p30E00E00E[3] = {
-    &BuiltInVariable::kVar_pt30E, &BuiltInVariable::kVar_pt00E, &BuiltInVariable::kVar_pt00E};
-constexpr const TVariable *p30E30E00D00D[4] = {
-    &BuiltInVariable::kVar_pt30E, &BuiltInVariable::kVar_pt30E, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p30E30E30E[3] = {
-    &BuiltInVariable::kVar_pt30E, &BuiltInVariable::kVar_pt30E, &BuiltInVariable::kVar_pt30E};
+    &BuiltInVariable::kpt30D, &BuiltInVariable::kpt30D, &BuiltInVariable::kpt_o_30D,
+    &BuiltInVariable::kpt_o_30D};
+constexpr const TVariable *p30E00D00D[3]    = {&BuiltInVariable::kpt30E, &BuiltInVariable::kpt00D,
+                                            &BuiltInVariable::kpt00D};
+constexpr const TVariable *p30E00E00E[3]    = {&BuiltInVariable::kpt30E, &BuiltInVariable::kpt00E,
+                                            &BuiltInVariable::kpt00E};
+constexpr const TVariable *p30E30E00D00D[4] = {&BuiltInVariable::kpt30E, &BuiltInVariable::kpt30E,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p30E30E30E[3]    = {&BuiltInVariable::kpt30E, &BuiltInVariable::kpt30E,
+                                            &BuiltInVariable::kpt30E};
 constexpr const TVariable *p30E30E_o_30E_o_30E[4] = {
-    &BuiltInVariable::kVar_pt30E, &BuiltInVariable::kVar_pt30E, &BuiltInVariable::kVar_pt_o_30E,
-    &BuiltInVariable::kVar_pt_o_30E};
-constexpr const TVariable *p30F30F[2]        = {&BuiltInVariable::kVar_pt30F,
-                                         &BuiltInVariable::kVar_pt30F};
-constexpr const TVariable *p50B50B[2]        = {&BuiltInVariable::kVar_pt50B,
-                                         &BuiltInVariable::kVar_pt50B};
-constexpr const TVariable *p60B60B[2]        = {&BuiltInVariable::kVar_pt60B,
-                                         &BuiltInVariable::kVar_pt60B};
-constexpr const TVariable *p70B70B[2]        = {&BuiltInVariable::kVar_pt70B,
-                                         &BuiltInVariable::kVar_pt70B};
-constexpr const TVariable *p90B90B[2]        = {&BuiltInVariable::kVar_pt90B,
-                                         &BuiltInVariable::kVar_pt90B};
-constexpr const TVariable *pA0BA0B[2]        = {&BuiltInVariable::kVar_ptA0B,
-                                         &BuiltInVariable::kVar_ptA0B};
-constexpr const TVariable *pB0BB0B[2]        = {&BuiltInVariable::kVar_ptB0B,
-                                         &BuiltInVariable::kVar_ptB0B};
-constexpr const TVariable *pD0BD0B[2]        = {&BuiltInVariable::kVar_ptD0B,
-                                         &BuiltInVariable::kVar_ptD0B};
-constexpr const TVariable *pE0BE0B[2]        = {&BuiltInVariable::kVar_ptE0B,
-                                         &BuiltInVariable::kVar_ptE0B};
-constexpr const TVariable *pF0BF0B[2]        = {&BuiltInVariable::kVar_ptF0B,
-                                         &BuiltInVariable::kVar_ptF0B};
-constexpr const TVariable *p_io_00D00D00D[3] = {
-    &BuiltInVariable::kVar_pt_io_00D, &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p_io_00E00E00E[3] = {
-    &BuiltInVariable::kVar_pt_io_00E, &BuiltInVariable::kVar_pt00E, &BuiltInVariable::kVar_pt00E};
+    &BuiltInVariable::kpt30E, &BuiltInVariable::kpt30E, &BuiltInVariable::kpt_o_30E,
+    &BuiltInVariable::kpt_o_30E};
+constexpr const TVariable *p30F30F[2]        = {&BuiltInVariable::kpt30F, &BuiltInVariable::kpt30F};
+constexpr const TVariable *p50B50B[2]        = {&BuiltInVariable::kpt50B, &BuiltInVariable::kpt50B};
+constexpr const TVariable *p60B60B[2]        = {&BuiltInVariable::kpt60B, &BuiltInVariable::kpt60B};
+constexpr const TVariable *p70B70B[2]        = {&BuiltInVariable::kpt70B, &BuiltInVariable::kpt70B};
+constexpr const TVariable *p90B90B[2]        = {&BuiltInVariable::kpt90B, &BuiltInVariable::kpt90B};
+constexpr const TVariable *pA0BA0B[2]        = {&BuiltInVariable::kptA0B, &BuiltInVariable::kptA0B};
+constexpr const TVariable *pB0BB0B[2]        = {&BuiltInVariable::kptB0B, &BuiltInVariable::kptB0B};
+constexpr const TVariable *pD0BD0B[2]        = {&BuiltInVariable::kptD0B, &BuiltInVariable::kptD0B};
+constexpr const TVariable *pE0BE0B[2]        = {&BuiltInVariable::kptE0B, &BuiltInVariable::kptE0B};
+constexpr const TVariable *pF0BF0B[2]        = {&BuiltInVariable::kptF0B, &BuiltInVariable::kptF0B};
+constexpr const TVariable *p_io_00D00D00D[3] = {&BuiltInVariable::kpt_io_00D,
+                                                &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p_io_00E00E00E[3] = {&BuiltInVariable::kpt_io_00E,
+                                                &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E};
 
 }  // namespace BuiltInParameters
 
-namespace UnmangledBuiltIns
-{
-
-constexpr const UnmangledBuiltIn ARB_texture_rectangle(TExtension::ARB_texture_rectangle);
-constexpr const UnmangledBuiltIn EXT_YUV_target(TExtension::EXT_YUV_target);
-constexpr const UnmangledBuiltIn EXT_geometry_shader(TExtension::EXT_geometry_shader);
-constexpr const UnmangledBuiltIn EXT_shader_texture_lod(TExtension::EXT_shader_texture_lod);
-constexpr const UnmangledBuiltIn OES_EGL_image_external_essl3(
-    TExtension::OES_EGL_image_external_essl3);
-constexpr const UnmangledBuiltIn OES_texture_3D(TExtension::OES_texture_3D);
-constexpr const UnmangledBuiltIn UNDEFINED(TExtension::UNDEFINED);
-
-}  // namespace UnmangledBuiltIns
-
 // TODO(oetuaho): Would be nice to make this a class instead of a namespace so that we could friend
 // this from TFunction. Now symbol constructors taking an id have to be public even though they're
 // not supposed to be accessible from outside of here. http://anglebug.com/2390
-namespace BuiltInFunction
+namespace Func
 {
 
-constexpr const TFunction function_radians_00B(
-    BuiltInId::radians_Float1,
-    BuiltInName::radians,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpRadians,
-    true);
-constexpr const TFunction function_radians_10B(
-    BuiltInId::radians_Float2,
-    BuiltInName::radians,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B20B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpRadians,
-    true);
-constexpr const TFunction function_radians_20B(
-    BuiltInId::radians_Float3,
-    BuiltInName::radians,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpRadians,
-    true);
-constexpr const TFunction function_radians_30B(
-    BuiltInId::radians_Float4,
-    BuiltInName::radians,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B00B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpRadians,
-    true);
-constexpr const TFunction function_degrees_00B(
-    BuiltInId::degrees_Float1,
-    BuiltInName::degrees,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpDegrees,
-    true);
-constexpr const TFunction function_degrees_10B(
-    BuiltInId::degrees_Float2,
-    BuiltInName::degrees,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B20B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpDegrees,
-    true);
-constexpr const TFunction function_degrees_20B(
-    BuiltInId::degrees_Float3,
-    BuiltInName::degrees,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpDegrees,
-    true);
-constexpr const TFunction function_degrees_30B(
-    BuiltInId::degrees_Float4,
-    BuiltInName::degrees,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B00B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpDegrees,
-    true);
-constexpr const TFunction function_sin_00B(
-    BuiltInId::sin_Float1,
-    BuiltInName::sin,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpSin,
-    true);
-constexpr const TFunction function_sin_10B(
-    BuiltInId::sin_Float2,
-    BuiltInName::sin,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B20B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpSin,
-    true);
-constexpr const TFunction function_sin_20B(
-    BuiltInId::sin_Float3,
-    BuiltInName::sin,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpSin,
-    true);
-constexpr const TFunction function_sin_30B(
-    BuiltInId::sin_Float4,
-    BuiltInName::sin,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B00B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpSin,
-    true);
-constexpr const TFunction function_cos_00B(
-    BuiltInId::cos_Float1,
-    BuiltInName::cos,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpCos,
-    true);
-constexpr const TFunction function_cos_10B(
-    BuiltInId::cos_Float2,
-    BuiltInName::cos,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B20B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpCos,
-    true);
-constexpr const TFunction function_cos_20B(
-    BuiltInId::cos_Float3,
-    BuiltInName::cos,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpCos,
-    true);
-constexpr const TFunction function_cos_30B(
-    BuiltInId::cos_Float4,
-    BuiltInName::cos,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B00B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCos,
-    true);
-constexpr const TFunction function_tan_00B(
-    BuiltInId::tan_Float1,
-    BuiltInName::tan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpTan,
-    true);
-constexpr const TFunction function_tan_10B(
-    BuiltInId::tan_Float2,
-    BuiltInName::tan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B20B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpTan,
-    true);
-constexpr const TFunction function_tan_20B(
-    BuiltInId::tan_Float3,
-    BuiltInName::tan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpTan,
-    true);
-constexpr const TFunction function_tan_30B(
-    BuiltInId::tan_Float4,
-    BuiltInName::tan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B00B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpTan,
-    true);
-constexpr const TFunction function_asin_00B(
-    BuiltInId::asin_Float1,
-    BuiltInName::asin,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpAsin,
-    true);
-constexpr const TFunction function_asin_10B(
-    BuiltInId::asin_Float2,
-    BuiltInName::asin,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B20B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpAsin,
-    true);
-constexpr const TFunction function_asin_20B(
-    BuiltInId::asin_Float3,
-    BuiltInName::asin,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpAsin,
-    true);
-constexpr const TFunction function_asin_30B(
-    BuiltInId::asin_Float4,
-    BuiltInName::asin,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B00B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpAsin,
-    true);
-constexpr const TFunction function_acos_00B(
-    BuiltInId::acos_Float1,
-    BuiltInName::acos,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpAcos,
-    true);
-constexpr const TFunction function_acos_10B(
-    BuiltInId::acos_Float2,
-    BuiltInName::acos,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B20B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpAcos,
-    true);
-constexpr const TFunction function_acos_20B(
-    BuiltInId::acos_Float3,
-    BuiltInName::acos,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpAcos,
-    true);
-constexpr const TFunction function_acos_30B(
-    BuiltInId::acos_Float4,
-    BuiltInName::acos,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B00B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpAcos,
-    true);
-constexpr const TFunction function_atan_00B00B(
-    BuiltInId::atan_Float1_Float1,
-    BuiltInName::atan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B00F,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpAtan,
-    true);
-constexpr const TFunction function_atan_10B10B(
-    BuiltInId::atan_Float2_Float2,
-    BuiltInName::atan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B10B10F,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpAtan,
-    true);
-constexpr const TFunction function_atan_20B20B(
-    BuiltInId::atan_Float3_Float3,
-    BuiltInName::atan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B20F,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpAtan,
-    true);
-constexpr const TFunction function_atan_30B30B(
-    BuiltInId::atan_Float4_Float4,
-    BuiltInName::atan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30B30F,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpAtan,
-    true);
-constexpr const TFunction function_atan_00B(
-    BuiltInId::atan_Float1,
-    BuiltInName::atan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpAtan,
-    true);
-constexpr const TFunction function_atan_10B(
-    BuiltInId::atan_Float2,
-    BuiltInName::atan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B20B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpAtan,
-    true);
-constexpr const TFunction function_atan_20B(
-    BuiltInId::atan_Float3,
-    BuiltInName::atan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpAtan,
-    true);
-constexpr const TFunction function_atan_30B(
-    BuiltInId::atan_Float4,
-    BuiltInName::atan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B00B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpAtan,
-    true);
-constexpr const TFunction function_sinh_00B(
-    BuiltInId::sinh_Float1,
-    BuiltInName::sinh,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpSinh,
-    true);
-constexpr const TFunction function_sinh_10B(
-    BuiltInId::sinh_Float2,
-    BuiltInName::sinh,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B20B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpSinh,
-    true);
-constexpr const TFunction function_sinh_20B(
-    BuiltInId::sinh_Float3,
-    BuiltInName::sinh,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpSinh,
-    true);
-constexpr const TFunction function_sinh_30B(
-    BuiltInId::sinh_Float4,
-    BuiltInName::sinh,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B00B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpSinh,
-    true);
-constexpr const TFunction function_cosh_00B(
-    BuiltInId::cosh_Float1,
-    BuiltInName::cosh,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpCosh,
-    true);
-constexpr const TFunction function_cosh_10B(
-    BuiltInId::cosh_Float2,
-    BuiltInName::cosh,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B20B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpCosh,
-    true);
-constexpr const TFunction function_cosh_20B(
-    BuiltInId::cosh_Float3,
-    BuiltInName::cosh,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpCosh,
-    true);
-constexpr const TFunction function_cosh_30B(
-    BuiltInId::cosh_Float4,
-    BuiltInName::cosh,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B00B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCosh,
-    true);
-constexpr const TFunction function_tanh_00B(
-    BuiltInId::tanh_Float1,
-    BuiltInName::tanh,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpTanh,
-    true);
-constexpr const TFunction function_tanh_10B(
-    BuiltInId::tanh_Float2,
-    BuiltInName::tanh,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B20B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpTanh,
-    true);
-constexpr const TFunction function_tanh_20B(
-    BuiltInId::tanh_Float3,
-    BuiltInName::tanh,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpTanh,
-    true);
-constexpr const TFunction function_tanh_30B(
-    BuiltInId::tanh_Float4,
-    BuiltInName::tanh,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B00B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpTanh,
-    true);
-constexpr const TFunction function_asinh_00B(
-    BuiltInId::asinh_Float1,
-    BuiltInName::asinh,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpAsinh,
-    true);
-constexpr const TFunction function_asinh_10B(
-    BuiltInId::asinh_Float2,
-    BuiltInName::asinh,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B20B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpAsinh,
-    true);
-constexpr const TFunction function_asinh_20B(
-    BuiltInId::asinh_Float3,
-    BuiltInName::asinh,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpAsinh,
-    true);
-constexpr const TFunction function_asinh_30B(
-    BuiltInId::asinh_Float4,
-    BuiltInName::asinh,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B00B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpAsinh,
-    true);
-constexpr const TFunction function_acosh_00B(
-    BuiltInId::acosh_Float1,
-    BuiltInName::acosh,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpAcosh,
-    true);
-constexpr const TFunction function_acosh_10B(
-    BuiltInId::acosh_Float2,
-    BuiltInName::acosh,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B20B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpAcosh,
-    true);
-constexpr const TFunction function_acosh_20B(
-    BuiltInId::acosh_Float3,
-    BuiltInName::acosh,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpAcosh,
-    true);
-constexpr const TFunction function_acosh_30B(
-    BuiltInId::acosh_Float4,
-    BuiltInName::acosh,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B00B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpAcosh,
-    true);
-constexpr const TFunction function_atanh_00B(
-    BuiltInId::atanh_Float1,
-    BuiltInName::atanh,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpAtanh,
-    true);
-constexpr const TFunction function_atanh_10B(
-    BuiltInId::atanh_Float2,
-    BuiltInName::atanh,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B20B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpAtanh,
-    true);
-constexpr const TFunction function_atanh_20B(
-    BuiltInId::atanh_Float3,
-    BuiltInName::atanh,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpAtanh,
-    true);
-constexpr const TFunction function_atanh_30B(
-    BuiltInId::atanh_Float4,
-    BuiltInName::atanh,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B00B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpAtanh,
-    true);
-constexpr const TFunction function_pow_00B00B(
-    BuiltInId::pow_Float1_Float1,
-    BuiltInName::pow,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B00F,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpPow,
-    true);
-constexpr const TFunction function_pow_10B10B(
-    BuiltInId::pow_Float2_Float2,
-    BuiltInName::pow,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B10B10F,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpPow,
-    true);
-constexpr const TFunction function_pow_20B20B(
-    BuiltInId::pow_Float3_Float3,
-    BuiltInName::pow,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B20F,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpPow,
-    true);
-constexpr const TFunction function_pow_30B30B(
-    BuiltInId::pow_Float4_Float4,
-    BuiltInName::pow,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30B30F,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpPow,
-    true);
-constexpr const TFunction function_exp_00B(
-    BuiltInId::exp_Float1,
-    BuiltInName::exp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpExp,
-    true);
-constexpr const TFunction function_exp_10B(
-    BuiltInId::exp_Float2,
-    BuiltInName::exp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B20B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpExp,
-    true);
-constexpr const TFunction function_exp_20B(
-    BuiltInId::exp_Float3,
-    BuiltInName::exp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpExp,
-    true);
-constexpr const TFunction function_exp_30B(
-    BuiltInId::exp_Float4,
-    BuiltInName::exp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B00B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpExp,
-    true);
-constexpr const TFunction function_log_00B(
-    BuiltInId::log_Float1,
-    BuiltInName::log,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpLog,
-    true);
-constexpr const TFunction function_log_10B(
-    BuiltInId::log_Float2,
-    BuiltInName::log,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B20B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpLog,
-    true);
-constexpr const TFunction function_log_20B(
-    BuiltInId::log_Float3,
-    BuiltInName::log,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpLog,
-    true);
-constexpr const TFunction function_log_30B(
-    BuiltInId::log_Float4,
-    BuiltInName::log,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B00B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpLog,
-    true);
-constexpr const TFunction function_exp2_00B(
-    BuiltInId::exp2_Float1,
-    BuiltInName::exp2,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpExp2,
-    true);
-constexpr const TFunction function_exp2_10B(
-    BuiltInId::exp2_Float2,
-    BuiltInName::exp2,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B20B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpExp2,
-    true);
-constexpr const TFunction function_exp2_20B(
-    BuiltInId::exp2_Float3,
-    BuiltInName::exp2,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpExp2,
-    true);
-constexpr const TFunction function_exp2_30B(
-    BuiltInId::exp2_Float4,
-    BuiltInName::exp2,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B00B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpExp2,
-    true);
-constexpr const TFunction function_log2_00B(
-    BuiltInId::log2_Float1,
-    BuiltInName::log2,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpLog2,
-    true);
-constexpr const TFunction function_log2_10B(
-    BuiltInId::log2_Float2,
-    BuiltInName::log2,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B20B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpLog2,
-    true);
-constexpr const TFunction function_log2_20B(
-    BuiltInId::log2_Float3,
-    BuiltInName::log2,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpLog2,
-    true);
-constexpr const TFunction function_log2_30B(
-    BuiltInId::log2_Float4,
-    BuiltInName::log2,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B00B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpLog2,
-    true);
-constexpr const TFunction function_sqrt_00B(
-    BuiltInId::sqrt_Float1,
-    BuiltInName::sqrt,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpSqrt,
-    true);
-constexpr const TFunction function_sqrt_10B(
-    BuiltInId::sqrt_Float2,
-    BuiltInName::sqrt,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B20B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpSqrt,
-    true);
-constexpr const TFunction function_sqrt_20B(
-    BuiltInId::sqrt_Float3,
-    BuiltInName::sqrt,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpSqrt,
-    true);
-constexpr const TFunction function_sqrt_30B(
-    BuiltInId::sqrt_Float4,
-    BuiltInName::sqrt,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B00B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpSqrt,
-    true);
-constexpr const TFunction function_inversesqrt_00B(
+constexpr const TFunction radians_00B(BuiltInId::radians_Float1,
+                                      BuiltInName::radians,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p00B30B,
+                                      1,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                      EOpRadians,
+                                      true);
+constexpr const TFunction radians_10B(BuiltInId::radians_Float2,
+                                      BuiltInName::radians,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p10B20B,
+                                      1,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                      EOpRadians,
+                                      true);
+constexpr const TFunction radians_20B(BuiltInId::radians_Float3,
+                                      BuiltInName::radians,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p20B10B,
+                                      1,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                      EOpRadians,
+                                      true);
+constexpr const TFunction radians_30B(BuiltInId::radians_Float4,
+                                      BuiltInName::radians,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p30B00B00B,
+                                      1,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                      EOpRadians,
+                                      true);
+constexpr const TFunction degrees_00B(BuiltInId::degrees_Float1,
+                                      BuiltInName::degrees,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p00B30B,
+                                      1,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                      EOpDegrees,
+                                      true);
+constexpr const TFunction degrees_10B(BuiltInId::degrees_Float2,
+                                      BuiltInName::degrees,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p10B20B,
+                                      1,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                      EOpDegrees,
+                                      true);
+constexpr const TFunction degrees_20B(BuiltInId::degrees_Float3,
+                                      BuiltInName::degrees,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p20B10B,
+                                      1,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                      EOpDegrees,
+                                      true);
+constexpr const TFunction degrees_30B(BuiltInId::degrees_Float4,
+                                      BuiltInName::degrees,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p30B00B00B,
+                                      1,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                      EOpDegrees,
+                                      true);
+constexpr const TFunction sin_00B(BuiltInId::sin_Float1,
+                                  BuiltInName::sin,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p00B30B,
+                                  1,
+                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                  EOpSin,
+                                  true);
+constexpr const TFunction sin_10B(BuiltInId::sin_Float2,
+                                  BuiltInName::sin,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p10B20B,
+                                  1,
+                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                  EOpSin,
+                                  true);
+constexpr const TFunction sin_20B(BuiltInId::sin_Float3,
+                                  BuiltInName::sin,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p20B10B,
+                                  1,
+                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                  EOpSin,
+                                  true);
+constexpr const TFunction sin_30B(BuiltInId::sin_Float4,
+                                  BuiltInName::sin,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p30B00B00B,
+                                  1,
+                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                  EOpSin,
+                                  true);
+constexpr const TFunction cos_00B(BuiltInId::cos_Float1,
+                                  BuiltInName::cos,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p00B30B,
+                                  1,
+                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                  EOpCos,
+                                  true);
+constexpr const TFunction cos_10B(BuiltInId::cos_Float2,
+                                  BuiltInName::cos,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p10B20B,
+                                  1,
+                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                  EOpCos,
+                                  true);
+constexpr const TFunction cos_20B(BuiltInId::cos_Float3,
+                                  BuiltInName::cos,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p20B10B,
+                                  1,
+                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                  EOpCos,
+                                  true);
+constexpr const TFunction cos_30B(BuiltInId::cos_Float4,
+                                  BuiltInName::cos,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p30B00B00B,
+                                  1,
+                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                  EOpCos,
+                                  true);
+constexpr const TFunction tan_00B(BuiltInId::tan_Float1,
+                                  BuiltInName::tan,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p00B30B,
+                                  1,
+                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                  EOpTan,
+                                  true);
+constexpr const TFunction tan_10B(BuiltInId::tan_Float2,
+                                  BuiltInName::tan,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p10B20B,
+                                  1,
+                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                  EOpTan,
+                                  true);
+constexpr const TFunction tan_20B(BuiltInId::tan_Float3,
+                                  BuiltInName::tan,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p20B10B,
+                                  1,
+                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                  EOpTan,
+                                  true);
+constexpr const TFunction tan_30B(BuiltInId::tan_Float4,
+                                  BuiltInName::tan,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p30B00B00B,
+                                  1,
+                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                  EOpTan,
+                                  true);
+constexpr const TFunction asin_00B(BuiltInId::asin_Float1,
+                                   BuiltInName::asin,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p00B30B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                   EOpAsin,
+                                   true);
+constexpr const TFunction asin_10B(BuiltInId::asin_Float2,
+                                   BuiltInName::asin,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p10B20B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                   EOpAsin,
+                                   true);
+constexpr const TFunction asin_20B(BuiltInId::asin_Float3,
+                                   BuiltInName::asin,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p20B10B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                   EOpAsin,
+                                   true);
+constexpr const TFunction asin_30B(BuiltInId::asin_Float4,
+                                   BuiltInName::asin,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p30B00B00B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                   EOpAsin,
+                                   true);
+constexpr const TFunction acos_00B(BuiltInId::acos_Float1,
+                                   BuiltInName::acos,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p00B30B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                   EOpAcos,
+                                   true);
+constexpr const TFunction acos_10B(BuiltInId::acos_Float2,
+                                   BuiltInName::acos,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p10B20B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                   EOpAcos,
+                                   true);
+constexpr const TFunction acos_20B(BuiltInId::acos_Float3,
+                                   BuiltInName::acos,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p20B10B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                   EOpAcos,
+                                   true);
+constexpr const TFunction acos_30B(BuiltInId::acos_Float4,
+                                   BuiltInName::acos,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p30B00B00B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                   EOpAcos,
+                                   true);
+constexpr const TFunction atan_00B00B(BuiltInId::atan_Float1_Float1,
+                                      BuiltInName::atan,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p00B00B00F,
+                                      2,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                      EOpAtan,
+                                      true);
+constexpr const TFunction atan_10B10B(BuiltInId::atan_Float2_Float2,
+                                      BuiltInName::atan,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p10B10B10F,
+                                      2,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                      EOpAtan,
+                                      true);
+constexpr const TFunction atan_20B20B(BuiltInId::atan_Float3_Float3,
+                                      BuiltInName::atan,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p20B20B20F,
+                                      2,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                      EOpAtan,
+                                      true);
+constexpr const TFunction atan_30B30B(BuiltInId::atan_Float4_Float4,
+                                      BuiltInName::atan,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p30B30B30F,
+                                      2,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                      EOpAtan,
+                                      true);
+constexpr const TFunction atan_00B(BuiltInId::atan_Float1,
+                                   BuiltInName::atan,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p00B30B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                   EOpAtan,
+                                   true);
+constexpr const TFunction atan_10B(BuiltInId::atan_Float2,
+                                   BuiltInName::atan,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p10B20B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                   EOpAtan,
+                                   true);
+constexpr const TFunction atan_20B(BuiltInId::atan_Float3,
+                                   BuiltInName::atan,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p20B10B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                   EOpAtan,
+                                   true);
+constexpr const TFunction atan_30B(BuiltInId::atan_Float4,
+                                   BuiltInName::atan,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p30B00B00B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                   EOpAtan,
+                                   true);
+constexpr const TFunction sinh_00B(BuiltInId::sinh_Float1,
+                                   BuiltInName::sinh,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p00B30B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                   EOpSinh,
+                                   true);
+constexpr const TFunction sinh_10B(BuiltInId::sinh_Float2,
+                                   BuiltInName::sinh,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p10B20B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                   EOpSinh,
+                                   true);
+constexpr const TFunction sinh_20B(BuiltInId::sinh_Float3,
+                                   BuiltInName::sinh,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p20B10B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                   EOpSinh,
+                                   true);
+constexpr const TFunction sinh_30B(BuiltInId::sinh_Float4,
+                                   BuiltInName::sinh,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p30B00B00B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                   EOpSinh,
+                                   true);
+constexpr const TFunction cosh_00B(BuiltInId::cosh_Float1,
+                                   BuiltInName::cosh,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p00B30B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                   EOpCosh,
+                                   true);
+constexpr const TFunction cosh_10B(BuiltInId::cosh_Float2,
+                                   BuiltInName::cosh,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p10B20B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                   EOpCosh,
+                                   true);
+constexpr const TFunction cosh_20B(BuiltInId::cosh_Float3,
+                                   BuiltInName::cosh,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p20B10B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                   EOpCosh,
+                                   true);
+constexpr const TFunction cosh_30B(BuiltInId::cosh_Float4,
+                                   BuiltInName::cosh,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p30B00B00B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                   EOpCosh,
+                                   true);
+constexpr const TFunction tanh_00B(BuiltInId::tanh_Float1,
+                                   BuiltInName::tanh,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p00B30B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                   EOpTanh,
+                                   true);
+constexpr const TFunction tanh_10B(BuiltInId::tanh_Float2,
+                                   BuiltInName::tanh,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p10B20B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                   EOpTanh,
+                                   true);
+constexpr const TFunction tanh_20B(BuiltInId::tanh_Float3,
+                                   BuiltInName::tanh,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p20B10B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                   EOpTanh,
+                                   true);
+constexpr const TFunction tanh_30B(BuiltInId::tanh_Float4,
+                                   BuiltInName::tanh,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p30B00B00B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                   EOpTanh,
+                                   true);
+constexpr const TFunction asinh_00B(BuiltInId::asinh_Float1,
+                                    BuiltInName::asinh,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p00B30B,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                    EOpAsinh,
+                                    true);
+constexpr const TFunction asinh_10B(BuiltInId::asinh_Float2,
+                                    BuiltInName::asinh,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p10B20B,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                    EOpAsinh,
+                                    true);
+constexpr const TFunction asinh_20B(BuiltInId::asinh_Float3,
+                                    BuiltInName::asinh,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p20B10B,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                    EOpAsinh,
+                                    true);
+constexpr const TFunction asinh_30B(BuiltInId::asinh_Float4,
+                                    BuiltInName::asinh,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p30B00B00B,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                    EOpAsinh,
+                                    true);
+constexpr const TFunction acosh_00B(BuiltInId::acosh_Float1,
+                                    BuiltInName::acosh,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p00B30B,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                    EOpAcosh,
+                                    true);
+constexpr const TFunction acosh_10B(BuiltInId::acosh_Float2,
+                                    BuiltInName::acosh,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p10B20B,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                    EOpAcosh,
+                                    true);
+constexpr const TFunction acosh_20B(BuiltInId::acosh_Float3,
+                                    BuiltInName::acosh,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p20B10B,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                    EOpAcosh,
+                                    true);
+constexpr const TFunction acosh_30B(BuiltInId::acosh_Float4,
+                                    BuiltInName::acosh,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p30B00B00B,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                    EOpAcosh,
+                                    true);
+constexpr const TFunction atanh_00B(BuiltInId::atanh_Float1,
+                                    BuiltInName::atanh,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p00B30B,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                    EOpAtanh,
+                                    true);
+constexpr const TFunction atanh_10B(BuiltInId::atanh_Float2,
+                                    BuiltInName::atanh,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p10B20B,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                    EOpAtanh,
+                                    true);
+constexpr const TFunction atanh_20B(BuiltInId::atanh_Float3,
+                                    BuiltInName::atanh,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p20B10B,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                    EOpAtanh,
+                                    true);
+constexpr const TFunction atanh_30B(BuiltInId::atanh_Float4,
+                                    BuiltInName::atanh,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p30B00B00B,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                    EOpAtanh,
+                                    true);
+constexpr const TFunction pow_00B00B(BuiltInId::pow_Float1_Float1,
+                                     BuiltInName::pow,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p00B00B00F,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                     EOpPow,
+                                     true);
+constexpr const TFunction pow_10B10B(BuiltInId::pow_Float2_Float2,
+                                     BuiltInName::pow,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p10B10B10F,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                     EOpPow,
+                                     true);
+constexpr const TFunction pow_20B20B(BuiltInId::pow_Float3_Float3,
+                                     BuiltInName::pow,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p20B20B20F,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                     EOpPow,
+                                     true);
+constexpr const TFunction pow_30B30B(BuiltInId::pow_Float4_Float4,
+                                     BuiltInName::pow,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p30B30B30F,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                     EOpPow,
+                                     true);
+constexpr const TFunction exp_00B(BuiltInId::exp_Float1,
+                                  BuiltInName::exp,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p00B30B,
+                                  1,
+                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                  EOpExp,
+                                  true);
+constexpr const TFunction exp_10B(BuiltInId::exp_Float2,
+                                  BuiltInName::exp,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p10B20B,
+                                  1,
+                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                  EOpExp,
+                                  true);
+constexpr const TFunction exp_20B(BuiltInId::exp_Float3,
+                                  BuiltInName::exp,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p20B10B,
+                                  1,
+                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                  EOpExp,
+                                  true);
+constexpr const TFunction exp_30B(BuiltInId::exp_Float4,
+                                  BuiltInName::exp,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p30B00B00B,
+                                  1,
+                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                  EOpExp,
+                                  true);
+constexpr const TFunction log_00B(BuiltInId::log_Float1,
+                                  BuiltInName::log,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p00B30B,
+                                  1,
+                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                  EOpLog,
+                                  true);
+constexpr const TFunction log_10B(BuiltInId::log_Float2,
+                                  BuiltInName::log,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p10B20B,
+                                  1,
+                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                  EOpLog,
+                                  true);
+constexpr const TFunction log_20B(BuiltInId::log_Float3,
+                                  BuiltInName::log,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p20B10B,
+                                  1,
+                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                  EOpLog,
+                                  true);
+constexpr const TFunction log_30B(BuiltInId::log_Float4,
+                                  BuiltInName::log,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p30B00B00B,
+                                  1,
+                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                  EOpLog,
+                                  true);
+constexpr const TFunction exp2_00B(BuiltInId::exp2_Float1,
+                                   BuiltInName::exp2,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p00B30B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                   EOpExp2,
+                                   true);
+constexpr const TFunction exp2_10B(BuiltInId::exp2_Float2,
+                                   BuiltInName::exp2,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p10B20B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                   EOpExp2,
+                                   true);
+constexpr const TFunction exp2_20B(BuiltInId::exp2_Float3,
+                                   BuiltInName::exp2,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p20B10B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                   EOpExp2,
+                                   true);
+constexpr const TFunction exp2_30B(BuiltInId::exp2_Float4,
+                                   BuiltInName::exp2,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p30B00B00B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                   EOpExp2,
+                                   true);
+constexpr const TFunction log2_00B(BuiltInId::log2_Float1,
+                                   BuiltInName::log2,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p00B30B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                   EOpLog2,
+                                   true);
+constexpr const TFunction log2_10B(BuiltInId::log2_Float2,
+                                   BuiltInName::log2,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p10B20B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                   EOpLog2,
+                                   true);
+constexpr const TFunction log2_20B(BuiltInId::log2_Float3,
+                                   BuiltInName::log2,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p20B10B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                   EOpLog2,
+                                   true);
+constexpr const TFunction log2_30B(BuiltInId::log2_Float4,
+                                   BuiltInName::log2,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p30B00B00B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                   EOpLog2,
+                                   true);
+constexpr const TFunction sqrt_00B(BuiltInId::sqrt_Float1,
+                                   BuiltInName::sqrt,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p00B30B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                   EOpSqrt,
+                                   true);
+constexpr const TFunction sqrt_10B(BuiltInId::sqrt_Float2,
+                                   BuiltInName::sqrt,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p10B20B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                   EOpSqrt,
+                                   true);
+constexpr const TFunction sqrt_20B(BuiltInId::sqrt_Float3,
+                                   BuiltInName::sqrt,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p20B10B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                   EOpSqrt,
+                                   true);
+constexpr const TFunction sqrt_30B(BuiltInId::sqrt_Float4,
+                                   BuiltInName::sqrt,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p30B00B00B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                   EOpSqrt,
+                                   true);
+constexpr const TFunction inversesqrt_00B(
     BuiltInId::inversesqrt_Float1,
     BuiltInName::inversesqrt,
     TExtension::UNDEFINED,
@@ -3395,7 +3151,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpInversesqrt,
     true);
-constexpr const TFunction function_inversesqrt_10B(
+constexpr const TFunction inversesqrt_10B(
     BuiltInId::inversesqrt_Float2,
     BuiltInName::inversesqrt,
     TExtension::UNDEFINED,
@@ -3404,7 +3160,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpInversesqrt,
     true);
-constexpr const TFunction function_inversesqrt_20B(
+constexpr const TFunction inversesqrt_20B(
     BuiltInId::inversesqrt_Float3,
     BuiltInName::inversesqrt,
     TExtension::UNDEFINED,
@@ -3413,7 +3169,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpInversesqrt,
     true);
-constexpr const TFunction function_inversesqrt_30B(
+constexpr const TFunction inversesqrt_30B(
     BuiltInId::inversesqrt_Float4,
     BuiltInName::inversesqrt,
     TExtension::UNDEFINED,
@@ -3422,804 +3178,719 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpInversesqrt,
     true);
-constexpr const TFunction function_abs_00B(
-    BuiltInId::abs_Float1,
-    BuiltInName::abs,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpAbs,
-    true);
-constexpr const TFunction function_abs_10B(
-    BuiltInId::abs_Float2,
-    BuiltInName::abs,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B20B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpAbs,
-    true);
-constexpr const TFunction function_abs_20B(
-    BuiltInId::abs_Float3,
-    BuiltInName::abs,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpAbs,
-    true);
-constexpr const TFunction function_abs_30B(
-    BuiltInId::abs_Float4,
-    BuiltInName::abs,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B00B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpAbs,
-    true);
-constexpr const TFunction function_abs_00D(BuiltInId::abs_Int1,
-                                           BuiltInName::abs,
-                                           TExtension::UNDEFINED,
-                                           BuiltInParameters::p00D00D00D00D,
-                                           1,
-                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
-                                           EOpAbs,
-                                           true);
-constexpr const TFunction function_abs_10D(BuiltInId::abs_Int2,
-                                           BuiltInName::abs,
-                                           TExtension::UNDEFINED,
-                                           BuiltInParameters::p10D00D00D,
-                                           1,
-                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-                                           EOpAbs,
-                                           true);
-constexpr const TFunction function_abs_20D(BuiltInId::abs_Int3,
-                                           BuiltInName::abs,
-                                           TExtension::UNDEFINED,
-                                           BuiltInParameters::p20D20D00D00D,
-                                           1,
-                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
-                                           EOpAbs,
-                                           true);
-constexpr const TFunction function_abs_30D(BuiltInId::abs_Int4,
-                                           BuiltInName::abs,
-                                           TExtension::UNDEFINED,
-                                           BuiltInParameters::p30D00D00D,
-                                           1,
-                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-                                           EOpAbs,
-                                           true);
-constexpr const TFunction function_sign_00B(
-    BuiltInId::sign_Float1,
-    BuiltInName::sign,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpSign,
-    true);
-constexpr const TFunction function_sign_10B(
-    BuiltInId::sign_Float2,
-    BuiltInName::sign,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B20B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpSign,
-    true);
-constexpr const TFunction function_sign_20B(
-    BuiltInId::sign_Float3,
-    BuiltInName::sign,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpSign,
-    true);
-constexpr const TFunction function_sign_30B(
-    BuiltInId::sign_Float4,
-    BuiltInName::sign,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B00B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpSign,
-    true);
-constexpr const TFunction function_sign_00D(
-    BuiltInId::sign_Int1,
-    BuiltInName::sign,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00D00D00D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpSign,
-    true);
-constexpr const TFunction function_sign_10D(
-    BuiltInId::sign_Int2,
-    BuiltInName::sign,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10D00D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpSign,
-    true);
-constexpr const TFunction function_sign_20D(
-    BuiltInId::sign_Int3,
-    BuiltInName::sign,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20D20D00D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpSign,
-    true);
-constexpr const TFunction function_sign_30D(
-    BuiltInId::sign_Int4,
-    BuiltInName::sign,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30D00D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpSign,
-    true);
-constexpr const TFunction function_floor_00B(
-    BuiltInId::floor_Float1,
-    BuiltInName::floor,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpFloor,
-    true);
-constexpr const TFunction function_floor_10B(
-    BuiltInId::floor_Float2,
-    BuiltInName::floor,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B20B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpFloor,
-    true);
-constexpr const TFunction function_floor_20B(
-    BuiltInId::floor_Float3,
-    BuiltInName::floor,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpFloor,
-    true);
-constexpr const TFunction function_floor_30B(
-    BuiltInId::floor_Float4,
-    BuiltInName::floor,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B00B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpFloor,
-    true);
-constexpr const TFunction function_trunc_00B(
-    BuiltInId::trunc_Float1,
-    BuiltInName::trunc,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpTrunc,
-    true);
-constexpr const TFunction function_trunc_10B(
-    BuiltInId::trunc_Float2,
-    BuiltInName::trunc,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B20B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpTrunc,
-    true);
-constexpr const TFunction function_trunc_20B(
-    BuiltInId::trunc_Float3,
-    BuiltInName::trunc,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpTrunc,
-    true);
-constexpr const TFunction function_trunc_30B(
-    BuiltInId::trunc_Float4,
-    BuiltInName::trunc,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B00B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpTrunc,
-    true);
-constexpr const TFunction function_round_00B(
-    BuiltInId::round_Float1,
-    BuiltInName::round,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpRound,
-    true);
-constexpr const TFunction function_round_10B(
-    BuiltInId::round_Float2,
-    BuiltInName::round,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B20B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpRound,
-    true);
-constexpr const TFunction function_round_20B(
-    BuiltInId::round_Float3,
-    BuiltInName::round,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpRound,
-    true);
-constexpr const TFunction function_round_30B(
-    BuiltInId::round_Float4,
-    BuiltInName::round,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B00B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpRound,
-    true);
-constexpr const TFunction function_roundEven_00B(
-    BuiltInId::roundEven_Float1,
-    BuiltInName::roundEven,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpRoundEven,
-    true);
-constexpr const TFunction function_roundEven_10B(
-    BuiltInId::roundEven_Float2,
-    BuiltInName::roundEven,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B20B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpRoundEven,
-    true);
-constexpr const TFunction function_roundEven_20B(
-    BuiltInId::roundEven_Float3,
-    BuiltInName::roundEven,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpRoundEven,
-    true);
-constexpr const TFunction function_roundEven_30B(
-    BuiltInId::roundEven_Float4,
-    BuiltInName::roundEven,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B00B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpRoundEven,
-    true);
-constexpr const TFunction function_ceil_00B(
-    BuiltInId::ceil_Float1,
-    BuiltInName::ceil,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpCeil,
-    true);
-constexpr const TFunction function_ceil_10B(
-    BuiltInId::ceil_Float2,
-    BuiltInName::ceil,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B20B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpCeil,
-    true);
-constexpr const TFunction function_ceil_20B(
-    BuiltInId::ceil_Float3,
-    BuiltInName::ceil,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpCeil,
-    true);
-constexpr const TFunction function_ceil_30B(
-    BuiltInId::ceil_Float4,
-    BuiltInName::ceil,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B00B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCeil,
-    true);
-constexpr const TFunction function_fract_00B(
-    BuiltInId::fract_Float1,
-    BuiltInName::fract,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpFract,
-    true);
-constexpr const TFunction function_fract_10B(
-    BuiltInId::fract_Float2,
-    BuiltInName::fract,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B20B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpFract,
-    true);
-constexpr const TFunction function_fract_20B(
-    BuiltInId::fract_Float3,
-    BuiltInName::fract,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpFract,
-    true);
-constexpr const TFunction function_fract_30B(
-    BuiltInId::fract_Float4,
-    BuiltInName::fract,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B00B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpFract,
-    true);
-constexpr const TFunction function_mod_00B00B(
-    BuiltInId::mod_Float1_Float1,
-    BuiltInName::mod,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B00F,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpMod,
-    true);
-constexpr const TFunction function_mod_10B00B(
-    BuiltInId::mod_Float2_Float1,
-    BuiltInName::mod,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B00B00B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpMod,
-    true);
-constexpr const TFunction function_mod_20B00B(
-    BuiltInId::mod_Float3_Float1,
-    BuiltInName::mod,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B00B00B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpMod,
-    true);
-constexpr const TFunction function_mod_30B00B(
-    BuiltInId::mod_Float4_Float1,
-    BuiltInName::mod,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B00B00B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpMod,
-    true);
-constexpr const TFunction function_mod_10B10B(
-    BuiltInId::mod_Float2_Float2,
-    BuiltInName::mod,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B10B10F,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpMod,
-    true);
-constexpr const TFunction function_mod_20B20B(
-    BuiltInId::mod_Float3_Float3,
-    BuiltInName::mod,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B20F,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpMod,
-    true);
-constexpr const TFunction function_mod_30B30B(
-    BuiltInId::mod_Float4_Float4,
-    BuiltInName::mod,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30B30F,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpMod,
-    true);
-constexpr const TFunction function_min_00B00B(
-    BuiltInId::min_Float1_Float1,
-    BuiltInName::min,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B00F,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpMin,
-    true);
-constexpr const TFunction function_min_10B00B(
-    BuiltInId::min_Float2_Float1,
-    BuiltInName::min,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B00B00B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpMin,
-    true);
-constexpr const TFunction function_min_20B00B(
-    BuiltInId::min_Float3_Float1,
-    BuiltInName::min,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B00B00B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpMin,
-    true);
-constexpr const TFunction function_min_30B00B(
-    BuiltInId::min_Float4_Float1,
-    BuiltInName::min,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B00B00B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpMin,
-    true);
-constexpr const TFunction function_min_10B10B(
-    BuiltInId::min_Float2_Float2,
-    BuiltInName::min,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B10B10F,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpMin,
-    true);
-constexpr const TFunction function_min_20B20B(
-    BuiltInId::min_Float3_Float3,
-    BuiltInName::min,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B20F,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpMin,
-    true);
-constexpr const TFunction function_min_30B30B(
-    BuiltInId::min_Float4_Float4,
-    BuiltInName::min,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30B30F,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpMin,
-    true);
-constexpr const TFunction function_min_00D00D(
-    BuiltInId::min_Int1_Int1,
-    BuiltInName::min,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00D00D00D00D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpMin,
-    true);
-constexpr const TFunction function_min_10D10D(
-    BuiltInId::min_Int2_Int2,
-    BuiltInName::min,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10D10D10D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpMin,
-    true);
-constexpr const TFunction function_min_20D20D(
-    BuiltInId::min_Int3_Int3,
-    BuiltInName::min,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20D20D00D00D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpMin,
-    true);
-constexpr const TFunction function_min_30D30D(
-    BuiltInId::min_Int4_Int4,
-    BuiltInName::min,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30D30D30D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpMin,
-    true);
-constexpr const TFunction function_min_10D00D(
-    BuiltInId::min_Int2_Int1,
-    BuiltInName::min,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10D00D00D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpMin,
-    true);
-constexpr const TFunction function_min_20D00D(
-    BuiltInId::min_Int3_Int1,
-    BuiltInName::min,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20D00D00D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpMin,
-    true);
-constexpr const TFunction function_min_30D00D(
-    BuiltInId::min_Int4_Int1,
-    BuiltInName::min,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30D00D00D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpMin,
-    true);
-constexpr const TFunction function_min_00E00E(
-    BuiltInId::min_UInt1_UInt1,
-    BuiltInName::min,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00E00E00E,
-    2,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpMin,
-    true);
-constexpr const TFunction function_min_10E10E(
-    BuiltInId::min_UInt2_UInt2,
-    BuiltInName::min,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10E10E10E,
-    2,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpMin,
-    true);
-constexpr const TFunction function_min_20E20E(
-    BuiltInId::min_UInt3_UInt3,
-    BuiltInName::min,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20E20E00D00D,
-    2,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpMin,
-    true);
-constexpr const TFunction function_min_30E30E(
-    BuiltInId::min_UInt4_UInt4,
-    BuiltInName::min,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30E30E00D00D,
-    2,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpMin,
-    true);
-constexpr const TFunction function_min_10E00E(
-    BuiltInId::min_UInt2_UInt1,
-    BuiltInName::min,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10E00E00E,
-    2,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpMin,
-    true);
-constexpr const TFunction function_min_20E00E(
-    BuiltInId::min_UInt3_UInt1,
-    BuiltInName::min,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20E00E00E,
-    2,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpMin,
-    true);
-constexpr const TFunction function_min_30E00E(
-    BuiltInId::min_UInt4_UInt1,
-    BuiltInName::min,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30E00E00E,
-    2,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpMin,
-    true);
-constexpr const TFunction function_max_00B00B(
-    BuiltInId::max_Float1_Float1,
-    BuiltInName::max,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B00F,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpMax,
-    true);
-constexpr const TFunction function_max_10B00B(
-    BuiltInId::max_Float2_Float1,
-    BuiltInName::max,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B00B00B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpMax,
-    true);
-constexpr const TFunction function_max_20B00B(
-    BuiltInId::max_Float3_Float1,
-    BuiltInName::max,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B00B00B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpMax,
-    true);
-constexpr const TFunction function_max_30B00B(
-    BuiltInId::max_Float4_Float1,
-    BuiltInName::max,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B00B00B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpMax,
-    true);
-constexpr const TFunction function_max_10B10B(
-    BuiltInId::max_Float2_Float2,
-    BuiltInName::max,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B10B10F,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpMax,
-    true);
-constexpr const TFunction function_max_20B20B(
-    BuiltInId::max_Float3_Float3,
-    BuiltInName::max,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B20F,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpMax,
-    true);
-constexpr const TFunction function_max_30B30B(
-    BuiltInId::max_Float4_Float4,
-    BuiltInName::max,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30B30F,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpMax,
-    true);
-constexpr const TFunction function_max_00D00D(
-    BuiltInId::max_Int1_Int1,
-    BuiltInName::max,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00D00D00D00D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpMax,
-    true);
-constexpr const TFunction function_max_10D10D(
-    BuiltInId::max_Int2_Int2,
-    BuiltInName::max,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10D10D10D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpMax,
-    true);
-constexpr const TFunction function_max_20D20D(
-    BuiltInId::max_Int3_Int3,
-    BuiltInName::max,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20D20D00D00D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpMax,
-    true);
-constexpr const TFunction function_max_30D30D(
-    BuiltInId::max_Int4_Int4,
-    BuiltInName::max,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30D30D30D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpMax,
-    true);
-constexpr const TFunction function_max_10D00D(
-    BuiltInId::max_Int2_Int1,
-    BuiltInName::max,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10D00D00D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpMax,
-    true);
-constexpr const TFunction function_max_20D00D(
-    BuiltInId::max_Int3_Int1,
-    BuiltInName::max,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20D00D00D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpMax,
-    true);
-constexpr const TFunction function_max_30D00D(
-    BuiltInId::max_Int4_Int1,
-    BuiltInName::max,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30D00D00D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpMax,
-    true);
-constexpr const TFunction function_max_00E00E(
-    BuiltInId::max_UInt1_UInt1,
-    BuiltInName::max,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00E00E00E,
-    2,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpMax,
-    true);
-constexpr const TFunction function_max_10E10E(
-    BuiltInId::max_UInt2_UInt2,
-    BuiltInName::max,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10E10E10E,
-    2,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpMax,
-    true);
-constexpr const TFunction function_max_20E20E(
-    BuiltInId::max_UInt3_UInt3,
-    BuiltInName::max,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20E20E00D00D,
-    2,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpMax,
-    true);
-constexpr const TFunction function_max_30E30E(
-    BuiltInId::max_UInt4_UInt4,
-    BuiltInName::max,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30E30E00D00D,
-    2,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpMax,
-    true);
-constexpr const TFunction function_max_10E00E(
-    BuiltInId::max_UInt2_UInt1,
-    BuiltInName::max,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10E00E00E,
-    2,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpMax,
-    true);
-constexpr const TFunction function_max_20E00E(
-    BuiltInId::max_UInt3_UInt1,
-    BuiltInName::max,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20E00E00E,
-    2,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpMax,
-    true);
-constexpr const TFunction function_max_30E00E(
-    BuiltInId::max_UInt4_UInt1,
-    BuiltInName::max,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30E00E00E,
-    2,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpMax,
-    true);
-constexpr const TFunction function_clamp_00B00B00B(
+constexpr const TFunction abs_00B(BuiltInId::abs_Float1,
+                                  BuiltInName::abs,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p00B30B,
+                                  1,
+                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                  EOpAbs,
+                                  true);
+constexpr const TFunction abs_10B(BuiltInId::abs_Float2,
+                                  BuiltInName::abs,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p10B20B,
+                                  1,
+                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                  EOpAbs,
+                                  true);
+constexpr const TFunction abs_20B(BuiltInId::abs_Float3,
+                                  BuiltInName::abs,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p20B10B,
+                                  1,
+                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                  EOpAbs,
+                                  true);
+constexpr const TFunction abs_30B(BuiltInId::abs_Float4,
+                                  BuiltInName::abs,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p30B00B00B,
+                                  1,
+                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                  EOpAbs,
+                                  true);
+constexpr const TFunction abs_00D(BuiltInId::abs_Int1,
+                                  BuiltInName::abs,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p00D00D00D00D,
+                                  1,
+                                  StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                  EOpAbs,
+                                  true);
+constexpr const TFunction abs_10D(BuiltInId::abs_Int2,
+                                  BuiltInName::abs,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p10D00D00D,
+                                  1,
+                                  StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                  EOpAbs,
+                                  true);
+constexpr const TFunction abs_20D(BuiltInId::abs_Int3,
+                                  BuiltInName::abs,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p20D20D00D00D,
+                                  1,
+                                  StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                  EOpAbs,
+                                  true);
+constexpr const TFunction abs_30D(BuiltInId::abs_Int4,
+                                  BuiltInName::abs,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p30D00D00D,
+                                  1,
+                                  StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                  EOpAbs,
+                                  true);
+constexpr const TFunction sign_00B(BuiltInId::sign_Float1,
+                                   BuiltInName::sign,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p00B30B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                   EOpSign,
+                                   true);
+constexpr const TFunction sign_10B(BuiltInId::sign_Float2,
+                                   BuiltInName::sign,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p10B20B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                   EOpSign,
+                                   true);
+constexpr const TFunction sign_20B(BuiltInId::sign_Float3,
+                                   BuiltInName::sign,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p20B10B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                   EOpSign,
+                                   true);
+constexpr const TFunction sign_30B(BuiltInId::sign_Float4,
+                                   BuiltInName::sign,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p30B00B00B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                   EOpSign,
+                                   true);
+constexpr const TFunction sign_00D(BuiltInId::sign_Int1,
+                                   BuiltInName::sign,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p00D00D00D00D,
+                                   1,
+                                   StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                   EOpSign,
+                                   true);
+constexpr const TFunction sign_10D(BuiltInId::sign_Int2,
+                                   BuiltInName::sign,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p10D00D00D,
+                                   1,
+                                   StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                   EOpSign,
+                                   true);
+constexpr const TFunction sign_20D(BuiltInId::sign_Int3,
+                                   BuiltInName::sign,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p20D20D00D00D,
+                                   1,
+                                   StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                   EOpSign,
+                                   true);
+constexpr const TFunction sign_30D(BuiltInId::sign_Int4,
+                                   BuiltInName::sign,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p30D00D00D,
+                                   1,
+                                   StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                   EOpSign,
+                                   true);
+constexpr const TFunction floor_00B(BuiltInId::floor_Float1,
+                                    BuiltInName::floor,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p00B30B,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                    EOpFloor,
+                                    true);
+constexpr const TFunction floor_10B(BuiltInId::floor_Float2,
+                                    BuiltInName::floor,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p10B20B,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                    EOpFloor,
+                                    true);
+constexpr const TFunction floor_20B(BuiltInId::floor_Float3,
+                                    BuiltInName::floor,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p20B10B,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                    EOpFloor,
+                                    true);
+constexpr const TFunction floor_30B(BuiltInId::floor_Float4,
+                                    BuiltInName::floor,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p30B00B00B,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                    EOpFloor,
+                                    true);
+constexpr const TFunction trunc_00B(BuiltInId::trunc_Float1,
+                                    BuiltInName::trunc,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p00B30B,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                    EOpTrunc,
+                                    true);
+constexpr const TFunction trunc_10B(BuiltInId::trunc_Float2,
+                                    BuiltInName::trunc,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p10B20B,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                    EOpTrunc,
+                                    true);
+constexpr const TFunction trunc_20B(BuiltInId::trunc_Float3,
+                                    BuiltInName::trunc,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p20B10B,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                    EOpTrunc,
+                                    true);
+constexpr const TFunction trunc_30B(BuiltInId::trunc_Float4,
+                                    BuiltInName::trunc,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p30B00B00B,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                    EOpTrunc,
+                                    true);
+constexpr const TFunction round_00B(BuiltInId::round_Float1,
+                                    BuiltInName::round,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p00B30B,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                    EOpRound,
+                                    true);
+constexpr const TFunction round_10B(BuiltInId::round_Float2,
+                                    BuiltInName::round,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p10B20B,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                    EOpRound,
+                                    true);
+constexpr const TFunction round_20B(BuiltInId::round_Float3,
+                                    BuiltInName::round,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p20B10B,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                    EOpRound,
+                                    true);
+constexpr const TFunction round_30B(BuiltInId::round_Float4,
+                                    BuiltInName::round,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p30B00B00B,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                    EOpRound,
+                                    true);
+constexpr const TFunction roundEven_00B(BuiltInId::roundEven_Float1,
+                                        BuiltInName::roundEven,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p00B30B,
+                                        1,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                        EOpRoundEven,
+                                        true);
+constexpr const TFunction roundEven_10B(BuiltInId::roundEven_Float2,
+                                        BuiltInName::roundEven,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p10B20B,
+                                        1,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                        EOpRoundEven,
+                                        true);
+constexpr const TFunction roundEven_20B(BuiltInId::roundEven_Float3,
+                                        BuiltInName::roundEven,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p20B10B,
+                                        1,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                        EOpRoundEven,
+                                        true);
+constexpr const TFunction roundEven_30B(BuiltInId::roundEven_Float4,
+                                        BuiltInName::roundEven,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p30B00B00B,
+                                        1,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                        EOpRoundEven,
+                                        true);
+constexpr const TFunction ceil_00B(BuiltInId::ceil_Float1,
+                                   BuiltInName::ceil,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p00B30B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                   EOpCeil,
+                                   true);
+constexpr const TFunction ceil_10B(BuiltInId::ceil_Float2,
+                                   BuiltInName::ceil,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p10B20B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                   EOpCeil,
+                                   true);
+constexpr const TFunction ceil_20B(BuiltInId::ceil_Float3,
+                                   BuiltInName::ceil,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p20B10B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                   EOpCeil,
+                                   true);
+constexpr const TFunction ceil_30B(BuiltInId::ceil_Float4,
+                                   BuiltInName::ceil,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p30B00B00B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                   EOpCeil,
+                                   true);
+constexpr const TFunction fract_00B(BuiltInId::fract_Float1,
+                                    BuiltInName::fract,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p00B30B,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                    EOpFract,
+                                    true);
+constexpr const TFunction fract_10B(BuiltInId::fract_Float2,
+                                    BuiltInName::fract,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p10B20B,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                    EOpFract,
+                                    true);
+constexpr const TFunction fract_20B(BuiltInId::fract_Float3,
+                                    BuiltInName::fract,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p20B10B,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                    EOpFract,
+                                    true);
+constexpr const TFunction fract_30B(BuiltInId::fract_Float4,
+                                    BuiltInName::fract,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p30B00B00B,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                    EOpFract,
+                                    true);
+constexpr const TFunction mod_00B00B(BuiltInId::mod_Float1_Float1,
+                                     BuiltInName::mod,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p00B00B00F,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                     EOpMod,
+                                     true);
+constexpr const TFunction mod_10B00B(BuiltInId::mod_Float2_Float1,
+                                     BuiltInName::mod,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p10B00B00B,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                     EOpMod,
+                                     true);
+constexpr const TFunction mod_20B00B(BuiltInId::mod_Float3_Float1,
+                                     BuiltInName::mod,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p20B00B00B,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                     EOpMod,
+                                     true);
+constexpr const TFunction mod_30B00B(BuiltInId::mod_Float4_Float1,
+                                     BuiltInName::mod,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p30B00B00B,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                     EOpMod,
+                                     true);
+constexpr const TFunction mod_10B10B(BuiltInId::mod_Float2_Float2,
+                                     BuiltInName::mod,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p10B10B10F,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                     EOpMod,
+                                     true);
+constexpr const TFunction mod_20B20B(BuiltInId::mod_Float3_Float3,
+                                     BuiltInName::mod,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p20B20B20F,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                     EOpMod,
+                                     true);
+constexpr const TFunction mod_30B30B(BuiltInId::mod_Float4_Float4,
+                                     BuiltInName::mod,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p30B30B30F,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                     EOpMod,
+                                     true);
+constexpr const TFunction min_00B00B(BuiltInId::min_Float1_Float1,
+                                     BuiltInName::min,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p00B00B00F,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                     EOpMin,
+                                     true);
+constexpr const TFunction min_10B00B(BuiltInId::min_Float2_Float1,
+                                     BuiltInName::min,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p10B00B00B,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                     EOpMin,
+                                     true);
+constexpr const TFunction min_20B00B(BuiltInId::min_Float3_Float1,
+                                     BuiltInName::min,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p20B00B00B,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                     EOpMin,
+                                     true);
+constexpr const TFunction min_30B00B(BuiltInId::min_Float4_Float1,
+                                     BuiltInName::min,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p30B00B00B,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                     EOpMin,
+                                     true);
+constexpr const TFunction min_10B10B(BuiltInId::min_Float2_Float2,
+                                     BuiltInName::min,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p10B10B10F,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                     EOpMin,
+                                     true);
+constexpr const TFunction min_20B20B(BuiltInId::min_Float3_Float3,
+                                     BuiltInName::min,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p20B20B20F,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                     EOpMin,
+                                     true);
+constexpr const TFunction min_30B30B(BuiltInId::min_Float4_Float4,
+                                     BuiltInName::min,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p30B30B30F,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                     EOpMin,
+                                     true);
+constexpr const TFunction min_00D00D(BuiltInId::min_Int1_Int1,
+                                     BuiltInName::min,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p00D00D00D00D,
+                                     2,
+                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                     EOpMin,
+                                     true);
+constexpr const TFunction min_10D10D(BuiltInId::min_Int2_Int2,
+                                     BuiltInName::min,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p10D10D10D,
+                                     2,
+                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                     EOpMin,
+                                     true);
+constexpr const TFunction min_20D20D(BuiltInId::min_Int3_Int3,
+                                     BuiltInName::min,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p20D20D00D00D,
+                                     2,
+                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                     EOpMin,
+                                     true);
+constexpr const TFunction min_30D30D(BuiltInId::min_Int4_Int4,
+                                     BuiltInName::min,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p30D30D30D,
+                                     2,
+                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                     EOpMin,
+                                     true);
+constexpr const TFunction min_10D00D(BuiltInId::min_Int2_Int1,
+                                     BuiltInName::min,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p10D00D00D,
+                                     2,
+                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                     EOpMin,
+                                     true);
+constexpr const TFunction min_20D00D(BuiltInId::min_Int3_Int1,
+                                     BuiltInName::min,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p20D00D00D,
+                                     2,
+                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                     EOpMin,
+                                     true);
+constexpr const TFunction min_30D00D(BuiltInId::min_Int4_Int1,
+                                     BuiltInName::min,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p30D00D00D,
+                                     2,
+                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                     EOpMin,
+                                     true);
+constexpr const TFunction min_00E00E(BuiltInId::min_UInt1_UInt1,
+                                     BuiltInName::min,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p00E00E00E,
+                                     2,
+                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                     EOpMin,
+                                     true);
+constexpr const TFunction min_10E10E(BuiltInId::min_UInt2_UInt2,
+                                     BuiltInName::min,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p10E10E10E,
+                                     2,
+                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                     EOpMin,
+                                     true);
+constexpr const TFunction min_20E20E(BuiltInId::min_UInt3_UInt3,
+                                     BuiltInName::min,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p20E20E00D00D,
+                                     2,
+                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                     EOpMin,
+                                     true);
+constexpr const TFunction min_30E30E(BuiltInId::min_UInt4_UInt4,
+                                     BuiltInName::min,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p30E30E00D00D,
+                                     2,
+                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                     EOpMin,
+                                     true);
+constexpr const TFunction min_10E00E(BuiltInId::min_UInt2_UInt1,
+                                     BuiltInName::min,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p10E00E00E,
+                                     2,
+                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                     EOpMin,
+                                     true);
+constexpr const TFunction min_20E00E(BuiltInId::min_UInt3_UInt1,
+                                     BuiltInName::min,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p20E00E00E,
+                                     2,
+                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                     EOpMin,
+                                     true);
+constexpr const TFunction min_30E00E(BuiltInId::min_UInt4_UInt1,
+                                     BuiltInName::min,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p30E00E00E,
+                                     2,
+                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                     EOpMin,
+                                     true);
+constexpr const TFunction max_00B00B(BuiltInId::max_Float1_Float1,
+                                     BuiltInName::max,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p00B00B00F,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                     EOpMax,
+                                     true);
+constexpr const TFunction max_10B00B(BuiltInId::max_Float2_Float1,
+                                     BuiltInName::max,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p10B00B00B,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                     EOpMax,
+                                     true);
+constexpr const TFunction max_20B00B(BuiltInId::max_Float3_Float1,
+                                     BuiltInName::max,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p20B00B00B,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                     EOpMax,
+                                     true);
+constexpr const TFunction max_30B00B(BuiltInId::max_Float4_Float1,
+                                     BuiltInName::max,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p30B00B00B,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                     EOpMax,
+                                     true);
+constexpr const TFunction max_10B10B(BuiltInId::max_Float2_Float2,
+                                     BuiltInName::max,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p10B10B10F,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                     EOpMax,
+                                     true);
+constexpr const TFunction max_20B20B(BuiltInId::max_Float3_Float3,
+                                     BuiltInName::max,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p20B20B20F,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                     EOpMax,
+                                     true);
+constexpr const TFunction max_30B30B(BuiltInId::max_Float4_Float4,
+                                     BuiltInName::max,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p30B30B30F,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                     EOpMax,
+                                     true);
+constexpr const TFunction max_00D00D(BuiltInId::max_Int1_Int1,
+                                     BuiltInName::max,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p00D00D00D00D,
+                                     2,
+                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                     EOpMax,
+                                     true);
+constexpr const TFunction max_10D10D(BuiltInId::max_Int2_Int2,
+                                     BuiltInName::max,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p10D10D10D,
+                                     2,
+                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                     EOpMax,
+                                     true);
+constexpr const TFunction max_20D20D(BuiltInId::max_Int3_Int3,
+                                     BuiltInName::max,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p20D20D00D00D,
+                                     2,
+                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                     EOpMax,
+                                     true);
+constexpr const TFunction max_30D30D(BuiltInId::max_Int4_Int4,
+                                     BuiltInName::max,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p30D30D30D,
+                                     2,
+                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                     EOpMax,
+                                     true);
+constexpr const TFunction max_10D00D(BuiltInId::max_Int2_Int1,
+                                     BuiltInName::max,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p10D00D00D,
+                                     2,
+                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                     EOpMax,
+                                     true);
+constexpr const TFunction max_20D00D(BuiltInId::max_Int3_Int1,
+                                     BuiltInName::max,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p20D00D00D,
+                                     2,
+                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                     EOpMax,
+                                     true);
+constexpr const TFunction max_30D00D(BuiltInId::max_Int4_Int1,
+                                     BuiltInName::max,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p30D00D00D,
+                                     2,
+                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                     EOpMax,
+                                     true);
+constexpr const TFunction max_00E00E(BuiltInId::max_UInt1_UInt1,
+                                     BuiltInName::max,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p00E00E00E,
+                                     2,
+                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                     EOpMax,
+                                     true);
+constexpr const TFunction max_10E10E(BuiltInId::max_UInt2_UInt2,
+                                     BuiltInName::max,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p10E10E10E,
+                                     2,
+                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                     EOpMax,
+                                     true);
+constexpr const TFunction max_20E20E(BuiltInId::max_UInt3_UInt3,
+                                     BuiltInName::max,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p20E20E00D00D,
+                                     2,
+                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                     EOpMax,
+                                     true);
+constexpr const TFunction max_30E30E(BuiltInId::max_UInt4_UInt4,
+                                     BuiltInName::max,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p30E30E00D00D,
+                                     2,
+                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                     EOpMax,
+                                     true);
+constexpr const TFunction max_10E00E(BuiltInId::max_UInt2_UInt1,
+                                     BuiltInName::max,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p10E00E00E,
+                                     2,
+                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                     EOpMax,
+                                     true);
+constexpr const TFunction max_20E00E(BuiltInId::max_UInt3_UInt1,
+                                     BuiltInName::max,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p20E00E00E,
+                                     2,
+                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                     EOpMax,
+                                     true);
+constexpr const TFunction max_30E00E(BuiltInId::max_UInt4_UInt1,
+                                     BuiltInName::max,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p30E00E00E,
+                                     2,
+                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                     EOpMax,
+                                     true);
+constexpr const TFunction clamp_00B00B00B(
     BuiltInId::clamp_Float1_Float1_Float1,
     BuiltInName::clamp,
     TExtension::UNDEFINED,
@@ -4228,7 +3899,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpClamp,
     true);
-constexpr const TFunction function_clamp_10B00B00B(
+constexpr const TFunction clamp_10B00B00B(
     BuiltInId::clamp_Float2_Float1_Float1,
     BuiltInName::clamp,
     TExtension::UNDEFINED,
@@ -4237,7 +3908,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpClamp,
     true);
-constexpr const TFunction function_clamp_20B00B00B(
+constexpr const TFunction clamp_20B00B00B(
     BuiltInId::clamp_Float3_Float1_Float1,
     BuiltInName::clamp,
     TExtension::UNDEFINED,
@@ -4246,7 +3917,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpClamp,
     true);
-constexpr const TFunction function_clamp_30B00B00B(
+constexpr const TFunction clamp_30B00B00B(
     BuiltInId::clamp_Float4_Float1_Float1,
     BuiltInName::clamp,
     TExtension::UNDEFINED,
@@ -4255,7 +3926,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpClamp,
     true);
-constexpr const TFunction function_clamp_10B10B10B(
+constexpr const TFunction clamp_10B10B10B(
     BuiltInId::clamp_Float2_Float2_Float2,
     BuiltInName::clamp,
     TExtension::UNDEFINED,
@@ -4264,7 +3935,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpClamp,
     true);
-constexpr const TFunction function_clamp_20B20B20B(
+constexpr const TFunction clamp_20B20B20B(
     BuiltInId::clamp_Float3_Float3_Float3,
     BuiltInName::clamp,
     TExtension::UNDEFINED,
@@ -4273,7 +3944,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpClamp,
     true);
-constexpr const TFunction function_clamp_30B30B30B(
+constexpr const TFunction clamp_30B30B30B(
     BuiltInId::clamp_Float4_Float4_Float4,
     BuiltInName::clamp,
     TExtension::UNDEFINED,
@@ -4282,295 +3953,263 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpClamp,
     true);
-constexpr const TFunction function_clamp_00D00D00D(
-    BuiltInId::clamp_Int1_Int1_Int1,
-    BuiltInName::clamp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00D00D00D00D,
-    3,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpClamp,
-    true);
-constexpr const TFunction function_clamp_10D00D00D(
-    BuiltInId::clamp_Int2_Int1_Int1,
-    BuiltInName::clamp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10D00D00D,
-    3,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpClamp,
-    true);
-constexpr const TFunction function_clamp_20D00D00D(
-    BuiltInId::clamp_Int3_Int1_Int1,
-    BuiltInName::clamp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20D00D00D,
-    3,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpClamp,
-    true);
-constexpr const TFunction function_clamp_30D00D00D(
-    BuiltInId::clamp_Int4_Int1_Int1,
-    BuiltInName::clamp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30D00D00D,
-    3,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpClamp,
-    true);
-constexpr const TFunction function_clamp_10D10D10D(
-    BuiltInId::clamp_Int2_Int2_Int2,
-    BuiltInName::clamp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10D10D10D,
-    3,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpClamp,
-    true);
-constexpr const TFunction function_clamp_20D20D20D(
-    BuiltInId::clamp_Int3_Int3_Int3,
-    BuiltInName::clamp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20D20D20D,
-    3,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpClamp,
-    true);
-constexpr const TFunction function_clamp_30D30D30D(
-    BuiltInId::clamp_Int4_Int4_Int4,
-    BuiltInName::clamp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30D30D30D,
-    3,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpClamp,
-    true);
-constexpr const TFunction function_clamp_00E00E00E(
-    BuiltInId::clamp_UInt1_UInt1_UInt1,
-    BuiltInName::clamp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00E00E00E,
-    3,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpClamp,
-    true);
-constexpr const TFunction function_clamp_10E00E00E(
-    BuiltInId::clamp_UInt2_UInt1_UInt1,
-    BuiltInName::clamp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10E00E00E,
-    3,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpClamp,
-    true);
-constexpr const TFunction function_clamp_20E00E00E(
-    BuiltInId::clamp_UInt3_UInt1_UInt1,
-    BuiltInName::clamp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20E00E00E,
-    3,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpClamp,
-    true);
-constexpr const TFunction function_clamp_30E00E00E(
-    BuiltInId::clamp_UInt4_UInt1_UInt1,
-    BuiltInName::clamp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30E00E00E,
-    3,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpClamp,
-    true);
-constexpr const TFunction function_clamp_10E10E10E(
-    BuiltInId::clamp_UInt2_UInt2_UInt2,
-    BuiltInName::clamp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10E10E10E,
-    3,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpClamp,
-    true);
-constexpr const TFunction function_clamp_20E20E20E(
-    BuiltInId::clamp_UInt3_UInt3_UInt3,
-    BuiltInName::clamp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20E20E20E,
-    3,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpClamp,
-    true);
-constexpr const TFunction function_clamp_30E30E30E(
-    BuiltInId::clamp_UInt4_UInt4_UInt4,
-    BuiltInName::clamp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30E30E30E,
-    3,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpClamp,
-    true);
-constexpr const TFunction function_mix_00B00B00B(
-    BuiltInId::mix_Float1_Float1_Float1,
-    BuiltInName::mix,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B00B,
-    3,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpMix,
-    true);
-constexpr const TFunction function_mix_10B10B00B(
-    BuiltInId::mix_Float2_Float2_Float1,
-    BuiltInName::mix,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B10B00B,
-    3,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpMix,
-    true);
-constexpr const TFunction function_mix_20B20B00B(
-    BuiltInId::mix_Float3_Float3_Float1,
-    BuiltInName::mix,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    3,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpMix,
-    true);
-constexpr const TFunction function_mix_30B30B00B(
-    BuiltInId::mix_Float4_Float4_Float1,
-    BuiltInName::mix,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30B00B,
-    3,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpMix,
-    true);
-constexpr const TFunction function_mix_10B10B10B(
-    BuiltInId::mix_Float2_Float2_Float2,
-    BuiltInName::mix,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B10B10B,
-    3,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpMix,
-    true);
-constexpr const TFunction function_mix_20B20B20B(
-    BuiltInId::mix_Float3_Float3_Float3,
-    BuiltInName::mix,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B20B,
-    3,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpMix,
-    true);
-constexpr const TFunction function_mix_30B30B30B(
-    BuiltInId::mix_Float4_Float4_Float4,
-    BuiltInName::mix,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30B30B,
-    3,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpMix,
-    true);
-constexpr const TFunction function_mix_00B00B00F(
-    BuiltInId::mix_Float1_Float1_Bool1,
-    BuiltInName::mix,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B00F,
-    3,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpMix,
-    true);
-constexpr const TFunction function_mix_10B10B10F(
-    BuiltInId::mix_Float2_Float2_Bool2,
-    BuiltInName::mix,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B10B10F,
-    3,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpMix,
-    true);
-constexpr const TFunction function_mix_20B20B20F(
-    BuiltInId::mix_Float3_Float3_Bool3,
-    BuiltInName::mix,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B20F,
-    3,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpMix,
-    true);
-constexpr const TFunction function_mix_30B30B30F(
-    BuiltInId::mix_Float4_Float4_Bool4,
-    BuiltInName::mix,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30B30F,
-    3,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpMix,
-    true);
-constexpr const TFunction function_step_00B00B(
-    BuiltInId::step_Float1_Float1,
-    BuiltInName::step,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B00F,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpStep,
-    true);
-constexpr const TFunction function_step_10B10B(
-    BuiltInId::step_Float2_Float2,
-    BuiltInName::step,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B10B10F,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpStep,
-    true);
-constexpr const TFunction function_step_20B20B(
-    BuiltInId::step_Float3_Float3,
-    BuiltInName::step,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B20F,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpStep,
-    true);
-constexpr const TFunction function_step_30B30B(
-    BuiltInId::step_Float4_Float4,
-    BuiltInName::step,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30B30F,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpStep,
-    true);
-constexpr const TFunction function_step_00B10B(
-    BuiltInId::step_Float1_Float2,
-    BuiltInName::step,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B10B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpStep,
-    true);
-constexpr const TFunction function_step_00B20B(
-    BuiltInId::step_Float1_Float3,
-    BuiltInName::step,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B20B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpStep,
-    true);
-constexpr const TFunction function_step_00B30B(
-    BuiltInId::step_Float1_Float4,
-    BuiltInName::step,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B30B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpStep,
-    true);
-constexpr const TFunction function_smoothstep_00B00B00B(
+constexpr const TFunction clamp_00D00D00D(BuiltInId::clamp_Int1_Int1_Int1,
+                                          BuiltInName::clamp,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p00D00D00D00D,
+                                          3,
+                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                          EOpClamp,
+                                          true);
+constexpr const TFunction clamp_10D00D00D(BuiltInId::clamp_Int2_Int1_Int1,
+                                          BuiltInName::clamp,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p10D00D00D,
+                                          3,
+                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                          EOpClamp,
+                                          true);
+constexpr const TFunction clamp_20D00D00D(BuiltInId::clamp_Int3_Int1_Int1,
+                                          BuiltInName::clamp,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p20D00D00D,
+                                          3,
+                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                          EOpClamp,
+                                          true);
+constexpr const TFunction clamp_30D00D00D(BuiltInId::clamp_Int4_Int1_Int1,
+                                          BuiltInName::clamp,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p30D00D00D,
+                                          3,
+                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                          EOpClamp,
+                                          true);
+constexpr const TFunction clamp_10D10D10D(BuiltInId::clamp_Int2_Int2_Int2,
+                                          BuiltInName::clamp,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p10D10D10D,
+                                          3,
+                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                          EOpClamp,
+                                          true);
+constexpr const TFunction clamp_20D20D20D(BuiltInId::clamp_Int3_Int3_Int3,
+                                          BuiltInName::clamp,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p20D20D20D,
+                                          3,
+                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                          EOpClamp,
+                                          true);
+constexpr const TFunction clamp_30D30D30D(BuiltInId::clamp_Int4_Int4_Int4,
+                                          BuiltInName::clamp,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p30D30D30D,
+                                          3,
+                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                          EOpClamp,
+                                          true);
+constexpr const TFunction clamp_00E00E00E(BuiltInId::clamp_UInt1_UInt1_UInt1,
+                                          BuiltInName::clamp,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p00E00E00E,
+                                          3,
+                                          StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                          EOpClamp,
+                                          true);
+constexpr const TFunction clamp_10E00E00E(BuiltInId::clamp_UInt2_UInt1_UInt1,
+                                          BuiltInName::clamp,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p10E00E00E,
+                                          3,
+                                          StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                          EOpClamp,
+                                          true);
+constexpr const TFunction clamp_20E00E00E(BuiltInId::clamp_UInt3_UInt1_UInt1,
+                                          BuiltInName::clamp,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p20E00E00E,
+                                          3,
+                                          StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                          EOpClamp,
+                                          true);
+constexpr const TFunction clamp_30E00E00E(BuiltInId::clamp_UInt4_UInt1_UInt1,
+                                          BuiltInName::clamp,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p30E00E00E,
+                                          3,
+                                          StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                          EOpClamp,
+                                          true);
+constexpr const TFunction clamp_10E10E10E(BuiltInId::clamp_UInt2_UInt2_UInt2,
+                                          BuiltInName::clamp,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p10E10E10E,
+                                          3,
+                                          StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                          EOpClamp,
+                                          true);
+constexpr const TFunction clamp_20E20E20E(BuiltInId::clamp_UInt3_UInt3_UInt3,
+                                          BuiltInName::clamp,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p20E20E20E,
+                                          3,
+                                          StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                          EOpClamp,
+                                          true);
+constexpr const TFunction clamp_30E30E30E(BuiltInId::clamp_UInt4_UInt4_UInt4,
+                                          BuiltInName::clamp,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p30E30E30E,
+                                          3,
+                                          StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                          EOpClamp,
+                                          true);
+constexpr const TFunction mix_00B00B00B(BuiltInId::mix_Float1_Float1_Float1,
+                                        BuiltInName::mix,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p00B00B00B,
+                                        3,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                        EOpMix,
+                                        true);
+constexpr const TFunction mix_10B10B00B(BuiltInId::mix_Float2_Float2_Float1,
+                                        BuiltInName::mix,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p10B10B00B,
+                                        3,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                        EOpMix,
+                                        true);
+constexpr const TFunction mix_20B20B00B(BuiltInId::mix_Float3_Float3_Float1,
+                                        BuiltInName::mix,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p20B20B00B,
+                                        3,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                        EOpMix,
+                                        true);
+constexpr const TFunction mix_30B30B00B(BuiltInId::mix_Float4_Float4_Float1,
+                                        BuiltInName::mix,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p30B30B00B,
+                                        3,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                        EOpMix,
+                                        true);
+constexpr const TFunction mix_10B10B10B(BuiltInId::mix_Float2_Float2_Float2,
+                                        BuiltInName::mix,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p10B10B10B,
+                                        3,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                        EOpMix,
+                                        true);
+constexpr const TFunction mix_20B20B20B(BuiltInId::mix_Float3_Float3_Float3,
+                                        BuiltInName::mix,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p20B20B20B,
+                                        3,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                        EOpMix,
+                                        true);
+constexpr const TFunction mix_30B30B30B(BuiltInId::mix_Float4_Float4_Float4,
+                                        BuiltInName::mix,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p30B30B30B,
+                                        3,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                        EOpMix,
+                                        true);
+constexpr const TFunction mix_00B00B00F(BuiltInId::mix_Float1_Float1_Bool1,
+                                        BuiltInName::mix,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p00B00B00F,
+                                        3,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                        EOpMix,
+                                        true);
+constexpr const TFunction mix_10B10B10F(BuiltInId::mix_Float2_Float2_Bool2,
+                                        BuiltInName::mix,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p10B10B10F,
+                                        3,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                        EOpMix,
+                                        true);
+constexpr const TFunction mix_20B20B20F(BuiltInId::mix_Float3_Float3_Bool3,
+                                        BuiltInName::mix,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p20B20B20F,
+                                        3,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                        EOpMix,
+                                        true);
+constexpr const TFunction mix_30B30B30F(BuiltInId::mix_Float4_Float4_Bool4,
+                                        BuiltInName::mix,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p30B30B30F,
+                                        3,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                        EOpMix,
+                                        true);
+constexpr const TFunction step_00B00B(BuiltInId::step_Float1_Float1,
+                                      BuiltInName::step,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p00B00B00F,
+                                      2,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                      EOpStep,
+                                      true);
+constexpr const TFunction step_10B10B(BuiltInId::step_Float2_Float2,
+                                      BuiltInName::step,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p10B10B10F,
+                                      2,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                      EOpStep,
+                                      true);
+constexpr const TFunction step_20B20B(BuiltInId::step_Float3_Float3,
+                                      BuiltInName::step,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p20B20B20F,
+                                      2,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                      EOpStep,
+                                      true);
+constexpr const TFunction step_30B30B(BuiltInId::step_Float4_Float4,
+                                      BuiltInName::step,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p30B30B30F,
+                                      2,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                      EOpStep,
+                                      true);
+constexpr const TFunction step_00B10B(BuiltInId::step_Float1_Float2,
+                                      BuiltInName::step,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p00B10B,
+                                      2,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                      EOpStep,
+                                      true);
+constexpr const TFunction step_00B20B(BuiltInId::step_Float1_Float3,
+                                      BuiltInName::step,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p00B20B,
+                                      2,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                      EOpStep,
+                                      true);
+constexpr const TFunction step_00B30B(BuiltInId::step_Float1_Float4,
+                                      BuiltInName::step,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p00B30B,
+                                      2,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                      EOpStep,
+                                      true);
+constexpr const TFunction smoothstep_00B00B00B(
     BuiltInId::smoothstep_Float1_Float1_Float1,
     BuiltInName::smoothstep,
     TExtension::UNDEFINED,
@@ -4579,7 +4218,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpSmoothstep,
     true);
-constexpr const TFunction function_smoothstep_10B10B10B(
+constexpr const TFunction smoothstep_10B10B10B(
     BuiltInId::smoothstep_Float2_Float2_Float2,
     BuiltInName::smoothstep,
     TExtension::UNDEFINED,
@@ -4588,7 +4227,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpSmoothstep,
     true);
-constexpr const TFunction function_smoothstep_20B20B20B(
+constexpr const TFunction smoothstep_20B20B20B(
     BuiltInId::smoothstep_Float3_Float3_Float3,
     BuiltInName::smoothstep,
     TExtension::UNDEFINED,
@@ -4597,7 +4236,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpSmoothstep,
     true);
-constexpr const TFunction function_smoothstep_30B30B30B(
+constexpr const TFunction smoothstep_30B30B30B(
     BuiltInId::smoothstep_Float4_Float4_Float4,
     BuiltInName::smoothstep,
     TExtension::UNDEFINED,
@@ -4606,7 +4245,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpSmoothstep,
     true);
-constexpr const TFunction function_smoothstep_00B00B10B(
+constexpr const TFunction smoothstep_00B00B10B(
     BuiltInId::smoothstep_Float1_Float1_Float2,
     BuiltInName::smoothstep,
     TExtension::UNDEFINED,
@@ -4615,7 +4254,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpSmoothstep,
     true);
-constexpr const TFunction function_smoothstep_00B00B20B(
+constexpr const TFunction smoothstep_00B00B20B(
     BuiltInId::smoothstep_Float1_Float1_Float3,
     BuiltInName::smoothstep,
     TExtension::UNDEFINED,
@@ -4624,7 +4263,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpSmoothstep,
     true);
-constexpr const TFunction function_smoothstep_00B00B30B(
+constexpr const TFunction smoothstep_00B00B30B(
     BuiltInId::smoothstep_Float1_Float1_Float4,
     BuiltInName::smoothstep,
     TExtension::UNDEFINED,
@@ -4633,115 +4272,103 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpSmoothstep,
     true);
-constexpr const TFunction function_modf_00B00B(
-    BuiltInId::modf_Float1_Float1,
-    BuiltInName::modf,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B_o_00B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpModf,
-    false);
-constexpr const TFunction function_modf_10B10B(
-    BuiltInId::modf_Float2_Float2,
-    BuiltInName::modf,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B_o_10B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpModf,
-    false);
-constexpr const TFunction function_modf_20B20B(
-    BuiltInId::modf_Float3_Float3,
-    BuiltInName::modf,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B_o_20B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpModf,
-    false);
-constexpr const TFunction function_modf_30B30B(
-    BuiltInId::modf_Float4_Float4,
-    BuiltInName::modf,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B_o_30B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpModf,
-    false);
-constexpr const TFunction function_isnan_00B(
-    BuiltInId::isnan_Float1,
-    BuiltInName::isnan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B30B,
-    1,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpIsnan,
-    true);
-constexpr const TFunction function_isnan_10B(
-    BuiltInId::isnan_Float2,
-    BuiltInName::isnan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B20B,
-    1,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpIsnan,
-    true);
-constexpr const TFunction function_isnan_20B(
-    BuiltInId::isnan_Float3,
-    BuiltInName::isnan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B10B,
-    1,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpIsnan,
-    true);
-constexpr const TFunction function_isnan_30B(
-    BuiltInId::isnan_Float4,
-    BuiltInName::isnan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B00B00B,
-    1,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpIsnan,
-    true);
-constexpr const TFunction function_isinf_00B(
-    BuiltInId::isinf_Float1,
-    BuiltInName::isinf,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B30B,
-    1,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpIsinf,
-    true);
-constexpr const TFunction function_isinf_10B(
-    BuiltInId::isinf_Float2,
-    BuiltInName::isinf,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B20B,
-    1,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpIsinf,
-    true);
-constexpr const TFunction function_isinf_20B(
-    BuiltInId::isinf_Float3,
-    BuiltInName::isinf,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B10B,
-    1,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpIsinf,
-    true);
-constexpr const TFunction function_isinf_30B(
-    BuiltInId::isinf_Float4,
-    BuiltInName::isinf,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B00B00B,
-    1,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpIsinf,
-    true);
-constexpr const TFunction function_floatBitsToInt_00B(
+constexpr const TFunction modf_00B00B(BuiltInId::modf_Float1_Float1,
+                                      BuiltInName::modf,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p00B_o_00B,
+                                      2,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                      EOpModf,
+                                      false);
+constexpr const TFunction modf_10B10B(BuiltInId::modf_Float2_Float2,
+                                      BuiltInName::modf,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p10B_o_10B,
+                                      2,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                      EOpModf,
+                                      false);
+constexpr const TFunction modf_20B20B(BuiltInId::modf_Float3_Float3,
+                                      BuiltInName::modf,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p20B_o_20B,
+                                      2,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                      EOpModf,
+                                      false);
+constexpr const TFunction modf_30B30B(BuiltInId::modf_Float4_Float4,
+                                      BuiltInName::modf,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p30B_o_30B,
+                                      2,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                      EOpModf,
+                                      false);
+constexpr const TFunction isnan_00B(BuiltInId::isnan_Float1,
+                                    BuiltInName::isnan,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p00B30B,
+                                    1,
+                                    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
+                                    EOpIsnan,
+                                    true);
+constexpr const TFunction isnan_10B(BuiltInId::isnan_Float2,
+                                    BuiltInName::isnan,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p10B20B,
+                                    1,
+                                    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
+                                    EOpIsnan,
+                                    true);
+constexpr const TFunction isnan_20B(BuiltInId::isnan_Float3,
+                                    BuiltInName::isnan,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p20B10B,
+                                    1,
+                                    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
+                                    EOpIsnan,
+                                    true);
+constexpr const TFunction isnan_30B(BuiltInId::isnan_Float4,
+                                    BuiltInName::isnan,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p30B00B00B,
+                                    1,
+                                    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
+                                    EOpIsnan,
+                                    true);
+constexpr const TFunction isinf_00B(BuiltInId::isinf_Float1,
+                                    BuiltInName::isinf,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p00B30B,
+                                    1,
+                                    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
+                                    EOpIsinf,
+                                    true);
+constexpr const TFunction isinf_10B(BuiltInId::isinf_Float2,
+                                    BuiltInName::isinf,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p10B20B,
+                                    1,
+                                    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
+                                    EOpIsinf,
+                                    true);
+constexpr const TFunction isinf_20B(BuiltInId::isinf_Float3,
+                                    BuiltInName::isinf,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p20B10B,
+                                    1,
+                                    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
+                                    EOpIsinf,
+                                    true);
+constexpr const TFunction isinf_30B(BuiltInId::isinf_Float4,
+                                    BuiltInName::isinf,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p30B00B00B,
+                                    1,
+                                    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
+                                    EOpIsinf,
+                                    true);
+constexpr const TFunction floatBitsToInt_00B(
     BuiltInId::floatBitsToInt_Float1,
     BuiltInName::floatBitsToInt,
     TExtension::UNDEFINED,
@@ -4750,7 +4377,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpFloatBitsToInt,
     true);
-constexpr const TFunction function_floatBitsToInt_10B(
+constexpr const TFunction floatBitsToInt_10B(
     BuiltInId::floatBitsToInt_Float2,
     BuiltInName::floatBitsToInt,
     TExtension::UNDEFINED,
@@ -4759,7 +4386,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpFloatBitsToInt,
     true);
-constexpr const TFunction function_floatBitsToInt_20B(
+constexpr const TFunction floatBitsToInt_20B(
     BuiltInId::floatBitsToInt_Float3,
     BuiltInName::floatBitsToInt,
     TExtension::UNDEFINED,
@@ -4768,7 +4395,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpFloatBitsToInt,
     true);
-constexpr const TFunction function_floatBitsToInt_30B(
+constexpr const TFunction floatBitsToInt_30B(
     BuiltInId::floatBitsToInt_Float4,
     BuiltInName::floatBitsToInt,
     TExtension::UNDEFINED,
@@ -4777,7 +4404,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpFloatBitsToInt,
     true);
-constexpr const TFunction function_floatBitsToUint_00B(
+constexpr const TFunction floatBitsToUint_00B(
     BuiltInId::floatBitsToUint_Float1,
     BuiltInName::floatBitsToUint,
     TExtension::UNDEFINED,
@@ -4786,7 +4413,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpFloatBitsToUint,
     true);
-constexpr const TFunction function_floatBitsToUint_10B(
+constexpr const TFunction floatBitsToUint_10B(
     BuiltInId::floatBitsToUint_Float2,
     BuiltInName::floatBitsToUint,
     TExtension::UNDEFINED,
@@ -4795,7 +4422,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpFloatBitsToUint,
     true);
-constexpr const TFunction function_floatBitsToUint_20B(
+constexpr const TFunction floatBitsToUint_20B(
     BuiltInId::floatBitsToUint_Float3,
     BuiltInName::floatBitsToUint,
     TExtension::UNDEFINED,
@@ -4804,7 +4431,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpFloatBitsToUint,
     true);
-constexpr const TFunction function_floatBitsToUint_30B(
+constexpr const TFunction floatBitsToUint_30B(
     BuiltInId::floatBitsToUint_Float4,
     BuiltInName::floatBitsToUint,
     TExtension::UNDEFINED,
@@ -4813,7 +4440,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpFloatBitsToUint,
     true);
-constexpr const TFunction function_intBitsToFloat_00D(
+constexpr const TFunction intBitsToFloat_00D(
     BuiltInId::intBitsToFloat_Int1,
     BuiltInName::intBitsToFloat,
     TExtension::UNDEFINED,
@@ -4822,7 +4449,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpIntBitsToFloat,
     true);
-constexpr const TFunction function_intBitsToFloat_10D(
+constexpr const TFunction intBitsToFloat_10D(
     BuiltInId::intBitsToFloat_Int2,
     BuiltInName::intBitsToFloat,
     TExtension::UNDEFINED,
@@ -4831,7 +4458,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpIntBitsToFloat,
     true);
-constexpr const TFunction function_intBitsToFloat_20D(
+constexpr const TFunction intBitsToFloat_20D(
     BuiltInId::intBitsToFloat_Int3,
     BuiltInName::intBitsToFloat,
     TExtension::UNDEFINED,
@@ -4840,7 +4467,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpIntBitsToFloat,
     true);
-constexpr const TFunction function_intBitsToFloat_30D(
+constexpr const TFunction intBitsToFloat_30D(
     BuiltInId::intBitsToFloat_Int4,
     BuiltInName::intBitsToFloat,
     TExtension::UNDEFINED,
@@ -4849,7 +4476,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpIntBitsToFloat,
     true);
-constexpr const TFunction function_uintBitsToFloat_00E(
+constexpr const TFunction uintBitsToFloat_00E(
     BuiltInId::uintBitsToFloat_UInt1,
     BuiltInName::uintBitsToFloat,
     TExtension::UNDEFINED,
@@ -4858,7 +4485,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpUintBitsToFloat,
     true);
-constexpr const TFunction function_uintBitsToFloat_10E(
+constexpr const TFunction uintBitsToFloat_10E(
     BuiltInId::uintBitsToFloat_UInt2,
     BuiltInName::uintBitsToFloat,
     TExtension::UNDEFINED,
@@ -4867,7 +4494,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpUintBitsToFloat,
     true);
-constexpr const TFunction function_uintBitsToFloat_20E(
+constexpr const TFunction uintBitsToFloat_20E(
     BuiltInId::uintBitsToFloat_UInt3,
     BuiltInName::uintBitsToFloat,
     TExtension::UNDEFINED,
@@ -4876,7 +4503,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpUintBitsToFloat,
     true);
-constexpr const TFunction function_uintBitsToFloat_30E(
+constexpr const TFunction uintBitsToFloat_30E(
     BuiltInId::uintBitsToFloat_UInt4,
     BuiltInName::uintBitsToFloat,
     TExtension::UNDEFINED,
@@ -4885,79 +4512,71 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpUintBitsToFloat,
     true);
-constexpr const TFunction function_frexp_00B00D(
-    BuiltInId::frexp_Float1_Int1,
-    BuiltInName::frexp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B_o_00D,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpFrexp,
-    false);
-constexpr const TFunction function_frexp_10B10D(
-    BuiltInId::frexp_Float2_Int2,
-    BuiltInName::frexp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B_o_10D,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpFrexp,
-    false);
-constexpr const TFunction function_frexp_20B20D(
-    BuiltInId::frexp_Float3_Int3,
-    BuiltInName::frexp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B_o_20D,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpFrexp,
-    false);
-constexpr const TFunction function_frexp_30B30D(
-    BuiltInId::frexp_Float4_Int4,
-    BuiltInName::frexp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B_o_30D,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpFrexp,
-    false);
-constexpr const TFunction function_ldexp_00B00D(
-    BuiltInId::ldexp_Float1_Int1,
-    BuiltInName::ldexp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00D,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpLdexp,
-    true);
-constexpr const TFunction function_ldexp_10B10D(
-    BuiltInId::ldexp_Float2_Int2,
-    BuiltInName::ldexp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B10D,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpLdexp,
-    true);
-constexpr const TFunction function_ldexp_20B20D(
-    BuiltInId::ldexp_Float3_Int3,
-    BuiltInName::ldexp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20D,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpLdexp,
-    true);
-constexpr const TFunction function_ldexp_30B30D(
-    BuiltInId::ldexp_Float4_Int4,
-    BuiltInName::ldexp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30D,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpLdexp,
-    true);
-constexpr const TFunction function_packSnorm2x16_10B(
+constexpr const TFunction frexp_00B00D(BuiltInId::frexp_Float1_Int1,
+                                       BuiltInName::frexp,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p00B_o_00D,
+                                       2,
+                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                       EOpFrexp,
+                                       false);
+constexpr const TFunction frexp_10B10D(BuiltInId::frexp_Float2_Int2,
+                                       BuiltInName::frexp,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p10B_o_10D,
+                                       2,
+                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                       EOpFrexp,
+                                       false);
+constexpr const TFunction frexp_20B20D(BuiltInId::frexp_Float3_Int3,
+                                       BuiltInName::frexp,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p20B_o_20D,
+                                       2,
+                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                       EOpFrexp,
+                                       false);
+constexpr const TFunction frexp_30B30D(BuiltInId::frexp_Float4_Int4,
+                                       BuiltInName::frexp,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p30B_o_30D,
+                                       2,
+                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                       EOpFrexp,
+                                       false);
+constexpr const TFunction ldexp_00B00D(BuiltInId::ldexp_Float1_Int1,
+                                       BuiltInName::ldexp,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p00B00D,
+                                       2,
+                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                       EOpLdexp,
+                                       true);
+constexpr const TFunction ldexp_10B10D(BuiltInId::ldexp_Float2_Int2,
+                                       BuiltInName::ldexp,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p10B10D,
+                                       2,
+                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                       EOpLdexp,
+                                       true);
+constexpr const TFunction ldexp_20B20D(BuiltInId::ldexp_Float3_Int3,
+                                       BuiltInName::ldexp,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p20B20D,
+                                       2,
+                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                       EOpLdexp,
+                                       true);
+constexpr const TFunction ldexp_30B30D(BuiltInId::ldexp_Float4_Int4,
+                                       BuiltInName::ldexp,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p30B30D,
+                                       2,
+                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                       EOpLdexp,
+                                       true);
+constexpr const TFunction packSnorm2x16_10B(
     BuiltInId::packSnorm2x16_Float2,
     BuiltInName::packSnorm2x16,
     TExtension::UNDEFINED,
@@ -4966,7 +4585,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpPackSnorm2x16,
     true);
-constexpr const TFunction function_packHalf2x16_10B(
+constexpr const TFunction packHalf2x16_10B(
     BuiltInId::packHalf2x16_Float2,
     BuiltInName::packHalf2x16,
     TExtension::UNDEFINED,
@@ -4975,7 +4594,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpPackHalf2x16,
     true);
-constexpr const TFunction function_unpackSnorm2x16_00E(
+constexpr const TFunction unpackSnorm2x16_00E(
     BuiltInId::unpackSnorm2x16_UInt1,
     BuiltInName::unpackSnorm2x16,
     TExtension::UNDEFINED,
@@ -4984,7 +4603,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpUnpackSnorm2x16,
     true);
-constexpr const TFunction function_unpackHalf2x16_00E(
+constexpr const TFunction unpackHalf2x16_00E(
     BuiltInId::unpackHalf2x16_UInt1,
     BuiltInName::unpackHalf2x16,
     TExtension::UNDEFINED,
@@ -4993,7 +4612,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpUnpackHalf2x16,
     true);
-constexpr const TFunction function_packUnorm2x16_10B(
+constexpr const TFunction packUnorm2x16_10B(
     BuiltInId::packUnorm2x16_Float2,
     BuiltInName::packUnorm2x16,
     TExtension::UNDEFINED,
@@ -5002,7 +4621,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpPackUnorm2x16,
     true);
-constexpr const TFunction function_unpackUnorm2x16_00E(
+constexpr const TFunction unpackUnorm2x16_00E(
     BuiltInId::unpackUnorm2x16_UInt1,
     BuiltInName::unpackUnorm2x16,
     TExtension::UNDEFINED,
@@ -5011,7 +4630,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpUnpackUnorm2x16,
     true);
-constexpr const TFunction function_packUnorm4x8_30B(
+constexpr const TFunction packUnorm4x8_30B(
     BuiltInId::packUnorm4x8_Float4,
     BuiltInName::packUnorm4x8,
     TExtension::UNDEFINED,
@@ -5020,7 +4639,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpPackUnorm4x8,
     true);
-constexpr const TFunction function_packSnorm4x8_30B(
+constexpr const TFunction packSnorm4x8_30B(
     BuiltInId::packSnorm4x8_Float4,
     BuiltInName::packSnorm4x8,
     TExtension::UNDEFINED,
@@ -5029,7 +4648,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpPackSnorm4x8,
     true);
-constexpr const TFunction function_unpackUnorm4x8_00E(
+constexpr const TFunction unpackUnorm4x8_00E(
     BuiltInId::unpackUnorm4x8_UInt1,
     BuiltInName::unpackUnorm4x8,
     TExtension::UNDEFINED,
@@ -5038,7 +4657,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpUnpackUnorm4x8,
     true);
-constexpr const TFunction function_unpackSnorm4x8_00E(
+constexpr const TFunction unpackSnorm4x8_00E(
     BuiltInId::unpackSnorm4x8_UInt1,
     BuiltInName::unpackSnorm4x8,
     TExtension::UNDEFINED,
@@ -5047,43 +4666,39 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpUnpackSnorm4x8,
     true);
-constexpr const TFunction function_length_00B(
-    BuiltInId::length_Float1,
-    BuiltInName::length,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpLength,
-    true);
-constexpr const TFunction function_length_10B(
-    BuiltInId::length_Float2,
-    BuiltInName::length,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B20B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpLength,
-    true);
-constexpr const TFunction function_length_20B(
-    BuiltInId::length_Float3,
-    BuiltInName::length,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpLength,
-    true);
-constexpr const TFunction function_length_30B(
-    BuiltInId::length_Float4,
-    BuiltInName::length,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B00B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpLength,
-    true);
-constexpr const TFunction function_distance_00B00B(
+constexpr const TFunction length_00B(BuiltInId::length_Float1,
+                                     BuiltInName::length,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p00B30B,
+                                     1,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                     EOpLength,
+                                     true);
+constexpr const TFunction length_10B(BuiltInId::length_Float2,
+                                     BuiltInName::length,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p10B20B,
+                                     1,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                     EOpLength,
+                                     true);
+constexpr const TFunction length_20B(BuiltInId::length_Float3,
+                                     BuiltInName::length,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p20B10B,
+                                     1,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                     EOpLength,
+                                     true);
+constexpr const TFunction length_30B(BuiltInId::length_Float4,
+                                     BuiltInName::length,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p30B00B00B,
+                                     1,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                     EOpLength,
+                                     true);
+constexpr const TFunction distance_00B00B(
     BuiltInId::distance_Float1_Float1,
     BuiltInName::distance,
     TExtension::UNDEFINED,
@@ -5092,7 +4707,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpDistance,
     true);
-constexpr const TFunction function_distance_10B10B(
+constexpr const TFunction distance_10B10B(
     BuiltInId::distance_Float2_Float2,
     BuiltInName::distance,
     TExtension::UNDEFINED,
@@ -5101,7 +4716,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpDistance,
     true);
-constexpr const TFunction function_distance_20B20B(
+constexpr const TFunction distance_20B20B(
     BuiltInId::distance_Float3_Float3,
     BuiltInName::distance,
     TExtension::UNDEFINED,
@@ -5110,7 +4725,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpDistance,
     true);
-constexpr const TFunction function_distance_30B30B(
+constexpr const TFunction distance_30B30B(
     BuiltInId::distance_Float4_Float4,
     BuiltInName::distance,
     TExtension::UNDEFINED,
@@ -5119,88 +4734,79 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpDistance,
     true);
-constexpr const TFunction function_dot_00B00B(
-    BuiltInId::dot_Float1_Float1,
-    BuiltInName::dot,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B00F,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpDot,
-    true);
-constexpr const TFunction function_dot_10B10B(
-    BuiltInId::dot_Float2_Float2,
-    BuiltInName::dot,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B10B10F,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpDot,
-    true);
-constexpr const TFunction function_dot_20B20B(
-    BuiltInId::dot_Float3_Float3,
-    BuiltInName::dot,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B20F,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpDot,
-    true);
-constexpr const TFunction function_dot_30B30B(
-    BuiltInId::dot_Float4_Float4,
-    BuiltInName::dot,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30B30F,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpDot,
-    true);
-constexpr const TFunction function_cross_20B20B(
-    BuiltInId::cross_Float3_Float3,
-    BuiltInName::cross,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B20F,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpCross,
-    true);
-constexpr const TFunction function_normalize_00B(
-    BuiltInId::normalize_Float1,
-    BuiltInName::normalize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpNormalize,
-    true);
-constexpr const TFunction function_normalize_10B(
-    BuiltInId::normalize_Float2,
-    BuiltInName::normalize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B20B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpNormalize,
-    true);
-constexpr const TFunction function_normalize_20B(
-    BuiltInId::normalize_Float3,
-    BuiltInName::normalize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpNormalize,
-    true);
-constexpr const TFunction function_normalize_30B(
-    BuiltInId::normalize_Float4,
-    BuiltInName::normalize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B00B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpNormalize,
-    true);
-constexpr const TFunction function_faceforward_00B00B00B(
+constexpr const TFunction dot_00B00B(BuiltInId::dot_Float1_Float1,
+                                     BuiltInName::dot,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p00B00B00F,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                     EOpDot,
+                                     true);
+constexpr const TFunction dot_10B10B(BuiltInId::dot_Float2_Float2,
+                                     BuiltInName::dot,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p10B10B10F,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                     EOpDot,
+                                     true);
+constexpr const TFunction dot_20B20B(BuiltInId::dot_Float3_Float3,
+                                     BuiltInName::dot,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p20B20B20F,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                     EOpDot,
+                                     true);
+constexpr const TFunction dot_30B30B(BuiltInId::dot_Float4_Float4,
+                                     BuiltInName::dot,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p30B30B30F,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                     EOpDot,
+                                     true);
+constexpr const TFunction cross_20B20B(BuiltInId::cross_Float3_Float3,
+                                       BuiltInName::cross,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p20B20B20F,
+                                       2,
+                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                       EOpCross,
+                                       true);
+constexpr const TFunction normalize_00B(BuiltInId::normalize_Float1,
+                                        BuiltInName::normalize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p00B30B,
+                                        1,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                        EOpNormalize,
+                                        true);
+constexpr const TFunction normalize_10B(BuiltInId::normalize_Float2,
+                                        BuiltInName::normalize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p10B20B,
+                                        1,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                        EOpNormalize,
+                                        true);
+constexpr const TFunction normalize_20B(BuiltInId::normalize_Float3,
+                                        BuiltInName::normalize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p20B10B,
+                                        1,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                        EOpNormalize,
+                                        true);
+constexpr const TFunction normalize_30B(BuiltInId::normalize_Float4,
+                                        BuiltInName::normalize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p30B00B00B,
+                                        1,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                        EOpNormalize,
+                                        true);
+constexpr const TFunction faceforward_00B00B00B(
     BuiltInId::faceforward_Float1_Float1_Float1,
     BuiltInName::faceforward,
     TExtension::UNDEFINED,
@@ -5209,7 +4815,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpFaceforward,
     true);
-constexpr const TFunction function_faceforward_10B10B10B(
+constexpr const TFunction faceforward_10B10B10B(
     BuiltInId::faceforward_Float2_Float2_Float2,
     BuiltInName::faceforward,
     TExtension::UNDEFINED,
@@ -5218,7 +4824,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpFaceforward,
     true);
-constexpr const TFunction function_faceforward_20B20B20B(
+constexpr const TFunction faceforward_20B20B20B(
     BuiltInId::faceforward_Float3_Float3_Float3,
     BuiltInName::faceforward,
     TExtension::UNDEFINED,
@@ -5227,7 +4833,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpFaceforward,
     true);
-constexpr const TFunction function_faceforward_30B30B30B(
+constexpr const TFunction faceforward_30B30B30B(
     BuiltInId::faceforward_Float4_Float4_Float4,
     BuiltInName::faceforward,
     TExtension::UNDEFINED,
@@ -5236,43 +4842,39 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpFaceforward,
     true);
-constexpr const TFunction function_reflect_00B00B(
-    BuiltInId::reflect_Float1_Float1,
-    BuiltInName::reflect,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B00F,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpReflect,
-    true);
-constexpr const TFunction function_reflect_10B10B(
-    BuiltInId::reflect_Float2_Float2,
-    BuiltInName::reflect,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B10B10F,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpReflect,
-    true);
-constexpr const TFunction function_reflect_20B20B(
-    BuiltInId::reflect_Float3_Float3,
-    BuiltInName::reflect,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B20F,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpReflect,
-    true);
-constexpr const TFunction function_reflect_30B30B(
-    BuiltInId::reflect_Float4_Float4,
-    BuiltInName::reflect,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30B30F,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpReflect,
-    true);
-constexpr const TFunction function_refract_00B00B00B(
+constexpr const TFunction reflect_00B00B(BuiltInId::reflect_Float1_Float1,
+                                         BuiltInName::reflect,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p00B00B00F,
+                                         2,
+                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                         EOpReflect,
+                                         true);
+constexpr const TFunction reflect_10B10B(BuiltInId::reflect_Float2_Float2,
+                                         BuiltInName::reflect,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p10B10B10F,
+                                         2,
+                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                         EOpReflect,
+                                         true);
+constexpr const TFunction reflect_20B20B(BuiltInId::reflect_Float3_Float3,
+                                         BuiltInName::reflect,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p20B20B20F,
+                                         2,
+                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                         EOpReflect,
+                                         true);
+constexpr const TFunction reflect_30B30B(BuiltInId::reflect_Float4_Float4,
+                                         BuiltInName::reflect,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p30B30B30F,
+                                         2,
+                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                         EOpReflect,
+                                         true);
+constexpr const TFunction refract_00B00B00B(
     BuiltInId::refract_Float1_Float1_Float1,
     BuiltInName::refract,
     TExtension::UNDEFINED,
@@ -5281,7 +4883,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpRefract,
     true);
-constexpr const TFunction function_refract_10B10B00B(
+constexpr const TFunction refract_10B10B00B(
     BuiltInId::refract_Float2_Float2_Float1,
     BuiltInName::refract,
     TExtension::UNDEFINED,
@@ -5290,7 +4892,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpRefract,
     true);
-constexpr const TFunction function_refract_20B20B00B(
+constexpr const TFunction refract_20B20B00B(
     BuiltInId::refract_Float3_Float3_Float1,
     BuiltInName::refract,
     TExtension::UNDEFINED,
@@ -5299,7 +4901,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpRefract,
     true);
-constexpr const TFunction function_refract_30B30B00B(
+constexpr const TFunction refract_30B30B00B(
     BuiltInId::refract_Float4_Float4_Float1,
     BuiltInName::refract,
     TExtension::UNDEFINED,
@@ -5308,7 +4910,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpRefract,
     true);
-constexpr const TFunction function_matrixCompMult_50B50B(
+constexpr const TFunction matrixCompMult_50B50B(
     BuiltInId::matrixCompMult_Float2x2_Float2x2,
     BuiltInName::matrixCompMult,
     TExtension::UNDEFINED,
@@ -5317,7 +4919,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 2>(),
     EOpMulMatrixComponentWise,
     true);
-constexpr const TFunction function_matrixCompMult_A0BA0B(
+constexpr const TFunction matrixCompMult_A0BA0B(
     BuiltInId::matrixCompMult_Float3x3_Float3x3,
     BuiltInName::matrixCompMult,
     TExtension::UNDEFINED,
@@ -5326,7 +4928,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 3>(),
     EOpMulMatrixComponentWise,
     true);
-constexpr const TFunction function_matrixCompMult_F0BF0B(
+constexpr const TFunction matrixCompMult_F0BF0B(
     BuiltInId::matrixCompMult_Float4x4_Float4x4,
     BuiltInName::matrixCompMult,
     TExtension::UNDEFINED,
@@ -5335,7 +4937,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 4>(),
     EOpMulMatrixComponentWise,
     true);
-constexpr const TFunction function_matrixCompMult_90B90B(
+constexpr const TFunction matrixCompMult_90B90B(
     BuiltInId::matrixCompMult_Float2x3_Float2x3,
     BuiltInName::matrixCompMult,
     TExtension::UNDEFINED,
@@ -5344,7 +4946,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 3>(),
     EOpMulMatrixComponentWise,
     true);
-constexpr const TFunction function_matrixCompMult_60B60B(
+constexpr const TFunction matrixCompMult_60B60B(
     BuiltInId::matrixCompMult_Float3x2_Float3x2,
     BuiltInName::matrixCompMult,
     TExtension::UNDEFINED,
@@ -5353,7 +4955,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 2>(),
     EOpMulMatrixComponentWise,
     true);
-constexpr const TFunction function_matrixCompMult_D0BD0B(
+constexpr const TFunction matrixCompMult_D0BD0B(
     BuiltInId::matrixCompMult_Float2x4_Float2x4,
     BuiltInName::matrixCompMult,
     TExtension::UNDEFINED,
@@ -5362,7 +4964,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 4>(),
     EOpMulMatrixComponentWise,
     true);
-constexpr const TFunction function_matrixCompMult_70B70B(
+constexpr const TFunction matrixCompMult_70B70B(
     BuiltInId::matrixCompMult_Float4x2_Float4x2,
     BuiltInName::matrixCompMult,
     TExtension::UNDEFINED,
@@ -5371,7 +4973,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 2>(),
     EOpMulMatrixComponentWise,
     true);
-constexpr const TFunction function_matrixCompMult_E0BE0B(
+constexpr const TFunction matrixCompMult_E0BE0B(
     BuiltInId::matrixCompMult_Float3x4_Float3x4,
     BuiltInName::matrixCompMult,
     TExtension::UNDEFINED,
@@ -5380,7 +4982,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 4>(),
     EOpMulMatrixComponentWise,
     true);
-constexpr const TFunction function_matrixCompMult_B0BB0B(
+constexpr const TFunction matrixCompMult_B0BB0B(
     BuiltInId::matrixCompMult_Float4x3_Float4x3,
     BuiltInName::matrixCompMult,
     TExtension::UNDEFINED,
@@ -5389,7 +4991,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 3>(),
     EOpMulMatrixComponentWise,
     true);
-constexpr const TFunction function_outerProduct_10B10B(
+constexpr const TFunction outerProduct_10B10B(
     BuiltInId::outerProduct_Float2_Float2,
     BuiltInName::outerProduct,
     TExtension::UNDEFINED,
@@ -5398,7 +5000,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 2>(),
     EOpOuterProduct,
     true);
-constexpr const TFunction function_outerProduct_20B20B(
+constexpr const TFunction outerProduct_20B20B(
     BuiltInId::outerProduct_Float3_Float3,
     BuiltInName::outerProduct,
     TExtension::UNDEFINED,
@@ -5407,7 +5009,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 3>(),
     EOpOuterProduct,
     true);
-constexpr const TFunction function_outerProduct_30B30B(
+constexpr const TFunction outerProduct_30B30B(
     BuiltInId::outerProduct_Float4_Float4,
     BuiltInName::outerProduct,
     TExtension::UNDEFINED,
@@ -5416,7 +5018,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 4>(),
     EOpOuterProduct,
     true);
-constexpr const TFunction function_outerProduct_20B10B(
+constexpr const TFunction outerProduct_20B10B(
     BuiltInId::outerProduct_Float3_Float2,
     BuiltInName::outerProduct,
     TExtension::UNDEFINED,
@@ -5425,7 +5027,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 3>(),
     EOpOuterProduct,
     true);
-constexpr const TFunction function_outerProduct_10B20B(
+constexpr const TFunction outerProduct_10B20B(
     BuiltInId::outerProduct_Float2_Float3,
     BuiltInName::outerProduct,
     TExtension::UNDEFINED,
@@ -5434,7 +5036,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 2>(),
     EOpOuterProduct,
     true);
-constexpr const TFunction function_outerProduct_30B10B(
+constexpr const TFunction outerProduct_30B10B(
     BuiltInId::outerProduct_Float4_Float2,
     BuiltInName::outerProduct,
     TExtension::UNDEFINED,
@@ -5443,7 +5045,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 4>(),
     EOpOuterProduct,
     true);
-constexpr const TFunction function_outerProduct_10B30B(
+constexpr const TFunction outerProduct_10B30B(
     BuiltInId::outerProduct_Float2_Float4,
     BuiltInName::outerProduct,
     TExtension::UNDEFINED,
@@ -5452,7 +5054,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 2>(),
     EOpOuterProduct,
     true);
-constexpr const TFunction function_outerProduct_30B20B(
+constexpr const TFunction outerProduct_30B20B(
     BuiltInId::outerProduct_Float4_Float3,
     BuiltInName::outerProduct,
     TExtension::UNDEFINED,
@@ -5461,7 +5063,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 4>(),
     EOpOuterProduct,
     true);
-constexpr const TFunction function_outerProduct_20B30B(
+constexpr const TFunction outerProduct_20B30B(
     BuiltInId::outerProduct_Float3_Float4,
     BuiltInName::outerProduct,
     TExtension::UNDEFINED,
@@ -5470,88 +5072,79 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 3>(),
     EOpOuterProduct,
     true);
-constexpr const TFunction function_transpose_50B(
-    BuiltInId::transpose_Float2x2,
-    BuiltInName::transpose,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p50B50B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 2>(),
-    EOpTranspose,
-    true);
-constexpr const TFunction function_transpose_A0B(
-    BuiltInId::transpose_Float3x3,
-    BuiltInName::transpose,
-    TExtension::UNDEFINED,
-    BuiltInParameters::pA0BA0B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 3>(),
-    EOpTranspose,
-    true);
-constexpr const TFunction function_transpose_F0B(
-    BuiltInId::transpose_Float4x4,
-    BuiltInName::transpose,
-    TExtension::UNDEFINED,
-    BuiltInParameters::pF0BF0B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 4>(),
-    EOpTranspose,
-    true);
-constexpr const TFunction function_transpose_60B(
-    BuiltInId::transpose_Float3x2,
-    BuiltInName::transpose,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p60B60B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 3>(),
-    EOpTranspose,
-    true);
-constexpr const TFunction function_transpose_90B(
-    BuiltInId::transpose_Float2x3,
-    BuiltInName::transpose,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p90B90B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 2>(),
-    EOpTranspose,
-    true);
-constexpr const TFunction function_transpose_70B(
-    BuiltInId::transpose_Float4x2,
-    BuiltInName::transpose,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p70B70B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 4>(),
-    EOpTranspose,
-    true);
-constexpr const TFunction function_transpose_D0B(
-    BuiltInId::transpose_Float2x4,
-    BuiltInName::transpose,
-    TExtension::UNDEFINED,
-    BuiltInParameters::pD0BD0B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 2>(),
-    EOpTranspose,
-    true);
-constexpr const TFunction function_transpose_B0B(
-    BuiltInId::transpose_Float4x3,
-    BuiltInName::transpose,
-    TExtension::UNDEFINED,
-    BuiltInParameters::pB0BB0B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 4>(),
-    EOpTranspose,
-    true);
-constexpr const TFunction function_transpose_E0B(
-    BuiltInId::transpose_Float3x4,
-    BuiltInName::transpose,
-    TExtension::UNDEFINED,
-    BuiltInParameters::pE0BE0B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 3>(),
-    EOpTranspose,
-    true);
-constexpr const TFunction function_determinant_50B(
+constexpr const TFunction transpose_50B(BuiltInId::transpose_Float2x2,
+                                        BuiltInName::transpose,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p50B50B,
+                                        1,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 2>(),
+                                        EOpTranspose,
+                                        true);
+constexpr const TFunction transpose_A0B(BuiltInId::transpose_Float3x3,
+                                        BuiltInName::transpose,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::pA0BA0B,
+                                        1,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 3>(),
+                                        EOpTranspose,
+                                        true);
+constexpr const TFunction transpose_F0B(BuiltInId::transpose_Float4x4,
+                                        BuiltInName::transpose,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::pF0BF0B,
+                                        1,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 4>(),
+                                        EOpTranspose,
+                                        true);
+constexpr const TFunction transpose_60B(BuiltInId::transpose_Float3x2,
+                                        BuiltInName::transpose,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p60B60B,
+                                        1,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 3>(),
+                                        EOpTranspose,
+                                        true);
+constexpr const TFunction transpose_90B(BuiltInId::transpose_Float2x3,
+                                        BuiltInName::transpose,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p90B90B,
+                                        1,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 2>(),
+                                        EOpTranspose,
+                                        true);
+constexpr const TFunction transpose_70B(BuiltInId::transpose_Float4x2,
+                                        BuiltInName::transpose,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p70B70B,
+                                        1,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 4>(),
+                                        EOpTranspose,
+                                        true);
+constexpr const TFunction transpose_D0B(BuiltInId::transpose_Float2x4,
+                                        BuiltInName::transpose,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::pD0BD0B,
+                                        1,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 2>(),
+                                        EOpTranspose,
+                                        true);
+constexpr const TFunction transpose_B0B(BuiltInId::transpose_Float4x3,
+                                        BuiltInName::transpose,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::pB0BB0B,
+                                        1,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 4>(),
+                                        EOpTranspose,
+                                        true);
+constexpr const TFunction transpose_E0B(BuiltInId::transpose_Float3x4,
+                                        BuiltInName::transpose,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::pE0BE0B,
+                                        1,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 3>(),
+                                        EOpTranspose,
+                                        true);
+constexpr const TFunction determinant_50B(
     BuiltInId::determinant_Float2x2,
     BuiltInName::determinant,
     TExtension::UNDEFINED,
@@ -5560,7 +5153,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpDeterminant,
     true);
-constexpr const TFunction function_determinant_A0B(
+constexpr const TFunction determinant_A0B(
     BuiltInId::determinant_Float3x3,
     BuiltInName::determinant,
     TExtension::UNDEFINED,
@@ -5569,7 +5162,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpDeterminant,
     true);
-constexpr const TFunction function_determinant_F0B(
+constexpr const TFunction determinant_F0B(
     BuiltInId::determinant_Float4x4,
     BuiltInName::determinant,
     TExtension::UNDEFINED,
@@ -5578,115 +5171,103 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpDeterminant,
     true);
-constexpr const TFunction function_inverse_50B(
-    BuiltInId::inverse_Float2x2,
-    BuiltInName::inverse,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p50B50B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 2>(),
-    EOpInverse,
-    true);
-constexpr const TFunction function_inverse_A0B(
-    BuiltInId::inverse_Float3x3,
-    BuiltInName::inverse,
-    TExtension::UNDEFINED,
-    BuiltInParameters::pA0BA0B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 3>(),
-    EOpInverse,
-    true);
-constexpr const TFunction function_inverse_F0B(
-    BuiltInId::inverse_Float4x4,
-    BuiltInName::inverse,
-    TExtension::UNDEFINED,
-    BuiltInParameters::pF0BF0B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 4>(),
-    EOpInverse,
-    true);
-constexpr const TFunction function_lessThan_10B10B(
-    BuiltInId::lessThan_Float2_Float2,
-    BuiltInName::lessThan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B10B10F,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpLessThanComponentWise,
-    true);
-constexpr const TFunction function_lessThan_20B20B(
-    BuiltInId::lessThan_Float3_Float3,
-    BuiltInName::lessThan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B20F,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpLessThanComponentWise,
-    true);
-constexpr const TFunction function_lessThan_30B30B(
-    BuiltInId::lessThan_Float4_Float4,
-    BuiltInName::lessThan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30B30F,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpLessThanComponentWise,
-    true);
-constexpr const TFunction function_lessThan_10D10D(
-    BuiltInId::lessThan_Int2_Int2,
-    BuiltInName::lessThan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10D10D10D,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpLessThanComponentWise,
-    true);
-constexpr const TFunction function_lessThan_20D20D(
-    BuiltInId::lessThan_Int3_Int3,
-    BuiltInName::lessThan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20D20D00D00D,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpLessThanComponentWise,
-    true);
-constexpr const TFunction function_lessThan_30D30D(
-    BuiltInId::lessThan_Int4_Int4,
-    BuiltInName::lessThan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30D30D30D,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpLessThanComponentWise,
-    true);
-constexpr const TFunction function_lessThan_10E10E(
-    BuiltInId::lessThan_UInt2_UInt2,
-    BuiltInName::lessThan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10E10E10E,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpLessThanComponentWise,
-    true);
-constexpr const TFunction function_lessThan_20E20E(
-    BuiltInId::lessThan_UInt3_UInt3,
-    BuiltInName::lessThan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20E20E00D00D,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpLessThanComponentWise,
-    true);
-constexpr const TFunction function_lessThan_30E30E(
-    BuiltInId::lessThan_UInt4_UInt4,
-    BuiltInName::lessThan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30E30E00D00D,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpLessThanComponentWise,
-    true);
-constexpr const TFunction function_lessThanEqual_10B10B(
+constexpr const TFunction inverse_50B(BuiltInId::inverse_Float2x2,
+                                      BuiltInName::inverse,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p50B50B,
+                                      1,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 2>(),
+                                      EOpInverse,
+                                      true);
+constexpr const TFunction inverse_A0B(BuiltInId::inverse_Float3x3,
+                                      BuiltInName::inverse,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::pA0BA0B,
+                                      1,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 3>(),
+                                      EOpInverse,
+                                      true);
+constexpr const TFunction inverse_F0B(BuiltInId::inverse_Float4x4,
+                                      BuiltInName::inverse,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::pF0BF0B,
+                                      1,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 4>(),
+                                      EOpInverse,
+                                      true);
+constexpr const TFunction lessThan_10B10B(BuiltInId::lessThan_Float2_Float2,
+                                          BuiltInName::lessThan,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p10B10B10F,
+                                          2,
+                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
+                                          EOpLessThanComponentWise,
+                                          true);
+constexpr const TFunction lessThan_20B20B(BuiltInId::lessThan_Float3_Float3,
+                                          BuiltInName::lessThan,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p20B20B20F,
+                                          2,
+                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
+                                          EOpLessThanComponentWise,
+                                          true);
+constexpr const TFunction lessThan_30B30B(BuiltInId::lessThan_Float4_Float4,
+                                          BuiltInName::lessThan,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p30B30B30F,
+                                          2,
+                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
+                                          EOpLessThanComponentWise,
+                                          true);
+constexpr const TFunction lessThan_10D10D(BuiltInId::lessThan_Int2_Int2,
+                                          BuiltInName::lessThan,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p10D10D10D,
+                                          2,
+                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
+                                          EOpLessThanComponentWise,
+                                          true);
+constexpr const TFunction lessThan_20D20D(BuiltInId::lessThan_Int3_Int3,
+                                          BuiltInName::lessThan,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p20D20D00D00D,
+                                          2,
+                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
+                                          EOpLessThanComponentWise,
+                                          true);
+constexpr const TFunction lessThan_30D30D(BuiltInId::lessThan_Int4_Int4,
+                                          BuiltInName::lessThan,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p30D30D30D,
+                                          2,
+                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
+                                          EOpLessThanComponentWise,
+                                          true);
+constexpr const TFunction lessThan_10E10E(BuiltInId::lessThan_UInt2_UInt2,
+                                          BuiltInName::lessThan,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p10E10E10E,
+                                          2,
+                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
+                                          EOpLessThanComponentWise,
+                                          true);
+constexpr const TFunction lessThan_20E20E(BuiltInId::lessThan_UInt3_UInt3,
+                                          BuiltInName::lessThan,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p20E20E00D00D,
+                                          2,
+                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
+                                          EOpLessThanComponentWise,
+                                          true);
+constexpr const TFunction lessThan_30E30E(BuiltInId::lessThan_UInt4_UInt4,
+                                          BuiltInName::lessThan,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p30E30E00D00D,
+                                          2,
+                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
+                                          EOpLessThanComponentWise,
+                                          true);
+constexpr const TFunction lessThanEqual_10B10B(
     BuiltInId::lessThanEqual_Float2_Float2,
     BuiltInName::lessThanEqual,
     TExtension::UNDEFINED,
@@ -5695,7 +5276,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpLessThanEqualComponentWise,
     true);
-constexpr const TFunction function_lessThanEqual_20B20B(
+constexpr const TFunction lessThanEqual_20B20B(
     BuiltInId::lessThanEqual_Float3_Float3,
     BuiltInName::lessThanEqual,
     TExtension::UNDEFINED,
@@ -5704,7 +5285,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpLessThanEqualComponentWise,
     true);
-constexpr const TFunction function_lessThanEqual_30B30B(
+constexpr const TFunction lessThanEqual_30B30B(
     BuiltInId::lessThanEqual_Float4_Float4,
     BuiltInName::lessThanEqual,
     TExtension::UNDEFINED,
@@ -5713,7 +5294,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpLessThanEqualComponentWise,
     true);
-constexpr const TFunction function_lessThanEqual_10D10D(
+constexpr const TFunction lessThanEqual_10D10D(
     BuiltInId::lessThanEqual_Int2_Int2,
     BuiltInName::lessThanEqual,
     TExtension::UNDEFINED,
@@ -5722,7 +5303,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpLessThanEqualComponentWise,
     true);
-constexpr const TFunction function_lessThanEqual_20D20D(
+constexpr const TFunction lessThanEqual_20D20D(
     BuiltInId::lessThanEqual_Int3_Int3,
     BuiltInName::lessThanEqual,
     TExtension::UNDEFINED,
@@ -5731,7 +5312,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpLessThanEqualComponentWise,
     true);
-constexpr const TFunction function_lessThanEqual_30D30D(
+constexpr const TFunction lessThanEqual_30D30D(
     BuiltInId::lessThanEqual_Int4_Int4,
     BuiltInName::lessThanEqual,
     TExtension::UNDEFINED,
@@ -5740,7 +5321,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpLessThanEqualComponentWise,
     true);
-constexpr const TFunction function_lessThanEqual_10E10E(
+constexpr const TFunction lessThanEqual_10E10E(
     BuiltInId::lessThanEqual_UInt2_UInt2,
     BuiltInName::lessThanEqual,
     TExtension::UNDEFINED,
@@ -5749,7 +5330,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpLessThanEqualComponentWise,
     true);
-constexpr const TFunction function_lessThanEqual_20E20E(
+constexpr const TFunction lessThanEqual_20E20E(
     BuiltInId::lessThanEqual_UInt3_UInt3,
     BuiltInName::lessThanEqual,
     TExtension::UNDEFINED,
@@ -5758,7 +5339,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpLessThanEqualComponentWise,
     true);
-constexpr const TFunction function_lessThanEqual_30E30E(
+constexpr const TFunction lessThanEqual_30E30E(
     BuiltInId::lessThanEqual_UInt4_UInt4,
     BuiltInName::lessThanEqual,
     TExtension::UNDEFINED,
@@ -5767,7 +5348,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpLessThanEqualComponentWise,
     true);
-constexpr const TFunction function_greaterThan_10B10B(
+constexpr const TFunction greaterThan_10B10B(
     BuiltInId::greaterThan_Float2_Float2,
     BuiltInName::greaterThan,
     TExtension::UNDEFINED,
@@ -5776,7 +5357,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpGreaterThanComponentWise,
     true);
-constexpr const TFunction function_greaterThan_20B20B(
+constexpr const TFunction greaterThan_20B20B(
     BuiltInId::greaterThan_Float3_Float3,
     BuiltInName::greaterThan,
     TExtension::UNDEFINED,
@@ -5785,7 +5366,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpGreaterThanComponentWise,
     true);
-constexpr const TFunction function_greaterThan_30B30B(
+constexpr const TFunction greaterThan_30B30B(
     BuiltInId::greaterThan_Float4_Float4,
     BuiltInName::greaterThan,
     TExtension::UNDEFINED,
@@ -5794,7 +5375,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpGreaterThanComponentWise,
     true);
-constexpr const TFunction function_greaterThan_10D10D(
+constexpr const TFunction greaterThan_10D10D(
     BuiltInId::greaterThan_Int2_Int2,
     BuiltInName::greaterThan,
     TExtension::UNDEFINED,
@@ -5803,7 +5384,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpGreaterThanComponentWise,
     true);
-constexpr const TFunction function_greaterThan_20D20D(
+constexpr const TFunction greaterThan_20D20D(
     BuiltInId::greaterThan_Int3_Int3,
     BuiltInName::greaterThan,
     TExtension::UNDEFINED,
@@ -5812,7 +5393,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpGreaterThanComponentWise,
     true);
-constexpr const TFunction function_greaterThan_30D30D(
+constexpr const TFunction greaterThan_30D30D(
     BuiltInId::greaterThan_Int4_Int4,
     BuiltInName::greaterThan,
     TExtension::UNDEFINED,
@@ -5821,7 +5402,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpGreaterThanComponentWise,
     true);
-constexpr const TFunction function_greaterThan_10E10E(
+constexpr const TFunction greaterThan_10E10E(
     BuiltInId::greaterThan_UInt2_UInt2,
     BuiltInName::greaterThan,
     TExtension::UNDEFINED,
@@ -5830,7 +5411,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpGreaterThanComponentWise,
     true);
-constexpr const TFunction function_greaterThan_20E20E(
+constexpr const TFunction greaterThan_20E20E(
     BuiltInId::greaterThan_UInt3_UInt3,
     BuiltInName::greaterThan,
     TExtension::UNDEFINED,
@@ -5839,7 +5420,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpGreaterThanComponentWise,
     true);
-constexpr const TFunction function_greaterThan_30E30E(
+constexpr const TFunction greaterThan_30E30E(
     BuiltInId::greaterThan_UInt4_UInt4,
     BuiltInName::greaterThan,
     TExtension::UNDEFINED,
@@ -5848,7 +5429,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpGreaterThanComponentWise,
     true);
-constexpr const TFunction function_greaterThanEqual_10B10B(
+constexpr const TFunction greaterThanEqual_10B10B(
     BuiltInId::greaterThanEqual_Float2_Float2,
     BuiltInName::greaterThanEqual,
     TExtension::UNDEFINED,
@@ -5857,7 +5438,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpGreaterThanEqualComponentWise,
     true);
-constexpr const TFunction function_greaterThanEqual_20B20B(
+constexpr const TFunction greaterThanEqual_20B20B(
     BuiltInId::greaterThanEqual_Float3_Float3,
     BuiltInName::greaterThanEqual,
     TExtension::UNDEFINED,
@@ -5866,7 +5447,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpGreaterThanEqualComponentWise,
     true);
-constexpr const TFunction function_greaterThanEqual_30B30B(
+constexpr const TFunction greaterThanEqual_30B30B(
     BuiltInId::greaterThanEqual_Float4_Float4,
     BuiltInName::greaterThanEqual,
     TExtension::UNDEFINED,
@@ -5875,7 +5456,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpGreaterThanEqualComponentWise,
     true);
-constexpr const TFunction function_greaterThanEqual_10D10D(
+constexpr const TFunction greaterThanEqual_10D10D(
     BuiltInId::greaterThanEqual_Int2_Int2,
     BuiltInName::greaterThanEqual,
     TExtension::UNDEFINED,
@@ -5884,7 +5465,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpGreaterThanEqualComponentWise,
     true);
-constexpr const TFunction function_greaterThanEqual_20D20D(
+constexpr const TFunction greaterThanEqual_20D20D(
     BuiltInId::greaterThanEqual_Int3_Int3,
     BuiltInName::greaterThanEqual,
     TExtension::UNDEFINED,
@@ -5893,7 +5474,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpGreaterThanEqualComponentWise,
     true);
-constexpr const TFunction function_greaterThanEqual_30D30D(
+constexpr const TFunction greaterThanEqual_30D30D(
     BuiltInId::greaterThanEqual_Int4_Int4,
     BuiltInName::greaterThanEqual,
     TExtension::UNDEFINED,
@@ -5902,7 +5483,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpGreaterThanEqualComponentWise,
     true);
-constexpr const TFunction function_greaterThanEqual_10E10E(
+constexpr const TFunction greaterThanEqual_10E10E(
     BuiltInId::greaterThanEqual_UInt2_UInt2,
     BuiltInName::greaterThanEqual,
     TExtension::UNDEFINED,
@@ -5911,7 +5492,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpGreaterThanEqualComponentWise,
     true);
-constexpr const TFunction function_greaterThanEqual_20E20E(
+constexpr const TFunction greaterThanEqual_20E20E(
     BuiltInId::greaterThanEqual_UInt3_UInt3,
     BuiltInName::greaterThanEqual,
     TExtension::UNDEFINED,
@@ -5920,7 +5501,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpGreaterThanEqualComponentWise,
     true);
-constexpr const TFunction function_greaterThanEqual_30E30E(
+constexpr const TFunction greaterThanEqual_30E30E(
     BuiltInId::greaterThanEqual_UInt4_UInt4,
     BuiltInName::greaterThanEqual,
     TExtension::UNDEFINED,
@@ -5929,304 +5510,271 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpGreaterThanEqualComponentWise,
     true);
-constexpr const TFunction function_equal_10B10B(
-    BuiltInId::equal_Float2_Float2,
-    BuiltInName::equal,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B10B10F,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpEqualComponentWise,
-    true);
-constexpr const TFunction function_equal_20B20B(
-    BuiltInId::equal_Float3_Float3,
-    BuiltInName::equal,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B20F,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpEqualComponentWise,
-    true);
-constexpr const TFunction function_equal_30B30B(
-    BuiltInId::equal_Float4_Float4,
-    BuiltInName::equal,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30B30F,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpEqualComponentWise,
-    true);
-constexpr const TFunction function_equal_10D10D(
-    BuiltInId::equal_Int2_Int2,
-    BuiltInName::equal,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10D10D10D,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpEqualComponentWise,
-    true);
-constexpr const TFunction function_equal_20D20D(
-    BuiltInId::equal_Int3_Int3,
-    BuiltInName::equal,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20D20D00D00D,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpEqualComponentWise,
-    true);
-constexpr const TFunction function_equal_30D30D(
-    BuiltInId::equal_Int4_Int4,
-    BuiltInName::equal,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30D30D30D,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpEqualComponentWise,
-    true);
-constexpr const TFunction function_equal_10E10E(
-    BuiltInId::equal_UInt2_UInt2,
-    BuiltInName::equal,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10E10E10E,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpEqualComponentWise,
-    true);
-constexpr const TFunction function_equal_20E20E(
-    BuiltInId::equal_UInt3_UInt3,
-    BuiltInName::equal,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20E20E00D00D,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpEqualComponentWise,
-    true);
-constexpr const TFunction function_equal_30E30E(
-    BuiltInId::equal_UInt4_UInt4,
-    BuiltInName::equal,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30E30E00D00D,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpEqualComponentWise,
-    true);
-constexpr const TFunction function_equal_10F10F(
-    BuiltInId::equal_Bool2_Bool2,
-    BuiltInName::equal,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10F10F,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpEqualComponentWise,
-    true);
-constexpr const TFunction function_equal_20F20F(
-    BuiltInId::equal_Bool3_Bool3,
-    BuiltInName::equal,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20F20F,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpEqualComponentWise,
-    true);
-constexpr const TFunction function_equal_30F30F(
-    BuiltInId::equal_Bool4_Bool4,
-    BuiltInName::equal,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30F30F,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpEqualComponentWise,
-    true);
-constexpr const TFunction function_notEqual_10B10B(
-    BuiltInId::notEqual_Float2_Float2,
-    BuiltInName::notEqual,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B10B10F,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpNotEqualComponentWise,
-    true);
-constexpr const TFunction function_notEqual_20B20B(
-    BuiltInId::notEqual_Float3_Float3,
-    BuiltInName::notEqual,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B20F,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpNotEqualComponentWise,
-    true);
-constexpr const TFunction function_notEqual_30B30B(
-    BuiltInId::notEqual_Float4_Float4,
-    BuiltInName::notEqual,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30B30F,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpNotEqualComponentWise,
-    true);
-constexpr const TFunction function_notEqual_10D10D(
-    BuiltInId::notEqual_Int2_Int2,
-    BuiltInName::notEqual,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10D10D10D,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpNotEqualComponentWise,
-    true);
-constexpr const TFunction function_notEqual_20D20D(
-    BuiltInId::notEqual_Int3_Int3,
-    BuiltInName::notEqual,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20D20D00D00D,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpNotEqualComponentWise,
-    true);
-constexpr const TFunction function_notEqual_30D30D(
-    BuiltInId::notEqual_Int4_Int4,
-    BuiltInName::notEqual,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30D30D30D,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpNotEqualComponentWise,
-    true);
-constexpr const TFunction function_notEqual_10E10E(
-    BuiltInId::notEqual_UInt2_UInt2,
-    BuiltInName::notEqual,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10E10E10E,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpNotEqualComponentWise,
-    true);
-constexpr const TFunction function_notEqual_20E20E(
-    BuiltInId::notEqual_UInt3_UInt3,
-    BuiltInName::notEqual,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20E20E00D00D,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpNotEqualComponentWise,
-    true);
-constexpr const TFunction function_notEqual_30E30E(
-    BuiltInId::notEqual_UInt4_UInt4,
-    BuiltInName::notEqual,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30E30E00D00D,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpNotEqualComponentWise,
-    true);
-constexpr const TFunction function_notEqual_10F10F(
-    BuiltInId::notEqual_Bool2_Bool2,
-    BuiltInName::notEqual,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10F10F,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpNotEqualComponentWise,
-    true);
-constexpr const TFunction function_notEqual_20F20F(
-    BuiltInId::notEqual_Bool3_Bool3,
-    BuiltInName::notEqual,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20F20F,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpNotEqualComponentWise,
-    true);
-constexpr const TFunction function_notEqual_30F30F(
-    BuiltInId::notEqual_Bool4_Bool4,
-    BuiltInName::notEqual,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30F30F,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpNotEqualComponentWise,
-    true);
-constexpr const TFunction function_any_10F(
-    BuiltInId::any_Bool2,
-    BuiltInName::any,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10F10F,
-    1,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpAny,
-    true);
-constexpr const TFunction function_any_20F(
-    BuiltInId::any_Bool3,
-    BuiltInName::any,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20F20F,
-    1,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpAny,
-    true);
-constexpr const TFunction function_any_30F(
-    BuiltInId::any_Bool4,
-    BuiltInName::any,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30F30F,
-    1,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpAny,
-    true);
-constexpr const TFunction function_all_10F(
-    BuiltInId::all_Bool2,
-    BuiltInName::all,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10F10F,
-    1,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpAll,
-    true);
-constexpr const TFunction function_all_20F(
-    BuiltInId::all_Bool3,
-    BuiltInName::all,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20F20F,
-    1,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpAll,
-    true);
-constexpr const TFunction function_all_30F(
-    BuiltInId::all_Bool4,
-    BuiltInName::all,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30F30F,
-    1,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpAll,
-    true);
-constexpr const TFunction function_notFunc_10F(
-    BuiltInId::notFunc_Bool2,
-    BuiltInName::notFunc,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10F10F,
-    1,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpLogicalNotComponentWise,
-    true);
-constexpr const TFunction function_notFunc_20F(
-    BuiltInId::notFunc_Bool3,
-    BuiltInName::notFunc,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20F20F,
-    1,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpLogicalNotComponentWise,
-    true);
-constexpr const TFunction function_notFunc_30F(
-    BuiltInId::notFunc_Bool4,
-    BuiltInName::notFunc,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30F30F,
-    1,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpLogicalNotComponentWise,
-    true);
-constexpr const TFunction function_bitfieldExtract_00D00D00D(
+constexpr const TFunction equal_10B10B(BuiltInId::equal_Float2_Float2,
+                                       BuiltInName::equal,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p10B10B10F,
+                                       2,
+                                       StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
+                                       EOpEqualComponentWise,
+                                       true);
+constexpr const TFunction equal_20B20B(BuiltInId::equal_Float3_Float3,
+                                       BuiltInName::equal,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p20B20B20F,
+                                       2,
+                                       StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
+                                       EOpEqualComponentWise,
+                                       true);
+constexpr const TFunction equal_30B30B(BuiltInId::equal_Float4_Float4,
+                                       BuiltInName::equal,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p30B30B30F,
+                                       2,
+                                       StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
+                                       EOpEqualComponentWise,
+                                       true);
+constexpr const TFunction equal_10D10D(BuiltInId::equal_Int2_Int2,
+                                       BuiltInName::equal,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p10D10D10D,
+                                       2,
+                                       StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
+                                       EOpEqualComponentWise,
+                                       true);
+constexpr const TFunction equal_20D20D(BuiltInId::equal_Int3_Int3,
+                                       BuiltInName::equal,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p20D20D00D00D,
+                                       2,
+                                       StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
+                                       EOpEqualComponentWise,
+                                       true);
+constexpr const TFunction equal_30D30D(BuiltInId::equal_Int4_Int4,
+                                       BuiltInName::equal,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p30D30D30D,
+                                       2,
+                                       StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
+                                       EOpEqualComponentWise,
+                                       true);
+constexpr const TFunction equal_10E10E(BuiltInId::equal_UInt2_UInt2,
+                                       BuiltInName::equal,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p10E10E10E,
+                                       2,
+                                       StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
+                                       EOpEqualComponentWise,
+                                       true);
+constexpr const TFunction equal_20E20E(BuiltInId::equal_UInt3_UInt3,
+                                       BuiltInName::equal,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p20E20E00D00D,
+                                       2,
+                                       StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
+                                       EOpEqualComponentWise,
+                                       true);
+constexpr const TFunction equal_30E30E(BuiltInId::equal_UInt4_UInt4,
+                                       BuiltInName::equal,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p30E30E00D00D,
+                                       2,
+                                       StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
+                                       EOpEqualComponentWise,
+                                       true);
+constexpr const TFunction equal_10F10F(BuiltInId::equal_Bool2_Bool2,
+                                       BuiltInName::equal,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p10F10F,
+                                       2,
+                                       StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
+                                       EOpEqualComponentWise,
+                                       true);
+constexpr const TFunction equal_20F20F(BuiltInId::equal_Bool3_Bool3,
+                                       BuiltInName::equal,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p20F20F,
+                                       2,
+                                       StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
+                                       EOpEqualComponentWise,
+                                       true);
+constexpr const TFunction equal_30F30F(BuiltInId::equal_Bool4_Bool4,
+                                       BuiltInName::equal,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p30F30F,
+                                       2,
+                                       StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
+                                       EOpEqualComponentWise,
+                                       true);
+constexpr const TFunction notEqual_10B10B(BuiltInId::notEqual_Float2_Float2,
+                                          BuiltInName::notEqual,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p10B10B10F,
+                                          2,
+                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
+                                          EOpNotEqualComponentWise,
+                                          true);
+constexpr const TFunction notEqual_20B20B(BuiltInId::notEqual_Float3_Float3,
+                                          BuiltInName::notEqual,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p20B20B20F,
+                                          2,
+                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
+                                          EOpNotEqualComponentWise,
+                                          true);
+constexpr const TFunction notEqual_30B30B(BuiltInId::notEqual_Float4_Float4,
+                                          BuiltInName::notEqual,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p30B30B30F,
+                                          2,
+                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
+                                          EOpNotEqualComponentWise,
+                                          true);
+constexpr const TFunction notEqual_10D10D(BuiltInId::notEqual_Int2_Int2,
+                                          BuiltInName::notEqual,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p10D10D10D,
+                                          2,
+                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
+                                          EOpNotEqualComponentWise,
+                                          true);
+constexpr const TFunction notEqual_20D20D(BuiltInId::notEqual_Int3_Int3,
+                                          BuiltInName::notEqual,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p20D20D00D00D,
+                                          2,
+                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
+                                          EOpNotEqualComponentWise,
+                                          true);
+constexpr const TFunction notEqual_30D30D(BuiltInId::notEqual_Int4_Int4,
+                                          BuiltInName::notEqual,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p30D30D30D,
+                                          2,
+                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
+                                          EOpNotEqualComponentWise,
+                                          true);
+constexpr const TFunction notEqual_10E10E(BuiltInId::notEqual_UInt2_UInt2,
+                                          BuiltInName::notEqual,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p10E10E10E,
+                                          2,
+                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
+                                          EOpNotEqualComponentWise,
+                                          true);
+constexpr const TFunction notEqual_20E20E(BuiltInId::notEqual_UInt3_UInt3,
+                                          BuiltInName::notEqual,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p20E20E00D00D,
+                                          2,
+                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
+                                          EOpNotEqualComponentWise,
+                                          true);
+constexpr const TFunction notEqual_30E30E(BuiltInId::notEqual_UInt4_UInt4,
+                                          BuiltInName::notEqual,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p30E30E00D00D,
+                                          2,
+                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
+                                          EOpNotEqualComponentWise,
+                                          true);
+constexpr const TFunction notEqual_10F10F(BuiltInId::notEqual_Bool2_Bool2,
+                                          BuiltInName::notEqual,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p10F10F,
+                                          2,
+                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
+                                          EOpNotEqualComponentWise,
+                                          true);
+constexpr const TFunction notEqual_20F20F(BuiltInId::notEqual_Bool3_Bool3,
+                                          BuiltInName::notEqual,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p20F20F,
+                                          2,
+                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
+                                          EOpNotEqualComponentWise,
+                                          true);
+constexpr const TFunction notEqual_30F30F(BuiltInId::notEqual_Bool4_Bool4,
+                                          BuiltInName::notEqual,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p30F30F,
+                                          2,
+                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
+                                          EOpNotEqualComponentWise,
+                                          true);
+constexpr const TFunction any_10F(BuiltInId::any_Bool2,
+                                  BuiltInName::any,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p10F10F,
+                                  1,
+                                  StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
+                                  EOpAny,
+                                  true);
+constexpr const TFunction any_20F(BuiltInId::any_Bool3,
+                                  BuiltInName::any,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p20F20F,
+                                  1,
+                                  StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
+                                  EOpAny,
+                                  true);
+constexpr const TFunction any_30F(BuiltInId::any_Bool4,
+                                  BuiltInName::any,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p30F30F,
+                                  1,
+                                  StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
+                                  EOpAny,
+                                  true);
+constexpr const TFunction all_10F(BuiltInId::all_Bool2,
+                                  BuiltInName::all,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p10F10F,
+                                  1,
+                                  StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
+                                  EOpAll,
+                                  true);
+constexpr const TFunction all_20F(BuiltInId::all_Bool3,
+                                  BuiltInName::all,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p20F20F,
+                                  1,
+                                  StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
+                                  EOpAll,
+                                  true);
+constexpr const TFunction all_30F(BuiltInId::all_Bool4,
+                                  BuiltInName::all,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p30F30F,
+                                  1,
+                                  StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
+                                  EOpAll,
+                                  true);
+constexpr const TFunction notFunc_10F(BuiltInId::notFunc_Bool2,
+                                      BuiltInName::notFunc,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p10F10F,
+                                      1,
+                                      StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
+                                      EOpLogicalNotComponentWise,
+                                      true);
+constexpr const TFunction notFunc_20F(BuiltInId::notFunc_Bool3,
+                                      BuiltInName::notFunc,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p20F20F,
+                                      1,
+                                      StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
+                                      EOpLogicalNotComponentWise,
+                                      true);
+constexpr const TFunction notFunc_30F(BuiltInId::notFunc_Bool4,
+                                      BuiltInName::notFunc,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p30F30F,
+                                      1,
+                                      StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
+                                      EOpLogicalNotComponentWise,
+                                      true);
+constexpr const TFunction bitfieldExtract_00D00D00D(
     BuiltInId::bitfieldExtract_Int1_Int1_Int1,
     BuiltInName::bitfieldExtract,
     TExtension::UNDEFINED,
@@ -6235,7 +5783,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpBitfieldExtract,
     true);
-constexpr const TFunction function_bitfieldExtract_10D00D00D(
+constexpr const TFunction bitfieldExtract_10D00D00D(
     BuiltInId::bitfieldExtract_Int2_Int1_Int1,
     BuiltInName::bitfieldExtract,
     TExtension::UNDEFINED,
@@ -6244,7 +5792,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpBitfieldExtract,
     true);
-constexpr const TFunction function_bitfieldExtract_20D00D00D(
+constexpr const TFunction bitfieldExtract_20D00D00D(
     BuiltInId::bitfieldExtract_Int3_Int1_Int1,
     BuiltInName::bitfieldExtract,
     TExtension::UNDEFINED,
@@ -6253,7 +5801,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpBitfieldExtract,
     true);
-constexpr const TFunction function_bitfieldExtract_30D00D00D(
+constexpr const TFunction bitfieldExtract_30D00D00D(
     BuiltInId::bitfieldExtract_Int4_Int1_Int1,
     BuiltInName::bitfieldExtract,
     TExtension::UNDEFINED,
@@ -6262,7 +5810,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpBitfieldExtract,
     true);
-constexpr const TFunction function_bitfieldExtract_00E00D00D(
+constexpr const TFunction bitfieldExtract_00E00D00D(
     BuiltInId::bitfieldExtract_UInt1_Int1_Int1,
     BuiltInName::bitfieldExtract,
     TExtension::UNDEFINED,
@@ -6271,7 +5819,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpBitfieldExtract,
     true);
-constexpr const TFunction function_bitfieldExtract_10E00D00D(
+constexpr const TFunction bitfieldExtract_10E00D00D(
     BuiltInId::bitfieldExtract_UInt2_Int1_Int1,
     BuiltInName::bitfieldExtract,
     TExtension::UNDEFINED,
@@ -6280,7 +5828,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpBitfieldExtract,
     true);
-constexpr const TFunction function_bitfieldExtract_20E00D00D(
+constexpr const TFunction bitfieldExtract_20E00D00D(
     BuiltInId::bitfieldExtract_UInt3_Int1_Int1,
     BuiltInName::bitfieldExtract,
     TExtension::UNDEFINED,
@@ -6289,7 +5837,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpBitfieldExtract,
     true);
-constexpr const TFunction function_bitfieldExtract_30E00D00D(
+constexpr const TFunction bitfieldExtract_30E00D00D(
     BuiltInId::bitfieldExtract_UInt4_Int1_Int1,
     BuiltInName::bitfieldExtract,
     TExtension::UNDEFINED,
@@ -6298,7 +5846,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpBitfieldExtract,
     true);
-constexpr const TFunction function_bitfieldInsert_00D00D00D00D(
+constexpr const TFunction bitfieldInsert_00D00D00D00D(
     BuiltInId::bitfieldInsert_Int1_Int1_Int1_Int1,
     BuiltInName::bitfieldInsert,
     TExtension::UNDEFINED,
@@ -6307,7 +5855,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpBitfieldInsert,
     true);
-constexpr const TFunction function_bitfieldInsert_10D10D00D00D(
+constexpr const TFunction bitfieldInsert_10D10D00D00D(
     BuiltInId::bitfieldInsert_Int2_Int2_Int1_Int1,
     BuiltInName::bitfieldInsert,
     TExtension::UNDEFINED,
@@ -6316,7 +5864,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpBitfieldInsert,
     true);
-constexpr const TFunction function_bitfieldInsert_20D20D00D00D(
+constexpr const TFunction bitfieldInsert_20D20D00D00D(
     BuiltInId::bitfieldInsert_Int3_Int3_Int1_Int1,
     BuiltInName::bitfieldInsert,
     TExtension::UNDEFINED,
@@ -6325,7 +5873,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpBitfieldInsert,
     true);
-constexpr const TFunction function_bitfieldInsert_30D30D00D00D(
+constexpr const TFunction bitfieldInsert_30D30D00D00D(
     BuiltInId::bitfieldInsert_Int4_Int4_Int1_Int1,
     BuiltInName::bitfieldInsert,
     TExtension::UNDEFINED,
@@ -6334,7 +5882,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpBitfieldInsert,
     true);
-constexpr const TFunction function_bitfieldInsert_00E00E00D00D(
+constexpr const TFunction bitfieldInsert_00E00E00D00D(
     BuiltInId::bitfieldInsert_UInt1_UInt1_Int1_Int1,
     BuiltInName::bitfieldInsert,
     TExtension::UNDEFINED,
@@ -6343,7 +5891,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpBitfieldInsert,
     true);
-constexpr const TFunction function_bitfieldInsert_10E10E00D00D(
+constexpr const TFunction bitfieldInsert_10E10E00D00D(
     BuiltInId::bitfieldInsert_UInt2_UInt2_Int1_Int1,
     BuiltInName::bitfieldInsert,
     TExtension::UNDEFINED,
@@ -6352,7 +5900,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpBitfieldInsert,
     true);
-constexpr const TFunction function_bitfieldInsert_20E20E00D00D(
+constexpr const TFunction bitfieldInsert_20E20E00D00D(
     BuiltInId::bitfieldInsert_UInt3_UInt3_Int1_Int1,
     BuiltInName::bitfieldInsert,
     TExtension::UNDEFINED,
@@ -6361,7 +5909,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpBitfieldInsert,
     true);
-constexpr const TFunction function_bitfieldInsert_30E30E00D00D(
+constexpr const TFunction bitfieldInsert_30E30E00D00D(
     BuiltInId::bitfieldInsert_UInt4_UInt4_Int1_Int1,
     BuiltInName::bitfieldInsert,
     TExtension::UNDEFINED,
@@ -6370,7 +5918,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpBitfieldInsert,
     true);
-constexpr const TFunction function_bitfieldReverse_00D(
+constexpr const TFunction bitfieldReverse_00D(
     BuiltInId::bitfieldReverse_Int1,
     BuiltInName::bitfieldReverse,
     TExtension::UNDEFINED,
@@ -6379,7 +5927,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpBitfieldReverse,
     true);
-constexpr const TFunction function_bitfieldReverse_10D(
+constexpr const TFunction bitfieldReverse_10D(
     BuiltInId::bitfieldReverse_Int2,
     BuiltInName::bitfieldReverse,
     TExtension::UNDEFINED,
@@ -6388,7 +5936,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpBitfieldReverse,
     true);
-constexpr const TFunction function_bitfieldReverse_20D(
+constexpr const TFunction bitfieldReverse_20D(
     BuiltInId::bitfieldReverse_Int3,
     BuiltInName::bitfieldReverse,
     TExtension::UNDEFINED,
@@ -6397,7 +5945,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpBitfieldReverse,
     true);
-constexpr const TFunction function_bitfieldReverse_30D(
+constexpr const TFunction bitfieldReverse_30D(
     BuiltInId::bitfieldReverse_Int4,
     BuiltInName::bitfieldReverse,
     TExtension::UNDEFINED,
@@ -6406,7 +5954,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpBitfieldReverse,
     true);
-constexpr const TFunction function_bitfieldReverse_00E(
+constexpr const TFunction bitfieldReverse_00E(
     BuiltInId::bitfieldReverse_UInt1,
     BuiltInName::bitfieldReverse,
     TExtension::UNDEFINED,
@@ -6415,7 +5963,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpBitfieldReverse,
     true);
-constexpr const TFunction function_bitfieldReverse_10E(
+constexpr const TFunction bitfieldReverse_10E(
     BuiltInId::bitfieldReverse_UInt2,
     BuiltInName::bitfieldReverse,
     TExtension::UNDEFINED,
@@ -6424,7 +5972,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpBitfieldReverse,
     true);
-constexpr const TFunction function_bitfieldReverse_20E(
+constexpr const TFunction bitfieldReverse_20E(
     BuiltInId::bitfieldReverse_UInt3,
     BuiltInName::bitfieldReverse,
     TExtension::UNDEFINED,
@@ -6433,7 +5981,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpBitfieldReverse,
     true);
-constexpr const TFunction function_bitfieldReverse_30E(
+constexpr const TFunction bitfieldReverse_30E(
     BuiltInId::bitfieldReverse_UInt4,
     BuiltInName::bitfieldReverse,
     TExtension::UNDEFINED,
@@ -6442,223 +5990,199 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpBitfieldReverse,
     true);
-constexpr const TFunction function_bitCount_00D(
-    BuiltInId::bitCount_Int1,
-    BuiltInName::bitCount,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00D00D00D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpBitCount,
-    true);
-constexpr const TFunction function_bitCount_10D(
-    BuiltInId::bitCount_Int2,
-    BuiltInName::bitCount,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10D00D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpBitCount,
-    true);
-constexpr const TFunction function_bitCount_20D(
-    BuiltInId::bitCount_Int3,
-    BuiltInName::bitCount,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20D20D00D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpBitCount,
-    true);
-constexpr const TFunction function_bitCount_30D(
-    BuiltInId::bitCount_Int4,
-    BuiltInName::bitCount,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30D00D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpBitCount,
-    true);
-constexpr const TFunction function_bitCount_00E(
-    BuiltInId::bitCount_UInt1,
-    BuiltInName::bitCount,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00E00E00E,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpBitCount,
-    true);
-constexpr const TFunction function_bitCount_10E(
-    BuiltInId::bitCount_UInt2,
-    BuiltInName::bitCount,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10E00D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpBitCount,
-    true);
-constexpr const TFunction function_bitCount_20E(
-    BuiltInId::bitCount_UInt3,
-    BuiltInName::bitCount,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20E20E00D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpBitCount,
-    true);
-constexpr const TFunction function_bitCount_30E(
-    BuiltInId::bitCount_UInt4,
-    BuiltInName::bitCount,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30E30E00D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpBitCount,
-    true);
-constexpr const TFunction function_findLSB_00D(
-    BuiltInId::findLSB_Int1,
-    BuiltInName::findLSB,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00D00D00D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpFindLSB,
-    true);
-constexpr const TFunction function_findLSB_10D(
-    BuiltInId::findLSB_Int2,
-    BuiltInName::findLSB,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10D00D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpFindLSB,
-    true);
-constexpr const TFunction function_findLSB_20D(
-    BuiltInId::findLSB_Int3,
-    BuiltInName::findLSB,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20D20D00D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpFindLSB,
-    true);
-constexpr const TFunction function_findLSB_30D(
-    BuiltInId::findLSB_Int4,
-    BuiltInName::findLSB,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30D00D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpFindLSB,
-    true);
-constexpr const TFunction function_findLSB_00E(
-    BuiltInId::findLSB_UInt1,
-    BuiltInName::findLSB,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00E00E00E,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpFindLSB,
-    true);
-constexpr const TFunction function_findLSB_10E(
-    BuiltInId::findLSB_UInt2,
-    BuiltInName::findLSB,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10E00D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpFindLSB,
-    true);
-constexpr const TFunction function_findLSB_20E(
-    BuiltInId::findLSB_UInt3,
-    BuiltInName::findLSB,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20E20E00D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpFindLSB,
-    true);
-constexpr const TFunction function_findLSB_30E(
-    BuiltInId::findLSB_UInt4,
-    BuiltInName::findLSB,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30E30E00D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpFindLSB,
-    true);
-constexpr const TFunction function_findMSB_00D(
-    BuiltInId::findMSB_Int1,
-    BuiltInName::findMSB,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00D00D00D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpFindMSB,
-    true);
-constexpr const TFunction function_findMSB_10D(
-    BuiltInId::findMSB_Int2,
-    BuiltInName::findMSB,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10D00D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpFindMSB,
-    true);
-constexpr const TFunction function_findMSB_20D(
-    BuiltInId::findMSB_Int3,
-    BuiltInName::findMSB,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20D20D00D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpFindMSB,
-    true);
-constexpr const TFunction function_findMSB_30D(
-    BuiltInId::findMSB_Int4,
-    BuiltInName::findMSB,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30D00D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpFindMSB,
-    true);
-constexpr const TFunction function_findMSB_00E(
-    BuiltInId::findMSB_UInt1,
-    BuiltInName::findMSB,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00E00E00E,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpFindMSB,
-    true);
-constexpr const TFunction function_findMSB_10E(
-    BuiltInId::findMSB_UInt2,
-    BuiltInName::findMSB,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10E00D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpFindMSB,
-    true);
-constexpr const TFunction function_findMSB_20E(
-    BuiltInId::findMSB_UInt3,
-    BuiltInName::findMSB,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20E20E00D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpFindMSB,
-    true);
-constexpr const TFunction function_findMSB_30E(
-    BuiltInId::findMSB_UInt4,
-    BuiltInName::findMSB,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30E30E00D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpFindMSB,
-    true);
-constexpr const TFunction function_uaddCarry_00E00E00E(
+constexpr const TFunction bitCount_00D(BuiltInId::bitCount_Int1,
+                                       BuiltInName::bitCount,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p00D00D00D00D,
+                                       1,
+                                       StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                       EOpBitCount,
+                                       true);
+constexpr const TFunction bitCount_10D(BuiltInId::bitCount_Int2,
+                                       BuiltInName::bitCount,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p10D00D00D,
+                                       1,
+                                       StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                       EOpBitCount,
+                                       true);
+constexpr const TFunction bitCount_20D(BuiltInId::bitCount_Int3,
+                                       BuiltInName::bitCount,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p20D20D00D00D,
+                                       1,
+                                       StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                       EOpBitCount,
+                                       true);
+constexpr const TFunction bitCount_30D(BuiltInId::bitCount_Int4,
+                                       BuiltInName::bitCount,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p30D00D00D,
+                                       1,
+                                       StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                       EOpBitCount,
+                                       true);
+constexpr const TFunction bitCount_00E(BuiltInId::bitCount_UInt1,
+                                       BuiltInName::bitCount,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p00E00E00E,
+                                       1,
+                                       StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                       EOpBitCount,
+                                       true);
+constexpr const TFunction bitCount_10E(BuiltInId::bitCount_UInt2,
+                                       BuiltInName::bitCount,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p10E00D00D,
+                                       1,
+                                       StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                       EOpBitCount,
+                                       true);
+constexpr const TFunction bitCount_20E(BuiltInId::bitCount_UInt3,
+                                       BuiltInName::bitCount,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p20E20E00D00D,
+                                       1,
+                                       StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                       EOpBitCount,
+                                       true);
+constexpr const TFunction bitCount_30E(BuiltInId::bitCount_UInt4,
+                                       BuiltInName::bitCount,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p30E30E00D00D,
+                                       1,
+                                       StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                       EOpBitCount,
+                                       true);
+constexpr const TFunction findLSB_00D(BuiltInId::findLSB_Int1,
+                                      BuiltInName::findLSB,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p00D00D00D00D,
+                                      1,
+                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                      EOpFindLSB,
+                                      true);
+constexpr const TFunction findLSB_10D(BuiltInId::findLSB_Int2,
+                                      BuiltInName::findLSB,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p10D00D00D,
+                                      1,
+                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                      EOpFindLSB,
+                                      true);
+constexpr const TFunction findLSB_20D(BuiltInId::findLSB_Int3,
+                                      BuiltInName::findLSB,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p20D20D00D00D,
+                                      1,
+                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                      EOpFindLSB,
+                                      true);
+constexpr const TFunction findLSB_30D(BuiltInId::findLSB_Int4,
+                                      BuiltInName::findLSB,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p30D00D00D,
+                                      1,
+                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                      EOpFindLSB,
+                                      true);
+constexpr const TFunction findLSB_00E(BuiltInId::findLSB_UInt1,
+                                      BuiltInName::findLSB,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p00E00E00E,
+                                      1,
+                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                      EOpFindLSB,
+                                      true);
+constexpr const TFunction findLSB_10E(BuiltInId::findLSB_UInt2,
+                                      BuiltInName::findLSB,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p10E00D00D,
+                                      1,
+                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                      EOpFindLSB,
+                                      true);
+constexpr const TFunction findLSB_20E(BuiltInId::findLSB_UInt3,
+                                      BuiltInName::findLSB,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p20E20E00D00D,
+                                      1,
+                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                      EOpFindLSB,
+                                      true);
+constexpr const TFunction findLSB_30E(BuiltInId::findLSB_UInt4,
+                                      BuiltInName::findLSB,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p30E30E00D00D,
+                                      1,
+                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                      EOpFindLSB,
+                                      true);
+constexpr const TFunction findMSB_00D(BuiltInId::findMSB_Int1,
+                                      BuiltInName::findMSB,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p00D00D00D00D,
+                                      1,
+                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                      EOpFindMSB,
+                                      true);
+constexpr const TFunction findMSB_10D(BuiltInId::findMSB_Int2,
+                                      BuiltInName::findMSB,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p10D00D00D,
+                                      1,
+                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                      EOpFindMSB,
+                                      true);
+constexpr const TFunction findMSB_20D(BuiltInId::findMSB_Int3,
+                                      BuiltInName::findMSB,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p20D20D00D00D,
+                                      1,
+                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                      EOpFindMSB,
+                                      true);
+constexpr const TFunction findMSB_30D(BuiltInId::findMSB_Int4,
+                                      BuiltInName::findMSB,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p30D00D00D,
+                                      1,
+                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                      EOpFindMSB,
+                                      true);
+constexpr const TFunction findMSB_00E(BuiltInId::findMSB_UInt1,
+                                      BuiltInName::findMSB,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p00E00E00E,
+                                      1,
+                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                      EOpFindMSB,
+                                      true);
+constexpr const TFunction findMSB_10E(BuiltInId::findMSB_UInt2,
+                                      BuiltInName::findMSB,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p10E00D00D,
+                                      1,
+                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                      EOpFindMSB,
+                                      true);
+constexpr const TFunction findMSB_20E(BuiltInId::findMSB_UInt3,
+                                      BuiltInName::findMSB,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p20E20E00D00D,
+                                      1,
+                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                      EOpFindMSB,
+                                      true);
+constexpr const TFunction findMSB_30E(BuiltInId::findMSB_UInt4,
+                                      BuiltInName::findMSB,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p30E30E00D00D,
+                                      1,
+                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                      EOpFindMSB,
+                                      true);
+constexpr const TFunction uaddCarry_00E00E00E(
     BuiltInId::uaddCarry_UInt1_UInt1_UInt1,
     BuiltInName::uaddCarry,
     TExtension::UNDEFINED,
@@ -6667,7 +6191,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpUaddCarry,
     false);
-constexpr const TFunction function_uaddCarry_10E10E10E(
+constexpr const TFunction uaddCarry_10E10E10E(
     BuiltInId::uaddCarry_UInt2_UInt2_UInt2,
     BuiltInName::uaddCarry,
     TExtension::UNDEFINED,
@@ -6676,7 +6200,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpUaddCarry,
     false);
-constexpr const TFunction function_uaddCarry_20E20E20E(
+constexpr const TFunction uaddCarry_20E20E20E(
     BuiltInId::uaddCarry_UInt3_UInt3_UInt3,
     BuiltInName::uaddCarry,
     TExtension::UNDEFINED,
@@ -6685,7 +6209,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpUaddCarry,
     false);
-constexpr const TFunction function_uaddCarry_30E30E30E(
+constexpr const TFunction uaddCarry_30E30E30E(
     BuiltInId::uaddCarry_UInt4_UInt4_UInt4,
     BuiltInName::uaddCarry,
     TExtension::UNDEFINED,
@@ -6694,7 +6218,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpUaddCarry,
     false);
-constexpr const TFunction function_usubBorrow_00E00E00E(
+constexpr const TFunction usubBorrow_00E00E00E(
     BuiltInId::usubBorrow_UInt1_UInt1_UInt1,
     BuiltInName::usubBorrow,
     TExtension::UNDEFINED,
@@ -6703,7 +6227,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpUsubBorrow,
     false);
-constexpr const TFunction function_usubBorrow_10E10E10E(
+constexpr const TFunction usubBorrow_10E10E10E(
     BuiltInId::usubBorrow_UInt2_UInt2_UInt2,
     BuiltInName::usubBorrow,
     TExtension::UNDEFINED,
@@ -6712,7 +6236,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpUsubBorrow,
     false);
-constexpr const TFunction function_usubBorrow_20E20E20E(
+constexpr const TFunction usubBorrow_20E20E20E(
     BuiltInId::usubBorrow_UInt3_UInt3_UInt3,
     BuiltInName::usubBorrow,
     TExtension::UNDEFINED,
@@ -6721,7 +6245,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpUsubBorrow,
     false);
-constexpr const TFunction function_usubBorrow_30E30E30E(
+constexpr const TFunction usubBorrow_30E30E30E(
     BuiltInId::usubBorrow_UInt4_UInt4_UInt4,
     BuiltInName::usubBorrow,
     TExtension::UNDEFINED,
@@ -6730,7 +6254,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpUsubBorrow,
     false);
-constexpr const TFunction function_umulExtended_00E00E00E00E(
+constexpr const TFunction umulExtended_00E00E00E00E(
     BuiltInId::umulExtended_UInt1_UInt1_UInt1_UInt1,
     BuiltInName::umulExtended,
     TExtension::UNDEFINED,
@@ -6739,7 +6263,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpUmulExtended,
     false);
-constexpr const TFunction function_umulExtended_10E10E10E10E(
+constexpr const TFunction umulExtended_10E10E10E10E(
     BuiltInId::umulExtended_UInt2_UInt2_UInt2_UInt2,
     BuiltInName::umulExtended,
     TExtension::UNDEFINED,
@@ -6748,7 +6272,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpUmulExtended,
     false);
-constexpr const TFunction function_umulExtended_20E20E20E20E(
+constexpr const TFunction umulExtended_20E20E20E20E(
     BuiltInId::umulExtended_UInt3_UInt3_UInt3_UInt3,
     BuiltInName::umulExtended,
     TExtension::UNDEFINED,
@@ -6757,7 +6281,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpUmulExtended,
     false);
-constexpr const TFunction function_umulExtended_30E30E30E30E(
+constexpr const TFunction umulExtended_30E30E30E30E(
     BuiltInId::umulExtended_UInt4_UInt4_UInt4_UInt4,
     BuiltInName::umulExtended,
     TExtension::UNDEFINED,
@@ -6766,7 +6290,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpUmulExtended,
     false);
-constexpr const TFunction function_imulExtended_00D00D00D00D(
+constexpr const TFunction imulExtended_00D00D00D00D(
     BuiltInId::imulExtended_Int1_Int1_Int1_Int1,
     BuiltInName::imulExtended,
     TExtension::UNDEFINED,
@@ -6775,7 +6299,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpImulExtended,
     false);
-constexpr const TFunction function_imulExtended_10D10D10D10D(
+constexpr const TFunction imulExtended_10D10D10D10D(
     BuiltInId::imulExtended_Int2_Int2_Int2_Int2,
     BuiltInName::imulExtended,
     TExtension::UNDEFINED,
@@ -6784,7 +6308,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpImulExtended,
     false);
-constexpr const TFunction function_imulExtended_20D20D20D20D(
+constexpr const TFunction imulExtended_20D20D20D20D(
     BuiltInId::imulExtended_Int3_Int3_Int3_Int3,
     BuiltInName::imulExtended,
     TExtension::UNDEFINED,
@@ -6793,7 +6317,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpImulExtended,
     false);
-constexpr const TFunction function_imulExtended_30D30D30D30D(
+constexpr const TFunction imulExtended_30D30D30D30D(
     BuiltInId::imulExtended_Int4_Int4_Int4_Int4,
     BuiltInName::imulExtended,
     TExtension::UNDEFINED,
@@ -6802,7 +6326,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpImulExtended,
     false);
-constexpr const TFunction function_texture2D_00I10B(
+constexpr const TFunction texture2D_00I10B(
     BuiltInId::texture2D_Sampler2D1_Float2,
     BuiltInName::texture2D,
     TExtension::UNDEFINED,
@@ -6811,7 +6335,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture2DProj_00I20B(
+constexpr const TFunction texture2DProj_00I20B(
     BuiltInId::texture2DProj_Sampler2D1_Float3,
     BuiltInName::texture2DProj,
     TExtension::UNDEFINED,
@@ -6820,7 +6344,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture2DProj_00I30B(
+constexpr const TFunction texture2DProj_00I30B(
     BuiltInId::texture2DProj_Sampler2D1_Float4,
     BuiltInName::texture2DProj,
     TExtension::UNDEFINED,
@@ -6829,7 +6353,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureCube_00K20B(
+constexpr const TFunction textureCube_00K20B(
     BuiltInId::textureCube_SamplerCube1_Float3,
     BuiltInName::textureCube,
     TExtension::UNDEFINED,
@@ -6838,7 +6362,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture2D_00M10B(
+constexpr const TFunction texture2D_00M10B(
     BuiltInId::texture2D_SamplerExternalOES1_Float2,
     BuiltInName::texture2D,
     TExtension::UNDEFINED,
@@ -6847,7 +6371,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture2DProj_00M20B(
+constexpr const TFunction texture2DProj_00M20B(
     BuiltInId::texture2DProj_SamplerExternalOES1_Float3,
     BuiltInName::texture2DProj,
     TExtension::UNDEFINED,
@@ -6856,7 +6380,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture2DProj_00M30B(
+constexpr const TFunction texture2DProj_00M30B(
     BuiltInId::texture2DProj_SamplerExternalOES1_Float4,
     BuiltInName::texture2DProj,
     TExtension::UNDEFINED,
@@ -6865,7 +6389,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture2DRect_00O10B(
+constexpr const TFunction texture2DRect_00O10B(
     BuiltInId::texture2DRect_Sampler2DRect1_Float2,
     BuiltInName::texture2DRect,
     TExtension::ARB_texture_rectangle,
@@ -6874,7 +6398,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture2DRectProj_00O20B(
+constexpr const TFunction texture2DRectProj_00O20B(
     BuiltInId::texture2DRectProj_Sampler2DRect1_Float3,
     BuiltInName::texture2DRectProj,
     TExtension::ARB_texture_rectangle,
@@ -6883,7 +6407,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture2DRectProj_00O30B(
+constexpr const TFunction texture2DRectProj_00O30B(
     BuiltInId::texture2DRectProj_Sampler2DRect1_Float4,
     BuiltInName::texture2DRectProj,
     TExtension::ARB_texture_rectangle,
@@ -6892,16 +6416,15 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture_00O10B(
-    BuiltInId::texture_Sampler2DRect1_Float2,
-    BuiltInName::texture,
-    TExtension::ARB_texture_rectangle,
-    BuiltInParameters::p00O10B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_textureProj_00O20B(
+constexpr const TFunction texture_00O10B(BuiltInId::texture_Sampler2DRect1_Float2,
+                                         BuiltInName::texture,
+                                         TExtension::ARB_texture_rectangle,
+                                         BuiltInParameters::p00O10B,
+                                         2,
+                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction textureProj_00O20B(
     BuiltInId::textureProj_Sampler2DRect1_Float3,
     BuiltInName::textureProj,
     TExtension::ARB_texture_rectangle,
@@ -6910,7 +6433,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00O30B(
+constexpr const TFunction textureProj_00O30B(
     BuiltInId::textureProj_Sampler2DRect1_Float4,
     BuiltInName::textureProj,
     TExtension::ARB_texture_rectangle,
@@ -6919,7 +6442,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture2DGradEXT_00I10B10B10B(
+constexpr const TFunction texture2DGradEXT_00I10B10B10B(
     BuiltInId::texture2DGradEXT_Sampler2D1_Float2_Float2_Float2,
     BuiltInName::texture2DGradEXT,
     TExtension::EXT_shader_texture_lod,
@@ -6928,7 +6451,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture2DProjGradEXT_00I20B10B10B(
+constexpr const TFunction texture2DProjGradEXT_00I20B10B10B(
     BuiltInId::texture2DProjGradEXT_Sampler2D1_Float3_Float2_Float2,
     BuiltInName::texture2DProjGradEXT,
     TExtension::EXT_shader_texture_lod,
@@ -6937,7 +6460,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture2DProjGradEXT_00I30B10B10B(
+constexpr const TFunction texture2DProjGradEXT_00I30B10B10B(
     BuiltInId::texture2DProjGradEXT_Sampler2D1_Float4_Float2_Float2,
     BuiltInName::texture2DProjGradEXT,
     TExtension::EXT_shader_texture_lod,
@@ -6946,7 +6469,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureCubeGradEXT_00K20B20B20B(
+constexpr const TFunction textureCubeGradEXT_00K20B20B20B(
     BuiltInId::textureCubeGradEXT_SamplerCube1_Float3_Float3_Float3,
     BuiltInName::textureCubeGradEXT,
     TExtension::EXT_shader_texture_lod,
@@ -6955,7 +6478,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture2D_00I10B00B(
+constexpr const TFunction texture2D_00I10B00B(
     BuiltInId::texture2D_Sampler2D1_Float2_Float1,
     BuiltInName::texture2D,
     TExtension::UNDEFINED,
@@ -6964,7 +6487,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture2DProj_00I20B00B(
+constexpr const TFunction texture2DProj_00I20B00B(
     BuiltInId::texture2DProj_Sampler2D1_Float3_Float1,
     BuiltInName::texture2DProj,
     TExtension::UNDEFINED,
@@ -6973,7 +6496,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture2DProj_00I30B00B(
+constexpr const TFunction texture2DProj_00I30B00B(
     BuiltInId::texture2DProj_Sampler2D1_Float4_Float1,
     BuiltInName::texture2DProj,
     TExtension::UNDEFINED,
@@ -6982,7 +6505,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureCube_00K20B00B(
+constexpr const TFunction textureCube_00K20B00B(
     BuiltInId::textureCube_SamplerCube1_Float3_Float1,
     BuiltInName::textureCube,
     TExtension::UNDEFINED,
@@ -6991,115 +6514,103 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_dFdxExt_00B(
-    BuiltInId::dFdxExt_Float1,
-    BuiltInName::dFdxExt,
-    TExtension::OES_standard_derivatives,
-    BuiltInParameters::p00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpDFdx,
-    false);
-constexpr const TFunction function_dFdxExt_10B(
-    BuiltInId::dFdxExt_Float2,
-    BuiltInName::dFdxExt,
-    TExtension::OES_standard_derivatives,
-    BuiltInParameters::p10B20B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpDFdx,
-    false);
-constexpr const TFunction function_dFdxExt_20B(
-    BuiltInId::dFdxExt_Float3,
-    BuiltInName::dFdxExt,
-    TExtension::OES_standard_derivatives,
-    BuiltInParameters::p20B10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpDFdx,
-    false);
-constexpr const TFunction function_dFdxExt_30B(
-    BuiltInId::dFdxExt_Float4,
-    BuiltInName::dFdxExt,
-    TExtension::OES_standard_derivatives,
-    BuiltInParameters::p30B00B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpDFdx,
-    false);
-constexpr const TFunction function_dFdyExt_00B(
-    BuiltInId::dFdyExt_Float1,
-    BuiltInName::dFdyExt,
-    TExtension::OES_standard_derivatives,
-    BuiltInParameters::p00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpDFdy,
-    false);
-constexpr const TFunction function_dFdyExt_10B(
-    BuiltInId::dFdyExt_Float2,
-    BuiltInName::dFdyExt,
-    TExtension::OES_standard_derivatives,
-    BuiltInParameters::p10B20B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpDFdy,
-    false);
-constexpr const TFunction function_dFdyExt_20B(
-    BuiltInId::dFdyExt_Float3,
-    BuiltInName::dFdyExt,
-    TExtension::OES_standard_derivatives,
-    BuiltInParameters::p20B10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpDFdy,
-    false);
-constexpr const TFunction function_dFdyExt_30B(
-    BuiltInId::dFdyExt_Float4,
-    BuiltInName::dFdyExt,
-    TExtension::OES_standard_derivatives,
-    BuiltInParameters::p30B00B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpDFdy,
-    false);
-constexpr const TFunction function_fwidthExt_00B(
-    BuiltInId::fwidthExt_Float1,
-    BuiltInName::fwidthExt,
-    TExtension::OES_standard_derivatives,
-    BuiltInParameters::p00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpFwidth,
-    false);
-constexpr const TFunction function_fwidthExt_10B(
-    BuiltInId::fwidthExt_Float2,
-    BuiltInName::fwidthExt,
-    TExtension::OES_standard_derivatives,
-    BuiltInParameters::p10B20B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpFwidth,
-    false);
-constexpr const TFunction function_fwidthExt_20B(
-    BuiltInId::fwidthExt_Float3,
-    BuiltInName::fwidthExt,
-    TExtension::OES_standard_derivatives,
-    BuiltInParameters::p20B10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpFwidth,
-    false);
-constexpr const TFunction function_fwidthExt_30B(
-    BuiltInId::fwidthExt_Float4,
-    BuiltInName::fwidthExt,
-    TExtension::OES_standard_derivatives,
-    BuiltInParameters::p30B00B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpFwidth,
-    false);
-constexpr const TFunction function_texture2DLodEXT_00I10B00B(
+constexpr const TFunction dFdxExt_00B(BuiltInId::dFdxExt_Float1,
+                                      BuiltInName::dFdxExt,
+                                      TExtension::OES_standard_derivatives,
+                                      BuiltInParameters::p00B30B,
+                                      1,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                      EOpDFdx,
+                                      false);
+constexpr const TFunction dFdxExt_10B(BuiltInId::dFdxExt_Float2,
+                                      BuiltInName::dFdxExt,
+                                      TExtension::OES_standard_derivatives,
+                                      BuiltInParameters::p10B20B,
+                                      1,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                      EOpDFdx,
+                                      false);
+constexpr const TFunction dFdxExt_20B(BuiltInId::dFdxExt_Float3,
+                                      BuiltInName::dFdxExt,
+                                      TExtension::OES_standard_derivatives,
+                                      BuiltInParameters::p20B10B,
+                                      1,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                      EOpDFdx,
+                                      false);
+constexpr const TFunction dFdxExt_30B(BuiltInId::dFdxExt_Float4,
+                                      BuiltInName::dFdxExt,
+                                      TExtension::OES_standard_derivatives,
+                                      BuiltInParameters::p30B00B00B,
+                                      1,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                      EOpDFdx,
+                                      false);
+constexpr const TFunction dFdyExt_00B(BuiltInId::dFdyExt_Float1,
+                                      BuiltInName::dFdyExt,
+                                      TExtension::OES_standard_derivatives,
+                                      BuiltInParameters::p00B30B,
+                                      1,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                      EOpDFdy,
+                                      false);
+constexpr const TFunction dFdyExt_10B(BuiltInId::dFdyExt_Float2,
+                                      BuiltInName::dFdyExt,
+                                      TExtension::OES_standard_derivatives,
+                                      BuiltInParameters::p10B20B,
+                                      1,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                      EOpDFdy,
+                                      false);
+constexpr const TFunction dFdyExt_20B(BuiltInId::dFdyExt_Float3,
+                                      BuiltInName::dFdyExt,
+                                      TExtension::OES_standard_derivatives,
+                                      BuiltInParameters::p20B10B,
+                                      1,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                      EOpDFdy,
+                                      false);
+constexpr const TFunction dFdyExt_30B(BuiltInId::dFdyExt_Float4,
+                                      BuiltInName::dFdyExt,
+                                      TExtension::OES_standard_derivatives,
+                                      BuiltInParameters::p30B00B00B,
+                                      1,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                      EOpDFdy,
+                                      false);
+constexpr const TFunction fwidthExt_00B(BuiltInId::fwidthExt_Float1,
+                                        BuiltInName::fwidthExt,
+                                        TExtension::OES_standard_derivatives,
+                                        BuiltInParameters::p00B30B,
+                                        1,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                        EOpFwidth,
+                                        false);
+constexpr const TFunction fwidthExt_10B(BuiltInId::fwidthExt_Float2,
+                                        BuiltInName::fwidthExt,
+                                        TExtension::OES_standard_derivatives,
+                                        BuiltInParameters::p10B20B,
+                                        1,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                        EOpFwidth,
+                                        false);
+constexpr const TFunction fwidthExt_20B(BuiltInId::fwidthExt_Float3,
+                                        BuiltInName::fwidthExt,
+                                        TExtension::OES_standard_derivatives,
+                                        BuiltInParameters::p20B10B,
+                                        1,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                        EOpFwidth,
+                                        false);
+constexpr const TFunction fwidthExt_30B(BuiltInId::fwidthExt_Float4,
+                                        BuiltInName::fwidthExt,
+                                        TExtension::OES_standard_derivatives,
+                                        BuiltInParameters::p30B00B00B,
+                                        1,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                        EOpFwidth,
+                                        false);
+constexpr const TFunction texture2DLodEXT_00I10B00B(
     BuiltInId::texture2DLodEXT_Sampler2D1_Float2_Float1,
     BuiltInName::texture2DLodEXT,
     TExtension::EXT_shader_texture_lod,
@@ -7108,7 +6619,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture2DProjLodEXT_00I20B00B(
+constexpr const TFunction texture2DProjLodEXT_00I20B00B(
     BuiltInId::texture2DProjLodEXT_Sampler2D1_Float3_Float1,
     BuiltInName::texture2DProjLodEXT,
     TExtension::EXT_shader_texture_lod,
@@ -7117,7 +6628,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture2DProjLodEXT_00I30B00B(
+constexpr const TFunction texture2DProjLodEXT_00I30B00B(
     BuiltInId::texture2DProjLodEXT_Sampler2D1_Float4_Float1,
     BuiltInName::texture2DProjLodEXT,
     TExtension::EXT_shader_texture_lod,
@@ -7126,7 +6637,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureCubeLodEXT_00K20B00B(
+constexpr const TFunction textureCubeLodEXT_00K20B00B(
     BuiltInId::textureCubeLodEXT_SamplerCube1_Float3_Float1,
     BuiltInName::textureCubeLodEXT,
     TExtension::EXT_shader_texture_lod,
@@ -7135,7 +6646,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture3D_00J20B(
+constexpr const TFunction texture3D_00J20B(
     BuiltInId::texture3D_Sampler3D1_Float3,
     BuiltInName::texture3D,
     TExtension::OES_texture_3D,
@@ -7144,7 +6655,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture3DProj_00J30B(
+constexpr const TFunction texture3DProj_00J30B(
     BuiltInId::texture3DProj_Sampler3D1_Float4,
     BuiltInName::texture3DProj,
     TExtension::OES_texture_3D,
@@ -7153,7 +6664,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture3D_00J20B00B(
+constexpr const TFunction texture3D_00J20B00B(
     BuiltInId::texture3D_Sampler3D1_Float3_Float1,
     BuiltInName::texture3D,
     TExtension::OES_texture_3D,
@@ -7162,7 +6673,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture3DProj_00J30B00B(
+constexpr const TFunction texture3DProj_00J30B00B(
     BuiltInId::texture3DProj_Sampler3D1_Float4_Float1,
     BuiltInName::texture3DProj,
     TExtension::OES_texture_3D,
@@ -7171,7 +6682,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture3DLod_00J20B00B(
+constexpr const TFunction texture3DLod_00J20B00B(
     BuiltInId::texture3DLod_Sampler3D1_Float3_Float1,
     BuiltInName::texture3DLod,
     TExtension::OES_texture_3D,
@@ -7180,7 +6691,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture3DProjLod_00J30B00B(
+constexpr const TFunction texture3DProjLod_00J30B00B(
     BuiltInId::texture3DProjLod_Sampler3D1_Float4_Float1,
     BuiltInName::texture3DProjLod,
     TExtension::OES_texture_3D,
@@ -7189,7 +6700,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture2DLod_00I10B00B(
+constexpr const TFunction texture2DLod_00I10B00B(
     BuiltInId::texture2DLod_Sampler2D1_Float2_Float1,
     BuiltInName::texture2DLod,
     TExtension::UNDEFINED,
@@ -7198,7 +6709,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture2DProjLod_00I20B00B(
+constexpr const TFunction texture2DProjLod_00I20B00B(
     BuiltInId::texture2DProjLod_Sampler2D1_Float3_Float1,
     BuiltInName::texture2DProjLod,
     TExtension::UNDEFINED,
@@ -7207,7 +6718,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture2DProjLod_00I30B00B(
+constexpr const TFunction texture2DProjLod_00I30B00B(
     BuiltInId::texture2DProjLod_Sampler2D1_Float4_Float1,
     BuiltInName::texture2DProjLod,
     TExtension::UNDEFINED,
@@ -7216,7 +6727,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureCubeLod_00K20B00B(
+constexpr const TFunction textureCubeLod_00K20B00B(
     BuiltInId::textureCubeLod_SamplerCube1_Float3_Float1,
     BuiltInName::textureCubeLod,
     TExtension::UNDEFINED,
@@ -7225,142 +6736,127 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture_00I10B(
-    BuiltInId::texture_Sampler2D1_Float2,
-    BuiltInName::texture,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00I10B00D,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_texture_00R10B(
-    BuiltInId::texture_ISampler2D1_Float2,
-    BuiltInName::texture,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00R10B00B10D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_texture_00X10B(
-    BuiltInId::texture_USampler2D1_Float2,
-    BuiltInName::texture,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00X10B10B10B10D,
-    2,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_texture_00J20B(
-    BuiltInId::texture_Sampler3D1_Float3,
-    BuiltInName::texture,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00J20B20D00B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_texture_00S20B(
-    BuiltInId::texture_ISampler3D1_Float3,
-    BuiltInName::texture,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00S20B20D00B,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_texture_00Y20B(
-    BuiltInId::texture_USampler3D1_Float3,
-    BuiltInName::texture,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00Y20B20B20B20D,
-    2,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_texture_00K20B(
-    BuiltInId::texture_SamplerCube1_Float3,
-    BuiltInName::texture,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00K20B20B20B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_texture_00T20B(
-    BuiltInId::texture_ISamplerCube1_Float3,
-    BuiltInName::texture,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00T20B00D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_texture_00Z20B(
-    BuiltInId::texture_USamplerCube1_Float3,
-    BuiltInName::texture,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00Z20B00D,
-    2,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_texture_00L20B(
-    BuiltInId::texture_Sampler2DArray1_Float3,
-    BuiltInName::texture,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00L20B10D00D,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_texture_00U20B(
-    BuiltInId::texture_ISampler2DArray1_Float3,
-    BuiltInName::texture,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00U20B10D00D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_texture_00a20B(
-    BuiltInId::texture_USampler2DArray1_Float3,
-    BuiltInName::texture,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00a20B10B10B10D,
-    2,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_texture_00d20B(
-    BuiltInId::texture_Sampler2DShadow1_Float3,
-    BuiltInName::texture,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00d20B00B10D,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_texture_00e30B(
-    BuiltInId::texture_SamplerCubeShadow1_Float4,
-    BuiltInName::texture,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00e30B00B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_texture_00f30B(
-    BuiltInId::texture_Sampler2DArrayShadow1_Float4,
-    BuiltInName::texture,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00f30B10B10B10D,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_textureProj_00I20B(
+constexpr const TFunction texture_00I10B(BuiltInId::texture_Sampler2D1_Float2,
+                                         BuiltInName::texture,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p00I10B00D,
+                                         2,
+                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction texture_00R10B(BuiltInId::texture_ISampler2D1_Float2,
+                                         BuiltInName::texture,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p00R10B00B10D,
+                                         2,
+                                         StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction texture_00X10B(BuiltInId::texture_USampler2D1_Float2,
+                                         BuiltInName::texture,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p00X10B10B10B10D,
+                                         2,
+                                         StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction texture_00J20B(BuiltInId::texture_Sampler3D1_Float3,
+                                         BuiltInName::texture,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p00J20B20D00B,
+                                         2,
+                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction texture_00S20B(BuiltInId::texture_ISampler3D1_Float3,
+                                         BuiltInName::texture,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p00S20B20D00B,
+                                         2,
+                                         StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction texture_00Y20B(BuiltInId::texture_USampler3D1_Float3,
+                                         BuiltInName::texture,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p00Y20B20B20B20D,
+                                         2,
+                                         StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction texture_00K20B(BuiltInId::texture_SamplerCube1_Float3,
+                                         BuiltInName::texture,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p00K20B20B20B,
+                                         2,
+                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction texture_00T20B(BuiltInId::texture_ISamplerCube1_Float3,
+                                         BuiltInName::texture,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p00T20B00D,
+                                         2,
+                                         StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction texture_00Z20B(BuiltInId::texture_USamplerCube1_Float3,
+                                         BuiltInName::texture,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p00Z20B00D,
+                                         2,
+                                         StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction texture_00L20B(BuiltInId::texture_Sampler2DArray1_Float3,
+                                         BuiltInName::texture,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p00L20B10D00D,
+                                         2,
+                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction texture_00U20B(BuiltInId::texture_ISampler2DArray1_Float3,
+                                         BuiltInName::texture,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p00U20B10D00D,
+                                         2,
+                                         StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction texture_00a20B(BuiltInId::texture_USampler2DArray1_Float3,
+                                         BuiltInName::texture,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p00a20B10B10B10D,
+                                         2,
+                                         StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction texture_00d20B(BuiltInId::texture_Sampler2DShadow1_Float3,
+                                         BuiltInName::texture,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p00d20B00B10D,
+                                         2,
+                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction texture_00e30B(BuiltInId::texture_SamplerCubeShadow1_Float4,
+                                         BuiltInName::texture,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p00e30B00B,
+                                         2,
+                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction texture_00f30B(BuiltInId::texture_Sampler2DArrayShadow1_Float4,
+                                         BuiltInName::texture,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p00f30B10B10B10D,
+                                         2,
+                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction textureProj_00I20B(
     BuiltInId::textureProj_Sampler2D1_Float3,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -7369,7 +6865,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00R20B(
+constexpr const TFunction textureProj_00R20B(
     BuiltInId::textureProj_ISampler2D1_Float3,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -7378,7 +6874,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00X20B(
+constexpr const TFunction textureProj_00X20B(
     BuiltInId::textureProj_USampler2D1_Float3,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -7387,7 +6883,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00I30B(
+constexpr const TFunction textureProj_00I30B(
     BuiltInId::textureProj_Sampler2D1_Float4,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -7396,7 +6892,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00R30B(
+constexpr const TFunction textureProj_00R30B(
     BuiltInId::textureProj_ISampler2D1_Float4,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -7405,7 +6901,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00X30B(
+constexpr const TFunction textureProj_00X30B(
     BuiltInId::textureProj_USampler2D1_Float4,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -7414,7 +6910,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00J30B(
+constexpr const TFunction textureProj_00J30B(
     BuiltInId::textureProj_Sampler3D1_Float4,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -7423,7 +6919,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00S30B(
+constexpr const TFunction textureProj_00S30B(
     BuiltInId::textureProj_ISampler3D1_Float4,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -7432,7 +6928,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00Y30B(
+constexpr const TFunction textureProj_00Y30B(
     BuiltInId::textureProj_USampler3D1_Float4,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -7441,7 +6937,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00d30B(
+constexpr const TFunction textureProj_00d30B(
     BuiltInId::textureProj_Sampler2DShadow1_Float4,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -7450,7 +6946,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLod_00I10B00B(
+constexpr const TFunction textureLod_00I10B00B(
     BuiltInId::textureLod_Sampler2D1_Float2_Float1,
     BuiltInName::textureLod,
     TExtension::UNDEFINED,
@@ -7459,7 +6955,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLod_00R10B00B(
+constexpr const TFunction textureLod_00R10B00B(
     BuiltInId::textureLod_ISampler2D1_Float2_Float1,
     BuiltInName::textureLod,
     TExtension::UNDEFINED,
@@ -7468,7 +6964,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLod_00X10B00B(
+constexpr const TFunction textureLod_00X10B00B(
     BuiltInId::textureLod_USampler2D1_Float2_Float1,
     BuiltInName::textureLod,
     TExtension::UNDEFINED,
@@ -7477,7 +6973,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLod_00J20B00B(
+constexpr const TFunction textureLod_00J20B00B(
     BuiltInId::textureLod_Sampler3D1_Float3_Float1,
     BuiltInName::textureLod,
     TExtension::UNDEFINED,
@@ -7486,7 +6982,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLod_00S20B00B(
+constexpr const TFunction textureLod_00S20B00B(
     BuiltInId::textureLod_ISampler3D1_Float3_Float1,
     BuiltInName::textureLod,
     TExtension::UNDEFINED,
@@ -7495,7 +6991,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLod_00Y20B00B(
+constexpr const TFunction textureLod_00Y20B00B(
     BuiltInId::textureLod_USampler3D1_Float3_Float1,
     BuiltInName::textureLod,
     TExtension::UNDEFINED,
@@ -7504,7 +7000,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLod_00K20B00B(
+constexpr const TFunction textureLod_00K20B00B(
     BuiltInId::textureLod_SamplerCube1_Float3_Float1,
     BuiltInName::textureLod,
     TExtension::UNDEFINED,
@@ -7513,7 +7009,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLod_00T20B00B(
+constexpr const TFunction textureLod_00T20B00B(
     BuiltInId::textureLod_ISamplerCube1_Float3_Float1,
     BuiltInName::textureLod,
     TExtension::UNDEFINED,
@@ -7522,7 +7018,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLod_00Z20B00B(
+constexpr const TFunction textureLod_00Z20B00B(
     BuiltInId::textureLod_USamplerCube1_Float3_Float1,
     BuiltInName::textureLod,
     TExtension::UNDEFINED,
@@ -7531,7 +7027,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLod_00L20B00B(
+constexpr const TFunction textureLod_00L20B00B(
     BuiltInId::textureLod_Sampler2DArray1_Float3_Float1,
     BuiltInName::textureLod,
     TExtension::UNDEFINED,
@@ -7540,7 +7036,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLod_00U20B00B(
+constexpr const TFunction textureLod_00U20B00B(
     BuiltInId::textureLod_ISampler2DArray1_Float3_Float1,
     BuiltInName::textureLod,
     TExtension::UNDEFINED,
@@ -7549,7 +7045,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLod_00a20B00B(
+constexpr const TFunction textureLod_00a20B00B(
     BuiltInId::textureLod_USampler2DArray1_Float3_Float1,
     BuiltInName::textureLod,
     TExtension::UNDEFINED,
@@ -7558,7 +7054,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLod_00d20B00B(
+constexpr const TFunction textureLod_00d20B00B(
     BuiltInId::textureLod_Sampler2DShadow1_Float3_Float1,
     BuiltInName::textureLod,
     TExtension::UNDEFINED,
@@ -7567,7 +7063,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSize_00I00D(
+constexpr const TFunction textureSize_00I00D(
     BuiltInId::textureSize_Sampler2D1_Int1,
     BuiltInName::textureSize,
     TExtension::UNDEFINED,
@@ -7576,7 +7072,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSize_00R00D(
+constexpr const TFunction textureSize_00R00D(
     BuiltInId::textureSize_ISampler2D1_Int1,
     BuiltInName::textureSize,
     TExtension::UNDEFINED,
@@ -7585,7 +7081,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSize_00X00D(
+constexpr const TFunction textureSize_00X00D(
     BuiltInId::textureSize_USampler2D1_Int1,
     BuiltInName::textureSize,
     TExtension::UNDEFINED,
@@ -7594,7 +7090,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSize_00J00D(
+constexpr const TFunction textureSize_00J00D(
     BuiltInId::textureSize_Sampler3D1_Int1,
     BuiltInName::textureSize,
     TExtension::UNDEFINED,
@@ -7603,7 +7099,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSize_00S00D(
+constexpr const TFunction textureSize_00S00D(
     BuiltInId::textureSize_ISampler3D1_Int1,
     BuiltInName::textureSize,
     TExtension::UNDEFINED,
@@ -7612,7 +7108,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSize_00Y00D(
+constexpr const TFunction textureSize_00Y00D(
     BuiltInId::textureSize_USampler3D1_Int1,
     BuiltInName::textureSize,
     TExtension::UNDEFINED,
@@ -7621,7 +7117,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSize_00K00D(
+constexpr const TFunction textureSize_00K00D(
     BuiltInId::textureSize_SamplerCube1_Int1,
     BuiltInName::textureSize,
     TExtension::UNDEFINED,
@@ -7630,7 +7126,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSize_00T00D(
+constexpr const TFunction textureSize_00T00D(
     BuiltInId::textureSize_ISamplerCube1_Int1,
     BuiltInName::textureSize,
     TExtension::UNDEFINED,
@@ -7639,7 +7135,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSize_00Z00D(
+constexpr const TFunction textureSize_00Z00D(
     BuiltInId::textureSize_USamplerCube1_Int1,
     BuiltInName::textureSize,
     TExtension::UNDEFINED,
@@ -7648,7 +7144,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSize_00L00D(
+constexpr const TFunction textureSize_00L00D(
     BuiltInId::textureSize_Sampler2DArray1_Int1,
     BuiltInName::textureSize,
     TExtension::UNDEFINED,
@@ -7657,7 +7153,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSize_00U00D(
+constexpr const TFunction textureSize_00U00D(
     BuiltInId::textureSize_ISampler2DArray1_Int1,
     BuiltInName::textureSize,
     TExtension::UNDEFINED,
@@ -7666,7 +7162,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSize_00a00D(
+constexpr const TFunction textureSize_00a00D(
     BuiltInId::textureSize_USampler2DArray1_Int1,
     BuiltInName::textureSize,
     TExtension::UNDEFINED,
@@ -7675,7 +7171,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSize_00d00D(
+constexpr const TFunction textureSize_00d00D(
     BuiltInId::textureSize_Sampler2DShadow1_Int1,
     BuiltInName::textureSize,
     TExtension::UNDEFINED,
@@ -7684,7 +7180,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSize_00e00D(
+constexpr const TFunction textureSize_00e00D(
     BuiltInId::textureSize_SamplerCubeShadow1_Int1,
     BuiltInName::textureSize,
     TExtension::UNDEFINED,
@@ -7693,7 +7189,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSize_00f00D(
+constexpr const TFunction textureSize_00f00D(
     BuiltInId::textureSize_Sampler2DArrayShadow1_Int1,
     BuiltInName::textureSize,
     TExtension::UNDEFINED,
@@ -7702,7 +7198,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLod_00I20B00B(
+constexpr const TFunction textureProjLod_00I20B00B(
     BuiltInId::textureProjLod_Sampler2D1_Float3_Float1,
     BuiltInName::textureProjLod,
     TExtension::UNDEFINED,
@@ -7711,7 +7207,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLod_00R20B00B(
+constexpr const TFunction textureProjLod_00R20B00B(
     BuiltInId::textureProjLod_ISampler2D1_Float3_Float1,
     BuiltInName::textureProjLod,
     TExtension::UNDEFINED,
@@ -7720,7 +7216,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLod_00X20B00B(
+constexpr const TFunction textureProjLod_00X20B00B(
     BuiltInId::textureProjLod_USampler2D1_Float3_Float1,
     BuiltInName::textureProjLod,
     TExtension::UNDEFINED,
@@ -7729,7 +7225,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLod_00I30B00B(
+constexpr const TFunction textureProjLod_00I30B00B(
     BuiltInId::textureProjLod_Sampler2D1_Float4_Float1,
     BuiltInName::textureProjLod,
     TExtension::UNDEFINED,
@@ -7738,7 +7234,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLod_00R30B00B(
+constexpr const TFunction textureProjLod_00R30B00B(
     BuiltInId::textureProjLod_ISampler2D1_Float4_Float1,
     BuiltInName::textureProjLod,
     TExtension::UNDEFINED,
@@ -7747,7 +7243,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLod_00X30B00B(
+constexpr const TFunction textureProjLod_00X30B00B(
     BuiltInId::textureProjLod_USampler2D1_Float4_Float1,
     BuiltInName::textureProjLod,
     TExtension::UNDEFINED,
@@ -7756,7 +7252,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLod_00J30B00B(
+constexpr const TFunction textureProjLod_00J30B00B(
     BuiltInId::textureProjLod_Sampler3D1_Float4_Float1,
     BuiltInName::textureProjLod,
     TExtension::UNDEFINED,
@@ -7765,7 +7261,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLod_00S30B00B(
+constexpr const TFunction textureProjLod_00S30B00B(
     BuiltInId::textureProjLod_ISampler3D1_Float4_Float1,
     BuiltInName::textureProjLod,
     TExtension::UNDEFINED,
@@ -7774,7 +7270,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLod_00Y30B00B(
+constexpr const TFunction textureProjLod_00Y30B00B(
     BuiltInId::textureProjLod_USampler3D1_Float4_Float1,
     BuiltInName::textureProjLod,
     TExtension::UNDEFINED,
@@ -7783,7 +7279,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLod_00d30B00B(
+constexpr const TFunction textureProjLod_00d30B00B(
     BuiltInId::textureProjLod_Sampler2DShadow1_Float4_Float1,
     BuiltInName::textureProjLod,
     TExtension::UNDEFINED,
@@ -7792,7 +7288,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetch_00I10D00D(
+constexpr const TFunction texelFetch_00I10D00D(
     BuiltInId::texelFetch_Sampler2D1_Int2_Int1,
     BuiltInName::texelFetch,
     TExtension::UNDEFINED,
@@ -7801,7 +7297,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetch_00R10D00D(
+constexpr const TFunction texelFetch_00R10D00D(
     BuiltInId::texelFetch_ISampler2D1_Int2_Int1,
     BuiltInName::texelFetch,
     TExtension::UNDEFINED,
@@ -7810,7 +7306,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetch_00X10D00D(
+constexpr const TFunction texelFetch_00X10D00D(
     BuiltInId::texelFetch_USampler2D1_Int2_Int1,
     BuiltInName::texelFetch,
     TExtension::UNDEFINED,
@@ -7819,7 +7315,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetch_00J20D00D(
+constexpr const TFunction texelFetch_00J20D00D(
     BuiltInId::texelFetch_Sampler3D1_Int3_Int1,
     BuiltInName::texelFetch,
     TExtension::UNDEFINED,
@@ -7828,7 +7324,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetch_00S20D00D(
+constexpr const TFunction texelFetch_00S20D00D(
     BuiltInId::texelFetch_ISampler3D1_Int3_Int1,
     BuiltInName::texelFetch,
     TExtension::UNDEFINED,
@@ -7837,7 +7333,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetch_00Y20D00D(
+constexpr const TFunction texelFetch_00Y20D00D(
     BuiltInId::texelFetch_USampler3D1_Int3_Int1,
     BuiltInName::texelFetch,
     TExtension::UNDEFINED,
@@ -7846,7 +7342,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetch_00L20D00D(
+constexpr const TFunction texelFetch_00L20D00D(
     BuiltInId::texelFetch_Sampler2DArray1_Int3_Int1,
     BuiltInName::texelFetch,
     TExtension::UNDEFINED,
@@ -7855,7 +7351,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetch_00U20D00D(
+constexpr const TFunction texelFetch_00U20D00D(
     BuiltInId::texelFetch_ISampler2DArray1_Int3_Int1,
     BuiltInName::texelFetch,
     TExtension::UNDEFINED,
@@ -7864,7 +7360,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetch_00a20D00D(
+constexpr const TFunction texelFetch_00a20D00D(
     BuiltInId::texelFetch_USampler2DArray1_Int3_Int1,
     BuiltInName::texelFetch,
     TExtension::UNDEFINED,
@@ -7873,7 +7369,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGrad_00I10B10B10B(
+constexpr const TFunction textureGrad_00I10B10B10B(
     BuiltInId::textureGrad_Sampler2D1_Float2_Float2_Float2,
     BuiltInName::textureGrad,
     TExtension::UNDEFINED,
@@ -7882,7 +7378,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGrad_00R10B10B10B(
+constexpr const TFunction textureGrad_00R10B10B10B(
     BuiltInId::textureGrad_ISampler2D1_Float2_Float2_Float2,
     BuiltInName::textureGrad,
     TExtension::UNDEFINED,
@@ -7891,7 +7387,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGrad_00X10B10B10B(
+constexpr const TFunction textureGrad_00X10B10B10B(
     BuiltInId::textureGrad_USampler2D1_Float2_Float2_Float2,
     BuiltInName::textureGrad,
     TExtension::UNDEFINED,
@@ -7900,7 +7396,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGrad_00J20B20B20B(
+constexpr const TFunction textureGrad_00J20B20B20B(
     BuiltInId::textureGrad_Sampler3D1_Float3_Float3_Float3,
     BuiltInName::textureGrad,
     TExtension::UNDEFINED,
@@ -7909,7 +7405,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGrad_00S20B20B20B(
+constexpr const TFunction textureGrad_00S20B20B20B(
     BuiltInId::textureGrad_ISampler3D1_Float3_Float3_Float3,
     BuiltInName::textureGrad,
     TExtension::UNDEFINED,
@@ -7918,7 +7414,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGrad_00Y20B20B20B(
+constexpr const TFunction textureGrad_00Y20B20B20B(
     BuiltInId::textureGrad_USampler3D1_Float3_Float3_Float3,
     BuiltInName::textureGrad,
     TExtension::UNDEFINED,
@@ -7927,7 +7423,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGrad_00K20B20B20B(
+constexpr const TFunction textureGrad_00K20B20B20B(
     BuiltInId::textureGrad_SamplerCube1_Float3_Float3_Float3,
     BuiltInName::textureGrad,
     TExtension::UNDEFINED,
@@ -7936,7 +7432,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGrad_00T20B20B20B(
+constexpr const TFunction textureGrad_00T20B20B20B(
     BuiltInId::textureGrad_ISamplerCube1_Float3_Float3_Float3,
     BuiltInName::textureGrad,
     TExtension::UNDEFINED,
@@ -7945,7 +7441,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGrad_00Z20B20B20B(
+constexpr const TFunction textureGrad_00Z20B20B20B(
     BuiltInId::textureGrad_USamplerCube1_Float3_Float3_Float3,
     BuiltInName::textureGrad,
     TExtension::UNDEFINED,
@@ -7954,7 +7450,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGrad_00d20B10B10B(
+constexpr const TFunction textureGrad_00d20B10B10B(
     BuiltInId::textureGrad_Sampler2DShadow1_Float3_Float2_Float2,
     BuiltInName::textureGrad,
     TExtension::UNDEFINED,
@@ -7963,7 +7459,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGrad_00e30B20B20B(
+constexpr const TFunction textureGrad_00e30B20B20B(
     BuiltInId::textureGrad_SamplerCubeShadow1_Float4_Float3_Float3,
     BuiltInName::textureGrad,
     TExtension::UNDEFINED,
@@ -7972,7 +7468,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGrad_00L20B10B10B(
+constexpr const TFunction textureGrad_00L20B10B10B(
     BuiltInId::textureGrad_Sampler2DArray1_Float3_Float2_Float2,
     BuiltInName::textureGrad,
     TExtension::UNDEFINED,
@@ -7981,7 +7477,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGrad_00U20B10B10B(
+constexpr const TFunction textureGrad_00U20B10B10B(
     BuiltInId::textureGrad_ISampler2DArray1_Float3_Float2_Float2,
     BuiltInName::textureGrad,
     TExtension::UNDEFINED,
@@ -7990,7 +7486,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGrad_00a20B10B10B(
+constexpr const TFunction textureGrad_00a20B10B10B(
     BuiltInId::textureGrad_USampler2DArray1_Float3_Float2_Float2,
     BuiltInName::textureGrad,
     TExtension::UNDEFINED,
@@ -7999,7 +7495,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGrad_00f30B10B10B(
+constexpr const TFunction textureGrad_00f30B10B10B(
     BuiltInId::textureGrad_Sampler2DArrayShadow1_Float4_Float2_Float2,
     BuiltInName::textureGrad,
     TExtension::UNDEFINED,
@@ -8008,7 +7504,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGrad_00I20B10B10B(
+constexpr const TFunction textureProjGrad_00I20B10B10B(
     BuiltInId::textureProjGrad_Sampler2D1_Float3_Float2_Float2,
     BuiltInName::textureProjGrad,
     TExtension::UNDEFINED,
@@ -8017,7 +7513,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGrad_00R20B10B10B(
+constexpr const TFunction textureProjGrad_00R20B10B10B(
     BuiltInId::textureProjGrad_ISampler2D1_Float3_Float2_Float2,
     BuiltInName::textureProjGrad,
     TExtension::UNDEFINED,
@@ -8026,7 +7522,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGrad_00X20B10B10B(
+constexpr const TFunction textureProjGrad_00X20B10B10B(
     BuiltInId::textureProjGrad_USampler2D1_Float3_Float2_Float2,
     BuiltInName::textureProjGrad,
     TExtension::UNDEFINED,
@@ -8035,7 +7531,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGrad_00I30B10B10B(
+constexpr const TFunction textureProjGrad_00I30B10B10B(
     BuiltInId::textureProjGrad_Sampler2D1_Float4_Float2_Float2,
     BuiltInName::textureProjGrad,
     TExtension::UNDEFINED,
@@ -8044,7 +7540,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGrad_00R30B10B10B(
+constexpr const TFunction textureProjGrad_00R30B10B10B(
     BuiltInId::textureProjGrad_ISampler2D1_Float4_Float2_Float2,
     BuiltInName::textureProjGrad,
     TExtension::UNDEFINED,
@@ -8053,7 +7549,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGrad_00X30B10B10B(
+constexpr const TFunction textureProjGrad_00X30B10B10B(
     BuiltInId::textureProjGrad_USampler2D1_Float4_Float2_Float2,
     BuiltInName::textureProjGrad,
     TExtension::UNDEFINED,
@@ -8062,7 +7558,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGrad_00J30B20B20B(
+constexpr const TFunction textureProjGrad_00J30B20B20B(
     BuiltInId::textureProjGrad_Sampler3D1_Float4_Float3_Float3,
     BuiltInName::textureProjGrad,
     TExtension::UNDEFINED,
@@ -8071,7 +7567,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGrad_00S30B20B20B(
+constexpr const TFunction textureProjGrad_00S30B20B20B(
     BuiltInId::textureProjGrad_ISampler3D1_Float4_Float3_Float3,
     BuiltInName::textureProjGrad,
     TExtension::UNDEFINED,
@@ -8080,7 +7576,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGrad_00Y30B20B20B(
+constexpr const TFunction textureProjGrad_00Y30B20B20B(
     BuiltInId::textureProjGrad_USampler3D1_Float4_Float3_Float3,
     BuiltInName::textureProjGrad,
     TExtension::UNDEFINED,
@@ -8089,7 +7585,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGrad_00d30B10B10B(
+constexpr const TFunction textureProjGrad_00d30B10B10B(
     BuiltInId::textureProjGrad_Sampler2DShadow1_Float4_Float2_Float2,
     BuiltInName::textureProjGrad,
     TExtension::UNDEFINED,
@@ -8098,34 +7594,31 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSize_00P(
-    BuiltInId::textureSize_Sampler2DMS1,
-    BuiltInName::textureSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00P10D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_textureSize_00V(
-    BuiltInId::textureSize_ISampler2DMS1,
-    BuiltInName::textureSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00V10D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_textureSize_00b(
-    BuiltInId::textureSize_USampler2DMS1,
-    BuiltInName::textureSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00b10D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_textureSizeExt_00P(
+constexpr const TFunction textureSize_00P(BuiltInId::textureSize_Sampler2DMS1,
+                                          BuiltInName::textureSize,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p00P10D00D,
+                                          1,
+                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                          EOpCallBuiltInFunction,
+                                          false);
+constexpr const TFunction textureSize_00V(BuiltInId::textureSize_ISampler2DMS1,
+                                          BuiltInName::textureSize,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p00V10D00D,
+                                          1,
+                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                          EOpCallBuiltInFunction,
+                                          false);
+constexpr const TFunction textureSize_00b(BuiltInId::textureSize_USampler2DMS1,
+                                          BuiltInName::textureSize,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p00b10D00D,
+                                          1,
+                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                          EOpCallBuiltInFunction,
+                                          false);
+constexpr const TFunction textureSizeExt_00P(
     BuiltInId::textureSizeExt_Sampler2DMS1,
     BuiltInName::textureSizeExt,
     TExtension::ANGLE_texture_multisample,
@@ -8134,7 +7627,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSizeExt_00V(
+constexpr const TFunction textureSizeExt_00V(
     BuiltInId::textureSizeExt_ISampler2DMS1,
     BuiltInName::textureSizeExt,
     TExtension::ANGLE_texture_multisample,
@@ -8143,7 +7636,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSizeExt_00b(
+constexpr const TFunction textureSizeExt_00b(
     BuiltInId::textureSizeExt_USampler2DMS1,
     BuiltInName::textureSizeExt,
     TExtension::ANGLE_texture_multisample,
@@ -8152,7 +7645,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSizeExt_00Q(
+constexpr const TFunction textureSizeExt_00Q(
     BuiltInId::textureSizeExt_Sampler2DMSArray1,
     BuiltInName::textureSizeExt,
     TExtension::OES_texture_storage_multisample_2d_array,
@@ -8161,7 +7654,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSizeExt_00W(
+constexpr const TFunction textureSizeExt_00W(
     BuiltInId::textureSizeExt_ISampler2DMSArray1,
     BuiltInName::textureSizeExt,
     TExtension::OES_texture_storage_multisample_2d_array,
@@ -8170,7 +7663,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSizeExt_00c(
+constexpr const TFunction textureSizeExt_00c(
     BuiltInId::textureSizeExt_USampler2DMSArray1,
     BuiltInName::textureSizeExt,
     TExtension::OES_texture_storage_multisample_2d_array,
@@ -8179,7 +7672,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetch_00P10D00D(
+constexpr const TFunction texelFetch_00P10D00D(
     BuiltInId::texelFetch_Sampler2DMS1_Int2_Int1,
     BuiltInName::texelFetch,
     TExtension::UNDEFINED,
@@ -8188,7 +7681,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetch_00V10D00D(
+constexpr const TFunction texelFetch_00V10D00D(
     BuiltInId::texelFetch_ISampler2DMS1_Int2_Int1,
     BuiltInName::texelFetch,
     TExtension::UNDEFINED,
@@ -8197,7 +7690,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetch_00b10D00D(
+constexpr const TFunction texelFetch_00b10D00D(
     BuiltInId::texelFetch_USampler2DMS1_Int2_Int1,
     BuiltInName::texelFetch,
     TExtension::UNDEFINED,
@@ -8206,7 +7699,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetchExt_00P10D00D(
+constexpr const TFunction texelFetchExt_00P10D00D(
     BuiltInId::texelFetchExt_Sampler2DMS1_Int2_Int1,
     BuiltInName::texelFetchExt,
     TExtension::ANGLE_texture_multisample,
@@ -8215,7 +7708,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetchExt_00V10D00D(
+constexpr const TFunction texelFetchExt_00V10D00D(
     BuiltInId::texelFetchExt_ISampler2DMS1_Int2_Int1,
     BuiltInName::texelFetchExt,
     TExtension::ANGLE_texture_multisample,
@@ -8224,7 +7717,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetchExt_00b10D00D(
+constexpr const TFunction texelFetchExt_00b10D00D(
     BuiltInId::texelFetchExt_USampler2DMS1_Int2_Int1,
     BuiltInName::texelFetchExt,
     TExtension::ANGLE_texture_multisample,
@@ -8233,7 +7726,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetchExt_00Q20D00D(
+constexpr const TFunction texelFetchExt_00Q20D00D(
     BuiltInId::texelFetchExt_Sampler2DMSArray1_Int3_Int1,
     BuiltInName::texelFetchExt,
     TExtension::OES_texture_storage_multisample_2d_array,
@@ -8242,7 +7735,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetchExt_00W20D00D(
+constexpr const TFunction texelFetchExt_00W20D00D(
     BuiltInId::texelFetchExt_ISampler2DMSArray1_Int3_Int1,
     BuiltInName::texelFetchExt,
     TExtension::OES_texture_storage_multisample_2d_array,
@@ -8251,7 +7744,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetchExt_00c20D00D(
+constexpr const TFunction texelFetchExt_00c20D00D(
     BuiltInId::texelFetchExt_USampler2DMSArray1_Int3_Int1,
     BuiltInName::texelFetchExt,
     TExtension::OES_texture_storage_multisample_2d_array,
@@ -8260,7 +7753,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture_00I10B00B(
+constexpr const TFunction texture_00I10B00B(
     BuiltInId::texture_Sampler2D1_Float2_Float1,
     BuiltInName::texture,
     TExtension::UNDEFINED,
@@ -8269,7 +7762,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture_00R10B00B(
+constexpr const TFunction texture_00R10B00B(
     BuiltInId::texture_ISampler2D1_Float2_Float1,
     BuiltInName::texture,
     TExtension::UNDEFINED,
@@ -8278,7 +7771,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture_00X10B00B(
+constexpr const TFunction texture_00X10B00B(
     BuiltInId::texture_USampler2D1_Float2_Float1,
     BuiltInName::texture,
     TExtension::UNDEFINED,
@@ -8287,7 +7780,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture_00J20B00B(
+constexpr const TFunction texture_00J20B00B(
     BuiltInId::texture_Sampler3D1_Float3_Float1,
     BuiltInName::texture,
     TExtension::UNDEFINED,
@@ -8296,7 +7789,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture_00S20B00B(
+constexpr const TFunction texture_00S20B00B(
     BuiltInId::texture_ISampler3D1_Float3_Float1,
     BuiltInName::texture,
     TExtension::UNDEFINED,
@@ -8305,7 +7798,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture_00Y20B00B(
+constexpr const TFunction texture_00Y20B00B(
     BuiltInId::texture_USampler3D1_Float3_Float1,
     BuiltInName::texture,
     TExtension::UNDEFINED,
@@ -8314,7 +7807,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture_00K20B00B(
+constexpr const TFunction texture_00K20B00B(
     BuiltInId::texture_SamplerCube1_Float3_Float1,
     BuiltInName::texture,
     TExtension::UNDEFINED,
@@ -8323,7 +7816,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture_00T20B00B(
+constexpr const TFunction texture_00T20B00B(
     BuiltInId::texture_ISamplerCube1_Float3_Float1,
     BuiltInName::texture,
     TExtension::UNDEFINED,
@@ -8332,7 +7825,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture_00Z20B00B(
+constexpr const TFunction texture_00Z20B00B(
     BuiltInId::texture_USamplerCube1_Float3_Float1,
     BuiltInName::texture,
     TExtension::UNDEFINED,
@@ -8341,7 +7834,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture_00L20B00B(
+constexpr const TFunction texture_00L20B00B(
     BuiltInId::texture_Sampler2DArray1_Float3_Float1,
     BuiltInName::texture,
     TExtension::UNDEFINED,
@@ -8350,7 +7843,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture_00U20B00B(
+constexpr const TFunction texture_00U20B00B(
     BuiltInId::texture_ISampler2DArray1_Float3_Float1,
     BuiltInName::texture,
     TExtension::UNDEFINED,
@@ -8359,7 +7852,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture_00a20B00B(
+constexpr const TFunction texture_00a20B00B(
     BuiltInId::texture_USampler2DArray1_Float3_Float1,
     BuiltInName::texture,
     TExtension::UNDEFINED,
@@ -8368,7 +7861,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00I20B00B(
+constexpr const TFunction textureProj_00I20B00B(
     BuiltInId::textureProj_Sampler2D1_Float3_Float1,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -8377,7 +7870,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00R20B00B(
+constexpr const TFunction textureProj_00R20B00B(
     BuiltInId::textureProj_ISampler2D1_Float3_Float1,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -8386,7 +7879,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00X20B00B(
+constexpr const TFunction textureProj_00X20B00B(
     BuiltInId::textureProj_USampler2D1_Float3_Float1,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -8395,7 +7888,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00I30B00B(
+constexpr const TFunction textureProj_00I30B00B(
     BuiltInId::textureProj_Sampler2D1_Float4_Float1,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -8404,7 +7897,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00R30B00B(
+constexpr const TFunction textureProj_00R30B00B(
     BuiltInId::textureProj_ISampler2D1_Float4_Float1,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -8413,7 +7906,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00X30B00B(
+constexpr const TFunction textureProj_00X30B00B(
     BuiltInId::textureProj_USampler2D1_Float4_Float1,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -8422,7 +7915,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00J30B00B(
+constexpr const TFunction textureProj_00J30B00B(
     BuiltInId::textureProj_Sampler3D1_Float4_Float1,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -8431,7 +7924,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00S30B00B(
+constexpr const TFunction textureProj_00S30B00B(
     BuiltInId::textureProj_ISampler3D1_Float4_Float1,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -8440,7 +7933,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00Y30B00B(
+constexpr const TFunction textureProj_00Y30B00B(
     BuiltInId::textureProj_USampler3D1_Float4_Float1,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -8449,7 +7942,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture_00d20B00B(
+constexpr const TFunction texture_00d20B00B(
     BuiltInId::texture_Sampler2DShadow1_Float3_Float1,
     BuiltInName::texture,
     TExtension::UNDEFINED,
@@ -8458,7 +7951,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture_00e30B00B(
+constexpr const TFunction texture_00e30B00B(
     BuiltInId::texture_SamplerCubeShadow1_Float4_Float1,
     BuiltInName::texture,
     TExtension::UNDEFINED,
@@ -8467,7 +7960,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00d30B00B(
+constexpr const TFunction textureProj_00d30B00B(
     BuiltInId::textureProj_Sampler2DShadow1_Float4_Float1,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -8476,7 +7969,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture_00M10B00B(
+constexpr const TFunction texture_00M10B00B(
     BuiltInId::texture_SamplerExternalOES1_Float2_Float1,
     BuiltInName::texture,
     TExtension::OES_EGL_image_external_essl3,
@@ -8485,7 +7978,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00M20B00B(
+constexpr const TFunction textureProj_00M20B00B(
     BuiltInId::textureProj_SamplerExternalOES1_Float3_Float1,
     BuiltInName::textureProj,
     TExtension::OES_EGL_image_external_essl3,
@@ -8494,7 +7987,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00M30B00B(
+constexpr const TFunction textureProj_00M30B00B(
     BuiltInId::textureProj_SamplerExternalOES1_Float4_Float1,
     BuiltInName::textureProj,
     TExtension::OES_EGL_image_external_essl3,
@@ -8503,7 +7996,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture_00N10B00B(
+constexpr const TFunction texture_00N10B00B(
     BuiltInId::texture_SamplerExternal2DY2YEXT1_Float2_Float1,
     BuiltInName::texture,
     TExtension::EXT_YUV_target,
@@ -8512,7 +8005,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00N20B00B(
+constexpr const TFunction textureProj_00N20B00B(
     BuiltInId::textureProj_SamplerExternal2DY2YEXT1_Float3_Float1,
     BuiltInName::textureProj,
     TExtension::EXT_YUV_target,
@@ -8521,7 +8014,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00N30B00B(
+constexpr const TFunction textureProj_00N30B00B(
     BuiltInId::textureProj_SamplerExternal2DY2YEXT1_Float4_Float1,
     BuiltInName::textureProj,
     TExtension::EXT_YUV_target,
@@ -8530,7 +8023,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00I10B10D(
+constexpr const TFunction textureOffset_00I10B10D(
     BuiltInId::textureOffset_Sampler2D1_Float2_Int2,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -8539,7 +8032,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00R10B10D(
+constexpr const TFunction textureOffset_00R10B10D(
     BuiltInId::textureOffset_ISampler2D1_Float2_Int2,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -8548,7 +8041,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00X10B10D(
+constexpr const TFunction textureOffset_00X10B10D(
     BuiltInId::textureOffset_USampler2D1_Float2_Int2,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -8557,7 +8050,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00J20B20D(
+constexpr const TFunction textureOffset_00J20B20D(
     BuiltInId::textureOffset_Sampler3D1_Float3_Int3,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -8566,7 +8059,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00S20B20D(
+constexpr const TFunction textureOffset_00S20B20D(
     BuiltInId::textureOffset_ISampler3D1_Float3_Int3,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -8575,7 +8068,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00Y20B20D(
+constexpr const TFunction textureOffset_00Y20B20D(
     BuiltInId::textureOffset_USampler3D1_Float3_Int3,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -8584,7 +8077,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00d20B10D(
+constexpr const TFunction textureOffset_00d20B10D(
     BuiltInId::textureOffset_Sampler2DShadow1_Float3_Int2,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -8593,7 +8086,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00L20B10D(
+constexpr const TFunction textureOffset_00L20B10D(
     BuiltInId::textureOffset_Sampler2DArray1_Float3_Int2,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -8602,7 +8095,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00U20B10D(
+constexpr const TFunction textureOffset_00U20B10D(
     BuiltInId::textureOffset_ISampler2DArray1_Float3_Int2,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -8611,7 +8104,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00a20B10D(
+constexpr const TFunction textureOffset_00a20B10D(
     BuiltInId::textureOffset_USampler2DArray1_Float3_Int2,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -8620,7 +8113,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00I20B10D(
+constexpr const TFunction textureProjOffset_00I20B10D(
     BuiltInId::textureProjOffset_Sampler2D1_Float3_Int2,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -8629,7 +8122,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00R20B10D(
+constexpr const TFunction textureProjOffset_00R20B10D(
     BuiltInId::textureProjOffset_ISampler2D1_Float3_Int2,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -8638,7 +8131,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00X20B10D(
+constexpr const TFunction textureProjOffset_00X20B10D(
     BuiltInId::textureProjOffset_USampler2D1_Float3_Int2,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -8647,7 +8140,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00I30B10D(
+constexpr const TFunction textureProjOffset_00I30B10D(
     BuiltInId::textureProjOffset_Sampler2D1_Float4_Int2,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -8656,7 +8149,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00R30B10D(
+constexpr const TFunction textureProjOffset_00R30B10D(
     BuiltInId::textureProjOffset_ISampler2D1_Float4_Int2,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -8665,7 +8158,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00X30B10D(
+constexpr const TFunction textureProjOffset_00X30B10D(
     BuiltInId::textureProjOffset_USampler2D1_Float4_Int2,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -8674,7 +8167,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00J30B20D(
+constexpr const TFunction textureProjOffset_00J30B20D(
     BuiltInId::textureProjOffset_Sampler3D1_Float4_Int3,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -8683,7 +8176,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00S30B20D(
+constexpr const TFunction textureProjOffset_00S30B20D(
     BuiltInId::textureProjOffset_ISampler3D1_Float4_Int3,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -8692,7 +8185,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00Y30B20D(
+constexpr const TFunction textureProjOffset_00Y30B20D(
     BuiltInId::textureProjOffset_USampler3D1_Float4_Int3,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -8701,7 +8194,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00d30B10D(
+constexpr const TFunction textureProjOffset_00d30B10D(
     BuiltInId::textureProjOffset_Sampler2DShadow1_Float4_Int2,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -8710,7 +8203,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLodOffset_00I10B00B10D(
+constexpr const TFunction textureLodOffset_00I10B00B10D(
     BuiltInId::textureLodOffset_Sampler2D1_Float2_Float1_Int2,
     BuiltInName::textureLodOffset,
     TExtension::UNDEFINED,
@@ -8719,7 +8212,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLodOffset_00R10B00B10D(
+constexpr const TFunction textureLodOffset_00R10B00B10D(
     BuiltInId::textureLodOffset_ISampler2D1_Float2_Float1_Int2,
     BuiltInName::textureLodOffset,
     TExtension::UNDEFINED,
@@ -8728,7 +8221,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLodOffset_00X10B00B10D(
+constexpr const TFunction textureLodOffset_00X10B00B10D(
     BuiltInId::textureLodOffset_USampler2D1_Float2_Float1_Int2,
     BuiltInName::textureLodOffset,
     TExtension::UNDEFINED,
@@ -8737,7 +8230,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLodOffset_00J20B00B20D(
+constexpr const TFunction textureLodOffset_00J20B00B20D(
     BuiltInId::textureLodOffset_Sampler3D1_Float3_Float1_Int3,
     BuiltInName::textureLodOffset,
     TExtension::UNDEFINED,
@@ -8746,7 +8239,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLodOffset_00S20B00B20D(
+constexpr const TFunction textureLodOffset_00S20B00B20D(
     BuiltInId::textureLodOffset_ISampler3D1_Float3_Float1_Int3,
     BuiltInName::textureLodOffset,
     TExtension::UNDEFINED,
@@ -8755,7 +8248,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLodOffset_00Y20B00B20D(
+constexpr const TFunction textureLodOffset_00Y20B00B20D(
     BuiltInId::textureLodOffset_USampler3D1_Float3_Float1_Int3,
     BuiltInName::textureLodOffset,
     TExtension::UNDEFINED,
@@ -8764,7 +8257,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLodOffset_00d20B00B10D(
+constexpr const TFunction textureLodOffset_00d20B00B10D(
     BuiltInId::textureLodOffset_Sampler2DShadow1_Float3_Float1_Int2,
     BuiltInName::textureLodOffset,
     TExtension::UNDEFINED,
@@ -8773,7 +8266,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLodOffset_00L20B00B10D(
+constexpr const TFunction textureLodOffset_00L20B00B10D(
     BuiltInId::textureLodOffset_Sampler2DArray1_Float3_Float1_Int2,
     BuiltInName::textureLodOffset,
     TExtension::UNDEFINED,
@@ -8782,7 +8275,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLodOffset_00U20B00B10D(
+constexpr const TFunction textureLodOffset_00U20B00B10D(
     BuiltInId::textureLodOffset_ISampler2DArray1_Float3_Float1_Int2,
     BuiltInName::textureLodOffset,
     TExtension::UNDEFINED,
@@ -8791,7 +8284,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLodOffset_00a20B00B10D(
+constexpr const TFunction textureLodOffset_00a20B00B10D(
     BuiltInId::textureLodOffset_USampler2DArray1_Float3_Float1_Int2,
     BuiltInName::textureLodOffset,
     TExtension::UNDEFINED,
@@ -8800,7 +8293,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLodOffset_00I20B00B10D(
+constexpr const TFunction textureProjLodOffset_00I20B00B10D(
     BuiltInId::textureProjLodOffset_Sampler2D1_Float3_Float1_Int2,
     BuiltInName::textureProjLodOffset,
     TExtension::UNDEFINED,
@@ -8809,7 +8302,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLodOffset_00R20B00B10D(
+constexpr const TFunction textureProjLodOffset_00R20B00B10D(
     BuiltInId::textureProjLodOffset_ISampler2D1_Float3_Float1_Int2,
     BuiltInName::textureProjLodOffset,
     TExtension::UNDEFINED,
@@ -8818,7 +8311,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLodOffset_00X20B00B10D(
+constexpr const TFunction textureProjLodOffset_00X20B00B10D(
     BuiltInId::textureProjLodOffset_USampler2D1_Float3_Float1_Int2,
     BuiltInName::textureProjLodOffset,
     TExtension::UNDEFINED,
@@ -8827,7 +8320,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLodOffset_00I30B00B10D(
+constexpr const TFunction textureProjLodOffset_00I30B00B10D(
     BuiltInId::textureProjLodOffset_Sampler2D1_Float4_Float1_Int2,
     BuiltInName::textureProjLodOffset,
     TExtension::UNDEFINED,
@@ -8836,7 +8329,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLodOffset_00R30B00B10D(
+constexpr const TFunction textureProjLodOffset_00R30B00B10D(
     BuiltInId::textureProjLodOffset_ISampler2D1_Float4_Float1_Int2,
     BuiltInName::textureProjLodOffset,
     TExtension::UNDEFINED,
@@ -8845,7 +8338,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLodOffset_00X30B00B10D(
+constexpr const TFunction textureProjLodOffset_00X30B00B10D(
     BuiltInId::textureProjLodOffset_USampler2D1_Float4_Float1_Int2,
     BuiltInName::textureProjLodOffset,
     TExtension::UNDEFINED,
@@ -8854,7 +8347,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLodOffset_00J30B00B20D(
+constexpr const TFunction textureProjLodOffset_00J30B00B20D(
     BuiltInId::textureProjLodOffset_Sampler3D1_Float4_Float1_Int3,
     BuiltInName::textureProjLodOffset,
     TExtension::UNDEFINED,
@@ -8863,7 +8356,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLodOffset_00S30B00B20D(
+constexpr const TFunction textureProjLodOffset_00S30B00B20D(
     BuiltInId::textureProjLodOffset_ISampler3D1_Float4_Float1_Int3,
     BuiltInName::textureProjLodOffset,
     TExtension::UNDEFINED,
@@ -8872,7 +8365,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLodOffset_00Y30B00B20D(
+constexpr const TFunction textureProjLodOffset_00Y30B00B20D(
     BuiltInId::textureProjLodOffset_USampler3D1_Float4_Float1_Int3,
     BuiltInName::textureProjLodOffset,
     TExtension::UNDEFINED,
@@ -8881,7 +8374,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLodOffset_00d30B00B10D(
+constexpr const TFunction textureProjLodOffset_00d30B00B10D(
     BuiltInId::textureProjLodOffset_Sampler2DShadow1_Float4_Float1_Int2,
     BuiltInName::textureProjLodOffset,
     TExtension::UNDEFINED,
@@ -8890,7 +8383,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetchOffset_00I10D00D10D(
+constexpr const TFunction texelFetchOffset_00I10D00D10D(
     BuiltInId::texelFetchOffset_Sampler2D1_Int2_Int1_Int2,
     BuiltInName::texelFetchOffset,
     TExtension::UNDEFINED,
@@ -8899,7 +8392,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetchOffset_00R10D00D10D(
+constexpr const TFunction texelFetchOffset_00R10D00D10D(
     BuiltInId::texelFetchOffset_ISampler2D1_Int2_Int1_Int2,
     BuiltInName::texelFetchOffset,
     TExtension::UNDEFINED,
@@ -8908,7 +8401,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetchOffset_00X10D00D10D(
+constexpr const TFunction texelFetchOffset_00X10D00D10D(
     BuiltInId::texelFetchOffset_USampler2D1_Int2_Int1_Int2,
     BuiltInName::texelFetchOffset,
     TExtension::UNDEFINED,
@@ -8917,7 +8410,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetchOffset_00J20D00D20D(
+constexpr const TFunction texelFetchOffset_00J20D00D20D(
     BuiltInId::texelFetchOffset_Sampler3D1_Int3_Int1_Int3,
     BuiltInName::texelFetchOffset,
     TExtension::UNDEFINED,
@@ -8926,7 +8419,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetchOffset_00S20D00D20D(
+constexpr const TFunction texelFetchOffset_00S20D00D20D(
     BuiltInId::texelFetchOffset_ISampler3D1_Int3_Int1_Int3,
     BuiltInName::texelFetchOffset,
     TExtension::UNDEFINED,
@@ -8935,7 +8428,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetchOffset_00Y20D00D20D(
+constexpr const TFunction texelFetchOffset_00Y20D00D20D(
     BuiltInId::texelFetchOffset_USampler3D1_Int3_Int1_Int3,
     BuiltInName::texelFetchOffset,
     TExtension::UNDEFINED,
@@ -8944,7 +8437,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetchOffset_00L20D00D10D(
+constexpr const TFunction texelFetchOffset_00L20D00D10D(
     BuiltInId::texelFetchOffset_Sampler2DArray1_Int3_Int1_Int2,
     BuiltInName::texelFetchOffset,
     TExtension::UNDEFINED,
@@ -8953,7 +8446,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetchOffset_00U20D00D10D(
+constexpr const TFunction texelFetchOffset_00U20D00D10D(
     BuiltInId::texelFetchOffset_ISampler2DArray1_Int3_Int1_Int2,
     BuiltInName::texelFetchOffset,
     TExtension::UNDEFINED,
@@ -8962,7 +8455,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetchOffset_00a20D00D10D(
+constexpr const TFunction texelFetchOffset_00a20D00D10D(
     BuiltInId::texelFetchOffset_USampler2DArray1_Int3_Int1_Int2,
     BuiltInName::texelFetchOffset,
     TExtension::UNDEFINED,
@@ -8971,7 +8464,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGradOffset_00I10B10B10B10D(
+constexpr const TFunction textureGradOffset_00I10B10B10B10D(
     BuiltInId::textureGradOffset_Sampler2D1_Float2_Float2_Float2_Int2,
     BuiltInName::textureGradOffset,
     TExtension::UNDEFINED,
@@ -8980,7 +8473,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGradOffset_00R10B10B10B10D(
+constexpr const TFunction textureGradOffset_00R10B10B10B10D(
     BuiltInId::textureGradOffset_ISampler2D1_Float2_Float2_Float2_Int2,
     BuiltInName::textureGradOffset,
     TExtension::UNDEFINED,
@@ -8989,7 +8482,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGradOffset_00X10B10B10B10D(
+constexpr const TFunction textureGradOffset_00X10B10B10B10D(
     BuiltInId::textureGradOffset_USampler2D1_Float2_Float2_Float2_Int2,
     BuiltInName::textureGradOffset,
     TExtension::UNDEFINED,
@@ -8998,7 +8491,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGradOffset_00J20B20B20B20D(
+constexpr const TFunction textureGradOffset_00J20B20B20B20D(
     BuiltInId::textureGradOffset_Sampler3D1_Float3_Float3_Float3_Int3,
     BuiltInName::textureGradOffset,
     TExtension::UNDEFINED,
@@ -9007,7 +8500,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGradOffset_00S20B20B20B20D(
+constexpr const TFunction textureGradOffset_00S20B20B20B20D(
     BuiltInId::textureGradOffset_ISampler3D1_Float3_Float3_Float3_Int3,
     BuiltInName::textureGradOffset,
     TExtension::UNDEFINED,
@@ -9016,7 +8509,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGradOffset_00Y20B20B20B20D(
+constexpr const TFunction textureGradOffset_00Y20B20B20B20D(
     BuiltInId::textureGradOffset_USampler3D1_Float3_Float3_Float3_Int3,
     BuiltInName::textureGradOffset,
     TExtension::UNDEFINED,
@@ -9025,7 +8518,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGradOffset_00d20B10B10B10D(
+constexpr const TFunction textureGradOffset_00d20B10B10B10D(
     BuiltInId::textureGradOffset_Sampler2DShadow1_Float3_Float2_Float2_Int2,
     BuiltInName::textureGradOffset,
     TExtension::UNDEFINED,
@@ -9034,7 +8527,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGradOffset_00L20B10B10B10D(
+constexpr const TFunction textureGradOffset_00L20B10B10B10D(
     BuiltInId::textureGradOffset_Sampler2DArray1_Float3_Float2_Float2_Int2,
     BuiltInName::textureGradOffset,
     TExtension::UNDEFINED,
@@ -9043,7 +8536,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGradOffset_00U20B10B10B10D(
+constexpr const TFunction textureGradOffset_00U20B10B10B10D(
     BuiltInId::textureGradOffset_ISampler2DArray1_Float3_Float2_Float2_Int2,
     BuiltInName::textureGradOffset,
     TExtension::UNDEFINED,
@@ -9052,7 +8545,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGradOffset_00a20B10B10B10D(
+constexpr const TFunction textureGradOffset_00a20B10B10B10D(
     BuiltInId::textureGradOffset_USampler2DArray1_Float3_Float2_Float2_Int2,
     BuiltInName::textureGradOffset,
     TExtension::UNDEFINED,
@@ -9061,7 +8554,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGradOffset_00f30B10B10B10D(
+constexpr const TFunction textureGradOffset_00f30B10B10B10D(
     BuiltInId::textureGradOffset_Sampler2DArrayShadow1_Float4_Float2_Float2_Int2,
     BuiltInName::textureGradOffset,
     TExtension::UNDEFINED,
@@ -9070,7 +8563,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGradOffset_00I20B10B10B10D(
+constexpr const TFunction textureProjGradOffset_00I20B10B10B10D(
     BuiltInId::textureProjGradOffset_Sampler2D1_Float3_Float2_Float2_Int2,
     BuiltInName::textureProjGradOffset,
     TExtension::UNDEFINED,
@@ -9079,7 +8572,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGradOffset_00R20B10B10B10D(
+constexpr const TFunction textureProjGradOffset_00R20B10B10B10D(
     BuiltInId::textureProjGradOffset_ISampler2D1_Float3_Float2_Float2_Int2,
     BuiltInName::textureProjGradOffset,
     TExtension::UNDEFINED,
@@ -9088,7 +8581,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGradOffset_00X20B10B10B10D(
+constexpr const TFunction textureProjGradOffset_00X20B10B10B10D(
     BuiltInId::textureProjGradOffset_USampler2D1_Float3_Float2_Float2_Int2,
     BuiltInName::textureProjGradOffset,
     TExtension::UNDEFINED,
@@ -9097,7 +8590,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGradOffset_00I30B10B10B10D(
+constexpr const TFunction textureProjGradOffset_00I30B10B10B10D(
     BuiltInId::textureProjGradOffset_Sampler2D1_Float4_Float2_Float2_Int2,
     BuiltInName::textureProjGradOffset,
     TExtension::UNDEFINED,
@@ -9106,7 +8599,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGradOffset_00R30B10B10B10D(
+constexpr const TFunction textureProjGradOffset_00R30B10B10B10D(
     BuiltInId::textureProjGradOffset_ISampler2D1_Float4_Float2_Float2_Int2,
     BuiltInName::textureProjGradOffset,
     TExtension::UNDEFINED,
@@ -9115,7 +8608,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGradOffset_00X30B10B10B10D(
+constexpr const TFunction textureProjGradOffset_00X30B10B10B10D(
     BuiltInId::textureProjGradOffset_USampler2D1_Float4_Float2_Float2_Int2,
     BuiltInName::textureProjGradOffset,
     TExtension::UNDEFINED,
@@ -9124,7 +8617,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGradOffset_00J30B20B20B20D(
+constexpr const TFunction textureProjGradOffset_00J30B20B20B20D(
     BuiltInId::textureProjGradOffset_Sampler3D1_Float4_Float3_Float3_Int3,
     BuiltInName::textureProjGradOffset,
     TExtension::UNDEFINED,
@@ -9133,7 +8626,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGradOffset_00S30B20B20B20D(
+constexpr const TFunction textureProjGradOffset_00S30B20B20B20D(
     BuiltInId::textureProjGradOffset_ISampler3D1_Float4_Float3_Float3_Int3,
     BuiltInName::textureProjGradOffset,
     TExtension::UNDEFINED,
@@ -9142,7 +8635,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGradOffset_00Y30B20B20B20D(
+constexpr const TFunction textureProjGradOffset_00Y30B20B20B20D(
     BuiltInId::textureProjGradOffset_USampler3D1_Float4_Float3_Float3_Int3,
     BuiltInName::textureProjGradOffset,
     TExtension::UNDEFINED,
@@ -9151,7 +8644,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGradOffset_00d30B10B10B10D(
+constexpr const TFunction textureProjGradOffset_00d30B10B10B10D(
     BuiltInId::textureProjGradOffset_Sampler2DShadow1_Float4_Float2_Float2_Int2,
     BuiltInName::textureProjGradOffset,
     TExtension::UNDEFINED,
@@ -9160,7 +8653,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00I10B10D00B(
+constexpr const TFunction textureOffset_00I10B10D00B(
     BuiltInId::textureOffset_Sampler2D1_Float2_Int2_Float1,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -9169,7 +8662,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00R10B10D00B(
+constexpr const TFunction textureOffset_00R10B10D00B(
     BuiltInId::textureOffset_ISampler2D1_Float2_Int2_Float1,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -9178,7 +8671,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00X10B10D00B(
+constexpr const TFunction textureOffset_00X10B10D00B(
     BuiltInId::textureOffset_USampler2D1_Float2_Int2_Float1,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -9187,7 +8680,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00J20B20D00B(
+constexpr const TFunction textureOffset_00J20B20D00B(
     BuiltInId::textureOffset_Sampler3D1_Float3_Int3_Float1,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -9196,7 +8689,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00S20B20D00B(
+constexpr const TFunction textureOffset_00S20B20D00B(
     BuiltInId::textureOffset_ISampler3D1_Float3_Int3_Float1,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -9205,7 +8698,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00Y20B20D00B(
+constexpr const TFunction textureOffset_00Y20B20D00B(
     BuiltInId::textureOffset_USampler3D1_Float3_Int3_Float1,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -9214,7 +8707,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00d20B10D00B(
+constexpr const TFunction textureOffset_00d20B10D00B(
     BuiltInId::textureOffset_Sampler2DShadow1_Float3_Int2_Float1,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -9223,7 +8716,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00L20B10D00B(
+constexpr const TFunction textureOffset_00L20B10D00B(
     BuiltInId::textureOffset_Sampler2DArray1_Float3_Int2_Float1,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -9232,7 +8725,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00U20B10D00B(
+constexpr const TFunction textureOffset_00U20B10D00B(
     BuiltInId::textureOffset_ISampler2DArray1_Float3_Int2_Float1,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -9241,7 +8734,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00a20B10D00B(
+constexpr const TFunction textureOffset_00a20B10D00B(
     BuiltInId::textureOffset_USampler2DArray1_Float3_Int2_Float1,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -9250,7 +8743,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00I20B10D00B(
+constexpr const TFunction textureProjOffset_00I20B10D00B(
     BuiltInId::textureProjOffset_Sampler2D1_Float3_Int2_Float1,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -9259,7 +8752,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00R20B10D00B(
+constexpr const TFunction textureProjOffset_00R20B10D00B(
     BuiltInId::textureProjOffset_ISampler2D1_Float3_Int2_Float1,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -9268,7 +8761,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00X20B10D00B(
+constexpr const TFunction textureProjOffset_00X20B10D00B(
     BuiltInId::textureProjOffset_USampler2D1_Float3_Int2_Float1,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -9277,7 +8770,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00I30B10D00B(
+constexpr const TFunction textureProjOffset_00I30B10D00B(
     BuiltInId::textureProjOffset_Sampler2D1_Float4_Int2_Float1,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -9286,7 +8779,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00R30B10D00B(
+constexpr const TFunction textureProjOffset_00R30B10D00B(
     BuiltInId::textureProjOffset_ISampler2D1_Float4_Int2_Float1,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -9295,7 +8788,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00X30B10D00B(
+constexpr const TFunction textureProjOffset_00X30B10D00B(
     BuiltInId::textureProjOffset_USampler2D1_Float4_Int2_Float1,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -9304,7 +8797,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00J30B20D00B(
+constexpr const TFunction textureProjOffset_00J30B20D00B(
     BuiltInId::textureProjOffset_Sampler3D1_Float4_Int3_Float1,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -9313,7 +8806,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00S30B20D00B(
+constexpr const TFunction textureProjOffset_00S30B20D00B(
     BuiltInId::textureProjOffset_ISampler3D1_Float4_Int3_Float1,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -9322,7 +8815,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00Y30B20D00B(
+constexpr const TFunction textureProjOffset_00Y30B20D00B(
     BuiltInId::textureProjOffset_USampler3D1_Float4_Int3_Float1,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -9331,7 +8824,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00d30B10D00B(
+constexpr const TFunction textureProjOffset_00d30B10D00B(
     BuiltInId::textureProjOffset_Sampler2DShadow1_Float4_Int2_Float1,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -9340,16 +8833,15 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture_00M10B(
-    BuiltInId::texture_SamplerExternalOES1_Float2,
-    BuiltInName::texture,
-    TExtension::OES_EGL_image_external_essl3,
-    BuiltInParameters::p00M10B00B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_textureProj_00M20B(
+constexpr const TFunction texture_00M10B(BuiltInId::texture_SamplerExternalOES1_Float2,
+                                         BuiltInName::texture,
+                                         TExtension::OES_EGL_image_external_essl3,
+                                         BuiltInParameters::p00M10B00B,
+                                         2,
+                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction textureProj_00M20B(
     BuiltInId::textureProj_SamplerExternalOES1_Float3,
     BuiltInName::textureProj,
     TExtension::OES_EGL_image_external_essl3,
@@ -9358,7 +8850,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00M30B(
+constexpr const TFunction textureProj_00M30B(
     BuiltInId::textureProj_SamplerExternalOES1_Float4,
     BuiltInName::textureProj,
     TExtension::OES_EGL_image_external_essl3,
@@ -9367,7 +8859,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSize_00M00D(
+constexpr const TFunction textureSize_00M00D(
     BuiltInId::textureSize_SamplerExternalOES1_Int1,
     BuiltInName::textureSize,
     TExtension::OES_EGL_image_external_essl3,
@@ -9376,7 +8868,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetch_00M10D00D(
+constexpr const TFunction texelFetch_00M10D00D(
     BuiltInId::texelFetch_SamplerExternalOES1_Int2_Int1,
     BuiltInName::texelFetch,
     TExtension::OES_EGL_image_external_essl3,
@@ -9385,16 +8877,15 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture_00N10B(
-    BuiltInId::texture_SamplerExternal2DY2YEXT1_Float2,
-    BuiltInName::texture,
-    TExtension::EXT_YUV_target,
-    BuiltInParameters::p00N10B00B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_textureProj_00N20B(
+constexpr const TFunction texture_00N10B(BuiltInId::texture_SamplerExternal2DY2YEXT1_Float2,
+                                         BuiltInName::texture,
+                                         TExtension::EXT_YUV_target,
+                                         BuiltInParameters::p00N10B00B,
+                                         2,
+                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction textureProj_00N20B(
     BuiltInId::textureProj_SamplerExternal2DY2YEXT1_Float3,
     BuiltInName::textureProj,
     TExtension::EXT_YUV_target,
@@ -9403,7 +8894,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00N30B(
+constexpr const TFunction textureProj_00N30B(
     BuiltInId::textureProj_SamplerExternal2DY2YEXT1_Float4,
     BuiltInName::textureProj,
     TExtension::EXT_YUV_target,
@@ -9412,7 +8903,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_rgb_2_yuv_20B00H(
+constexpr const TFunction rgb_2_yuv_20B00H(
     BuiltInId::rgb_2_yuv_Float3_YuvCscStandardEXT1,
     BuiltInName::rgb_2_yuv,
     TExtension::EXT_YUV_target,
@@ -9421,7 +8912,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_yuv_2_rgb_20B00H(
+constexpr const TFunction yuv_2_rgb_20B00H(
     BuiltInId::yuv_2_rgb_Float3_YuvCscStandardEXT1,
     BuiltInName::yuv_2_rgb,
     TExtension::EXT_YUV_target,
@@ -9430,7 +8921,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSize_00N00D(
+constexpr const TFunction textureSize_00N00D(
     BuiltInId::textureSize_SamplerExternal2DY2YEXT1_Int1,
     BuiltInName::textureSize,
     TExtension::EXT_YUV_target,
@@ -9439,7 +8930,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetch_00N10D00D(
+constexpr const TFunction texelFetch_00N10D00D(
     BuiltInId::texelFetch_SamplerExternal2DY2YEXT1_Int2_Int1,
     BuiltInName::texelFetch,
     TExtension::EXT_YUV_target,
@@ -9448,7 +8939,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00I10B(
+constexpr const TFunction textureGather_00I10B(
     BuiltInId::textureGather_Sampler2D1_Float2,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -9457,7 +8948,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00R10B(
+constexpr const TFunction textureGather_00R10B(
     BuiltInId::textureGather_ISampler2D1_Float2,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -9466,7 +8957,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00X10B(
+constexpr const TFunction textureGather_00X10B(
     BuiltInId::textureGather_USampler2D1_Float2,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -9475,7 +8966,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00I10B00D(
+constexpr const TFunction textureGather_00I10B00D(
     BuiltInId::textureGather_Sampler2D1_Float2_Int1,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -9484,7 +8975,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00R10B00D(
+constexpr const TFunction textureGather_00R10B00D(
     BuiltInId::textureGather_ISampler2D1_Float2_Int1,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -9493,7 +8984,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00X10B00D(
+constexpr const TFunction textureGather_00X10B00D(
     BuiltInId::textureGather_USampler2D1_Float2_Int1,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -9502,7 +8993,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00L20B(
+constexpr const TFunction textureGather_00L20B(
     BuiltInId::textureGather_Sampler2DArray1_Float3,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -9511,7 +9002,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00U20B(
+constexpr const TFunction textureGather_00U20B(
     BuiltInId::textureGather_ISampler2DArray1_Float3,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -9520,7 +9011,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00a20B(
+constexpr const TFunction textureGather_00a20B(
     BuiltInId::textureGather_USampler2DArray1_Float3,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -9529,7 +9020,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00L20B00D(
+constexpr const TFunction textureGather_00L20B00D(
     BuiltInId::textureGather_Sampler2DArray1_Float3_Int1,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -9538,7 +9029,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00U20B00D(
+constexpr const TFunction textureGather_00U20B00D(
     BuiltInId::textureGather_ISampler2DArray1_Float3_Int1,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -9547,7 +9038,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00a20B00D(
+constexpr const TFunction textureGather_00a20B00D(
     BuiltInId::textureGather_USampler2DArray1_Float3_Int1,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -9556,7 +9047,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00K20B(
+constexpr const TFunction textureGather_00K20B(
     BuiltInId::textureGather_SamplerCube1_Float3,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -9565,7 +9056,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00T20B(
+constexpr const TFunction textureGather_00T20B(
     BuiltInId::textureGather_ISamplerCube1_Float3,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -9574,7 +9065,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00Z20B(
+constexpr const TFunction textureGather_00Z20B(
     BuiltInId::textureGather_USamplerCube1_Float3,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -9583,7 +9074,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00K20B00D(
+constexpr const TFunction textureGather_00K20B00D(
     BuiltInId::textureGather_SamplerCube1_Float3_Int1,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -9592,7 +9083,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00T20B00D(
+constexpr const TFunction textureGather_00T20B00D(
     BuiltInId::textureGather_ISamplerCube1_Float3_Int1,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -9601,7 +9092,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00Z20B00D(
+constexpr const TFunction textureGather_00Z20B00D(
     BuiltInId::textureGather_USamplerCube1_Float3_Int1,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -9610,7 +9101,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00d10B(
+constexpr const TFunction textureGather_00d10B(
     BuiltInId::textureGather_Sampler2DShadow1_Float2,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -9619,7 +9110,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00d10B00B(
+constexpr const TFunction textureGather_00d10B00B(
     BuiltInId::textureGather_Sampler2DShadow1_Float2_Float1,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -9628,7 +9119,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00f20B(
+constexpr const TFunction textureGather_00f20B(
     BuiltInId::textureGather_Sampler2DArrayShadow1_Float3,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -9637,7 +9128,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00f20B00B(
+constexpr const TFunction textureGather_00f20B00B(
     BuiltInId::textureGather_Sampler2DArrayShadow1_Float3_Float1,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -9646,7 +9137,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00e20B(
+constexpr const TFunction textureGather_00e20B(
     BuiltInId::textureGather_SamplerCubeShadow1_Float3,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -9655,7 +9146,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00e20B00B(
+constexpr const TFunction textureGather_00e20B00B(
     BuiltInId::textureGather_SamplerCubeShadow1_Float3_Float1,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -9664,7 +9155,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffset_00I10B10D(
+constexpr const TFunction textureGatherOffset_00I10B10D(
     BuiltInId::textureGatherOffset_Sampler2D1_Float2_Int2,
     BuiltInName::textureGatherOffset,
     TExtension::UNDEFINED,
@@ -9673,7 +9164,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffset_00R10B10D(
+constexpr const TFunction textureGatherOffset_00R10B10D(
     BuiltInId::textureGatherOffset_ISampler2D1_Float2_Int2,
     BuiltInName::textureGatherOffset,
     TExtension::UNDEFINED,
@@ -9682,7 +9173,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffset_00X10B10D(
+constexpr const TFunction textureGatherOffset_00X10B10D(
     BuiltInId::textureGatherOffset_USampler2D1_Float2_Int2,
     BuiltInName::textureGatherOffset,
     TExtension::UNDEFINED,
@@ -9691,7 +9182,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffset_00I10B10D00D(
+constexpr const TFunction textureGatherOffset_00I10B10D00D(
     BuiltInId::textureGatherOffset_Sampler2D1_Float2_Int2_Int1,
     BuiltInName::textureGatherOffset,
     TExtension::UNDEFINED,
@@ -9700,7 +9191,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffset_00R10B10D00D(
+constexpr const TFunction textureGatherOffset_00R10B10D00D(
     BuiltInId::textureGatherOffset_ISampler2D1_Float2_Int2_Int1,
     BuiltInName::textureGatherOffset,
     TExtension::UNDEFINED,
@@ -9709,7 +9200,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffset_00X10B10D00D(
+constexpr const TFunction textureGatherOffset_00X10B10D00D(
     BuiltInId::textureGatherOffset_USampler2D1_Float2_Int2_Int1,
     BuiltInName::textureGatherOffset,
     TExtension::UNDEFINED,
@@ -9718,7 +9209,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffset_00L20B10D(
+constexpr const TFunction textureGatherOffset_00L20B10D(
     BuiltInId::textureGatherOffset_Sampler2DArray1_Float3_Int2,
     BuiltInName::textureGatherOffset,
     TExtension::UNDEFINED,
@@ -9727,7 +9218,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffset_00U20B10D(
+constexpr const TFunction textureGatherOffset_00U20B10D(
     BuiltInId::textureGatherOffset_ISampler2DArray1_Float3_Int2,
     BuiltInName::textureGatherOffset,
     TExtension::UNDEFINED,
@@ -9736,7 +9227,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffset_00a20B10D(
+constexpr const TFunction textureGatherOffset_00a20B10D(
     BuiltInId::textureGatherOffset_USampler2DArray1_Float3_Int2,
     BuiltInName::textureGatherOffset,
     TExtension::UNDEFINED,
@@ -9745,7 +9236,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffset_00L20B10D00D(
+constexpr const TFunction textureGatherOffset_00L20B10D00D(
     BuiltInId::textureGatherOffset_Sampler2DArray1_Float3_Int2_Int1,
     BuiltInName::textureGatherOffset,
     TExtension::UNDEFINED,
@@ -9754,7 +9245,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffset_00U20B10D00D(
+constexpr const TFunction textureGatherOffset_00U20B10D00D(
     BuiltInId::textureGatherOffset_ISampler2DArray1_Float3_Int2_Int1,
     BuiltInName::textureGatherOffset,
     TExtension::UNDEFINED,
@@ -9763,7 +9254,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffset_00a20B10D00D(
+constexpr const TFunction textureGatherOffset_00a20B10D00D(
     BuiltInId::textureGatherOffset_USampler2DArray1_Float3_Int2_Int1,
     BuiltInName::textureGatherOffset,
     TExtension::UNDEFINED,
@@ -9772,7 +9263,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffset_00d10B00B10D(
+constexpr const TFunction textureGatherOffset_00d10B00B10D(
     BuiltInId::textureGatherOffset_Sampler2DShadow1_Float2_Float1_Int2,
     BuiltInName::textureGatherOffset,
     TExtension::UNDEFINED,
@@ -9781,7 +9272,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffset_00f20B00B10D(
+constexpr const TFunction textureGatherOffset_00f20B00B10D(
     BuiltInId::textureGatherOffset_Sampler2DArrayShadow1_Float3_Float1_Int2,
     BuiltInName::textureGatherOffset,
     TExtension::UNDEFINED,
@@ -9790,115 +9281,103 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_dFdx_00B(
-    BuiltInId::dFdx_Float1,
-    BuiltInName::dFdx,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpDFdx,
-    false);
-constexpr const TFunction function_dFdx_10B(
-    BuiltInId::dFdx_Float2,
-    BuiltInName::dFdx,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B20B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpDFdx,
-    false);
-constexpr const TFunction function_dFdx_20B(
-    BuiltInId::dFdx_Float3,
-    BuiltInName::dFdx,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpDFdx,
-    false);
-constexpr const TFunction function_dFdx_30B(
-    BuiltInId::dFdx_Float4,
-    BuiltInName::dFdx,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B00B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpDFdx,
-    false);
-constexpr const TFunction function_dFdy_00B(
-    BuiltInId::dFdy_Float1,
-    BuiltInName::dFdy,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpDFdy,
-    false);
-constexpr const TFunction function_dFdy_10B(
-    BuiltInId::dFdy_Float2,
-    BuiltInName::dFdy,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B20B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpDFdy,
-    false);
-constexpr const TFunction function_dFdy_20B(
-    BuiltInId::dFdy_Float3,
-    BuiltInName::dFdy,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpDFdy,
-    false);
-constexpr const TFunction function_dFdy_30B(
-    BuiltInId::dFdy_Float4,
-    BuiltInName::dFdy,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B00B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpDFdy,
-    false);
-constexpr const TFunction function_fwidth_00B(
-    BuiltInId::fwidth_Float1,
-    BuiltInName::fwidth,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpFwidth,
-    false);
-constexpr const TFunction function_fwidth_10B(
-    BuiltInId::fwidth_Float2,
-    BuiltInName::fwidth,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B20B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpFwidth,
-    false);
-constexpr const TFunction function_fwidth_20B(
-    BuiltInId::fwidth_Float3,
-    BuiltInName::fwidth,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpFwidth,
-    false);
-constexpr const TFunction function_fwidth_30B(
-    BuiltInId::fwidth_Float4,
-    BuiltInName::fwidth,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B00B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpFwidth,
-    false);
-constexpr const TFunction function_atomicCounter_00G(
+constexpr const TFunction dFdx_00B(BuiltInId::dFdx_Float1,
+                                   BuiltInName::dFdx,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p00B30B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                   EOpDFdx,
+                                   false);
+constexpr const TFunction dFdx_10B(BuiltInId::dFdx_Float2,
+                                   BuiltInName::dFdx,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p10B20B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                   EOpDFdx,
+                                   false);
+constexpr const TFunction dFdx_20B(BuiltInId::dFdx_Float3,
+                                   BuiltInName::dFdx,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p20B10B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                   EOpDFdx,
+                                   false);
+constexpr const TFunction dFdx_30B(BuiltInId::dFdx_Float4,
+                                   BuiltInName::dFdx,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p30B00B00B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                   EOpDFdx,
+                                   false);
+constexpr const TFunction dFdy_00B(BuiltInId::dFdy_Float1,
+                                   BuiltInName::dFdy,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p00B30B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                   EOpDFdy,
+                                   false);
+constexpr const TFunction dFdy_10B(BuiltInId::dFdy_Float2,
+                                   BuiltInName::dFdy,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p10B20B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                   EOpDFdy,
+                                   false);
+constexpr const TFunction dFdy_20B(BuiltInId::dFdy_Float3,
+                                   BuiltInName::dFdy,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p20B10B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                   EOpDFdy,
+                                   false);
+constexpr const TFunction dFdy_30B(BuiltInId::dFdy_Float4,
+                                   BuiltInName::dFdy,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p30B00B00B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                   EOpDFdy,
+                                   false);
+constexpr const TFunction fwidth_00B(BuiltInId::fwidth_Float1,
+                                     BuiltInName::fwidth,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p00B30B,
+                                     1,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                     EOpFwidth,
+                                     false);
+constexpr const TFunction fwidth_10B(BuiltInId::fwidth_Float2,
+                                     BuiltInName::fwidth,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p10B20B,
+                                     1,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                     EOpFwidth,
+                                     false);
+constexpr const TFunction fwidth_20B(BuiltInId::fwidth_Float3,
+                                     BuiltInName::fwidth,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p20B10B,
+                                     1,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                     EOpFwidth,
+                                     false);
+constexpr const TFunction fwidth_30B(BuiltInId::fwidth_Float4,
+                                     BuiltInName::fwidth,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p30B00B00B,
+                                     1,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                     EOpFwidth,
+                                     false);
+constexpr const TFunction atomicCounter_00G(
     BuiltInId::atomicCounter_AtomicCounter1,
     BuiltInName::atomicCounter,
     TExtension::UNDEFINED,
@@ -9907,7 +9386,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_atomicCounterIncrement_00G(
+constexpr const TFunction atomicCounterIncrement_00G(
     BuiltInId::atomicCounterIncrement_AtomicCounter1,
     BuiltInName::atomicCounterIncrement,
     TExtension::UNDEFINED,
@@ -9916,7 +9395,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_atomicCounterDecrement_00G(
+constexpr const TFunction atomicCounterDecrement_00G(
     BuiltInId::atomicCounterDecrement_AtomicCounter1,
     BuiltInName::atomicCounterDecrement,
     TExtension::UNDEFINED,
@@ -9925,7 +9404,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_atomicAdd_00E00E(
+constexpr const TFunction atomicAdd_00E00E(
     BuiltInId::atomicAdd_UInt1_UInt1,
     BuiltInName::atomicAdd,
     TExtension::UNDEFINED,
@@ -9934,16 +9413,15 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpAtomicAdd,
     false);
-constexpr const TFunction function_atomicAdd_00D00D(
-    BuiltInId::atomicAdd_Int1_Int1,
-    BuiltInName::atomicAdd,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p_io_00D00D00D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpAtomicAdd,
-    false);
-constexpr const TFunction function_atomicMin_00E00E(
+constexpr const TFunction atomicAdd_00D00D(BuiltInId::atomicAdd_Int1_Int1,
+                                           BuiltInName::atomicAdd,
+                                           TExtension::UNDEFINED,
+                                           BuiltInParameters::p_io_00D00D00D,
+                                           2,
+                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                           EOpAtomicAdd,
+                                           false);
+constexpr const TFunction atomicMin_00E00E(
     BuiltInId::atomicMin_UInt1_UInt1,
     BuiltInName::atomicMin,
     TExtension::UNDEFINED,
@@ -9952,16 +9430,15 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpAtomicMin,
     false);
-constexpr const TFunction function_atomicMin_00D00D(
-    BuiltInId::atomicMin_Int1_Int1,
-    BuiltInName::atomicMin,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p_io_00D00D00D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpAtomicMin,
-    false);
-constexpr const TFunction function_atomicMax_00E00E(
+constexpr const TFunction atomicMin_00D00D(BuiltInId::atomicMin_Int1_Int1,
+                                           BuiltInName::atomicMin,
+                                           TExtension::UNDEFINED,
+                                           BuiltInParameters::p_io_00D00D00D,
+                                           2,
+                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                           EOpAtomicMin,
+                                           false);
+constexpr const TFunction atomicMax_00E00E(
     BuiltInId::atomicMax_UInt1_UInt1,
     BuiltInName::atomicMax,
     TExtension::UNDEFINED,
@@ -9970,16 +9447,15 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpAtomicMax,
     false);
-constexpr const TFunction function_atomicMax_00D00D(
-    BuiltInId::atomicMax_Int1_Int1,
-    BuiltInName::atomicMax,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p_io_00D00D00D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpAtomicMax,
-    false);
-constexpr const TFunction function_atomicAnd_00E00E(
+constexpr const TFunction atomicMax_00D00D(BuiltInId::atomicMax_Int1_Int1,
+                                           BuiltInName::atomicMax,
+                                           TExtension::UNDEFINED,
+                                           BuiltInParameters::p_io_00D00D00D,
+                                           2,
+                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                           EOpAtomicMax,
+                                           false);
+constexpr const TFunction atomicAnd_00E00E(
     BuiltInId::atomicAnd_UInt1_UInt1,
     BuiltInName::atomicAnd,
     TExtension::UNDEFINED,
@@ -9988,34 +9464,31 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpAtomicAnd,
     false);
-constexpr const TFunction function_atomicAnd_00D00D(
-    BuiltInId::atomicAnd_Int1_Int1,
-    BuiltInName::atomicAnd,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p_io_00D00D00D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpAtomicAnd,
-    false);
-constexpr const TFunction function_atomicOr_00E00E(
-    BuiltInId::atomicOr_UInt1_UInt1,
-    BuiltInName::atomicOr,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p_io_00E00E00E,
-    2,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpAtomicOr,
-    false);
-constexpr const TFunction function_atomicOr_00D00D(
-    BuiltInId::atomicOr_Int1_Int1,
-    BuiltInName::atomicOr,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p_io_00D00D00D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpAtomicOr,
-    false);
-constexpr const TFunction function_atomicXor_00E00E(
+constexpr const TFunction atomicAnd_00D00D(BuiltInId::atomicAnd_Int1_Int1,
+                                           BuiltInName::atomicAnd,
+                                           TExtension::UNDEFINED,
+                                           BuiltInParameters::p_io_00D00D00D,
+                                           2,
+                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                           EOpAtomicAnd,
+                                           false);
+constexpr const TFunction atomicOr_00E00E(BuiltInId::atomicOr_UInt1_UInt1,
+                                          BuiltInName::atomicOr,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p_io_00E00E00E,
+                                          2,
+                                          StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                          EOpAtomicOr,
+                                          false);
+constexpr const TFunction atomicOr_00D00D(BuiltInId::atomicOr_Int1_Int1,
+                                          BuiltInName::atomicOr,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p_io_00D00D00D,
+                                          2,
+                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                          EOpAtomicOr,
+                                          false);
+constexpr const TFunction atomicXor_00E00E(
     BuiltInId::atomicXor_UInt1_UInt1,
     BuiltInName::atomicXor,
     TExtension::UNDEFINED,
@@ -10024,16 +9497,15 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpAtomicXor,
     false);
-constexpr const TFunction function_atomicXor_00D00D(
-    BuiltInId::atomicXor_Int1_Int1,
-    BuiltInName::atomicXor,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p_io_00D00D00D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpAtomicXor,
-    false);
-constexpr const TFunction function_atomicExchange_00E00E(
+constexpr const TFunction atomicXor_00D00D(BuiltInId::atomicXor_Int1_Int1,
+                                           BuiltInName::atomicXor,
+                                           TExtension::UNDEFINED,
+                                           BuiltInParameters::p_io_00D00D00D,
+                                           2,
+                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                           EOpAtomicXor,
+                                           false);
+constexpr const TFunction atomicExchange_00E00E(
     BuiltInId::atomicExchange_UInt1_UInt1,
     BuiltInName::atomicExchange,
     TExtension::UNDEFINED,
@@ -10042,7 +9514,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpAtomicExchange,
     false);
-constexpr const TFunction function_atomicExchange_00D00D(
+constexpr const TFunction atomicExchange_00D00D(
     BuiltInId::atomicExchange_Int1_Int1,
     BuiltInName::atomicExchange,
     TExtension::UNDEFINED,
@@ -10051,7 +9523,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpAtomicExchange,
     false);
-constexpr const TFunction function_atomicCompSwap_00E00E00E(
+constexpr const TFunction atomicCompSwap_00E00E00E(
     BuiltInId::atomicCompSwap_UInt1_UInt1_UInt1,
     BuiltInName::atomicCompSwap,
     TExtension::UNDEFINED,
@@ -10060,7 +9532,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpAtomicCompSwap,
     false);
-constexpr const TFunction function_atomicCompSwap_00D00D00D(
+constexpr const TFunction atomicCompSwap_00D00D00D(
     BuiltInId::atomicCompSwap_Int1_Int1_Int1,
     BuiltInName::atomicCompSwap,
     TExtension::UNDEFINED,
@@ -10069,115 +9541,103 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpAtomicCompSwap,
     false);
-constexpr const TFunction function_imageSize_00y(
-    BuiltInId::imageSize_Image2D1,
-    BuiltInName::imageSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00y10D30B,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageSize_00z(
-    BuiltInId::imageSize_IImage2D1,
-    BuiltInName::imageSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00z10D30D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageSize_01A(
-    BuiltInId::imageSize_UImage2D1,
-    BuiltInName::imageSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01A10D30E,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageSize_01B(
-    BuiltInId::imageSize_Image3D1,
-    BuiltInName::imageSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01B20D30B,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageSize_01C(
-    BuiltInId::imageSize_IImage3D1,
-    BuiltInName::imageSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01C20D30D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageSize_01D(
-    BuiltInId::imageSize_UImage3D1,
-    BuiltInName::imageSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01D20D30E,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageSize_01E(
-    BuiltInId::imageSize_Image2DArray1,
-    BuiltInName::imageSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01E20D30B,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageSize_01F(
-    BuiltInId::imageSize_IImage2DArray1,
-    BuiltInName::imageSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01F20D30D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageSize_01G(
-    BuiltInId::imageSize_UImage2DArray1,
-    BuiltInName::imageSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01G20D30E,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageSize_01H(
-    BuiltInId::imageSize_ImageCube1,
-    BuiltInName::imageSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01H20D30B,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageSize_01I(
-    BuiltInId::imageSize_IImageCube1,
-    BuiltInName::imageSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01I20D30D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageSize_01J(
-    BuiltInId::imageSize_UImageCube1,
-    BuiltInName::imageSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01J20D30E,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageLoad_00y10D(
+constexpr const TFunction imageSize_00y(BuiltInId::imageSize_Image2D1,
+                                        BuiltInName::imageSize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p00y10D30B,
+                                        1,
+                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                        EOpCallBuiltInFunction,
+                                        false);
+constexpr const TFunction imageSize_00z(BuiltInId::imageSize_IImage2D1,
+                                        BuiltInName::imageSize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p00z10D30D,
+                                        1,
+                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                        EOpCallBuiltInFunction,
+                                        false);
+constexpr const TFunction imageSize_01A(BuiltInId::imageSize_UImage2D1,
+                                        BuiltInName::imageSize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p01A10D30E,
+                                        1,
+                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                        EOpCallBuiltInFunction,
+                                        false);
+constexpr const TFunction imageSize_01B(BuiltInId::imageSize_Image3D1,
+                                        BuiltInName::imageSize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p01B20D30B,
+                                        1,
+                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                        EOpCallBuiltInFunction,
+                                        false);
+constexpr const TFunction imageSize_01C(BuiltInId::imageSize_IImage3D1,
+                                        BuiltInName::imageSize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p01C20D30D,
+                                        1,
+                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                        EOpCallBuiltInFunction,
+                                        false);
+constexpr const TFunction imageSize_01D(BuiltInId::imageSize_UImage3D1,
+                                        BuiltInName::imageSize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p01D20D30E,
+                                        1,
+                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                        EOpCallBuiltInFunction,
+                                        false);
+constexpr const TFunction imageSize_01E(BuiltInId::imageSize_Image2DArray1,
+                                        BuiltInName::imageSize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p01E20D30B,
+                                        1,
+                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                        EOpCallBuiltInFunction,
+                                        false);
+constexpr const TFunction imageSize_01F(BuiltInId::imageSize_IImage2DArray1,
+                                        BuiltInName::imageSize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p01F20D30D,
+                                        1,
+                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                        EOpCallBuiltInFunction,
+                                        false);
+constexpr const TFunction imageSize_01G(BuiltInId::imageSize_UImage2DArray1,
+                                        BuiltInName::imageSize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p01G20D30E,
+                                        1,
+                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                        EOpCallBuiltInFunction,
+                                        false);
+constexpr const TFunction imageSize_01H(BuiltInId::imageSize_ImageCube1,
+                                        BuiltInName::imageSize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p01H20D30B,
+                                        1,
+                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                        EOpCallBuiltInFunction,
+                                        false);
+constexpr const TFunction imageSize_01I(BuiltInId::imageSize_IImageCube1,
+                                        BuiltInName::imageSize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p01I20D30D,
+                                        1,
+                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                        EOpCallBuiltInFunction,
+                                        false);
+constexpr const TFunction imageSize_01J(BuiltInId::imageSize_UImageCube1,
+                                        BuiltInName::imageSize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p01J20D30E,
+                                        1,
+                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                        EOpCallBuiltInFunction,
+                                        false);
+constexpr const TFunction imageLoad_00y10D(
     BuiltInId::imageLoad_Image2D1_Int2,
     BuiltInName::imageLoad,
     TExtension::UNDEFINED,
@@ -10186,16 +9646,15 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageLoad_00z10D(
-    BuiltInId::imageLoad_IImage2D1_Int2,
-    BuiltInName::imageLoad,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00z10D30D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageLoad_01A10D(
+constexpr const TFunction imageLoad_00z10D(BuiltInId::imageLoad_IImage2D1_Int2,
+                                           BuiltInName::imageLoad,
+                                           TExtension::UNDEFINED,
+                                           BuiltInParameters::p00z10D30D,
+                                           2,
+                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                           EOpCallBuiltInFunction,
+                                           false);
+constexpr const TFunction imageLoad_01A10D(
     BuiltInId::imageLoad_UImage2D1_Int2,
     BuiltInName::imageLoad,
     TExtension::UNDEFINED,
@@ -10204,7 +9663,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageLoad_01B20D(
+constexpr const TFunction imageLoad_01B20D(
     BuiltInId::imageLoad_Image3D1_Int3,
     BuiltInName::imageLoad,
     TExtension::UNDEFINED,
@@ -10213,16 +9672,15 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageLoad_01C20D(
-    BuiltInId::imageLoad_IImage3D1_Int3,
-    BuiltInName::imageLoad,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01C20D30D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageLoad_01D20D(
+constexpr const TFunction imageLoad_01C20D(BuiltInId::imageLoad_IImage3D1_Int3,
+                                           BuiltInName::imageLoad,
+                                           TExtension::UNDEFINED,
+                                           BuiltInParameters::p01C20D30D,
+                                           2,
+                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                           EOpCallBuiltInFunction,
+                                           false);
+constexpr const TFunction imageLoad_01D20D(
     BuiltInId::imageLoad_UImage3D1_Int3,
     BuiltInName::imageLoad,
     TExtension::UNDEFINED,
@@ -10231,7 +9689,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageLoad_01E20D(
+constexpr const TFunction imageLoad_01E20D(
     BuiltInId::imageLoad_Image2DArray1_Int3,
     BuiltInName::imageLoad,
     TExtension::UNDEFINED,
@@ -10240,16 +9698,15 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageLoad_01F20D(
-    BuiltInId::imageLoad_IImage2DArray1_Int3,
-    BuiltInName::imageLoad,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01F20D30D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageLoad_01G20D(
+constexpr const TFunction imageLoad_01F20D(BuiltInId::imageLoad_IImage2DArray1_Int3,
+                                           BuiltInName::imageLoad,
+                                           TExtension::UNDEFINED,
+                                           BuiltInParameters::p01F20D30D,
+                                           2,
+                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                           EOpCallBuiltInFunction,
+                                           false);
+constexpr const TFunction imageLoad_01G20D(
     BuiltInId::imageLoad_UImage2DArray1_Int3,
     BuiltInName::imageLoad,
     TExtension::UNDEFINED,
@@ -10258,7 +9715,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageLoad_01H20D(
+constexpr const TFunction imageLoad_01H20D(
     BuiltInId::imageLoad_ImageCube1_Int3,
     BuiltInName::imageLoad,
     TExtension::UNDEFINED,
@@ -10267,16 +9724,15 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageLoad_01I20D(
-    BuiltInId::imageLoad_IImageCube1_Int3,
-    BuiltInName::imageLoad,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01I20D30D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageLoad_01J20D(
+constexpr const TFunction imageLoad_01I20D(BuiltInId::imageLoad_IImageCube1_Int3,
+                                           BuiltInName::imageLoad,
+                                           TExtension::UNDEFINED,
+                                           BuiltInParameters::p01I20D30D,
+                                           2,
+                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                           EOpCallBuiltInFunction,
+                                           false);
+constexpr const TFunction imageLoad_01J20D(
     BuiltInId::imageLoad_UImageCube1_Int3,
     BuiltInName::imageLoad,
     TExtension::UNDEFINED,
@@ -10285,7 +9741,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageStore_00y10D30B(
+constexpr const TFunction imageStore_00y10D30B(
     BuiltInId::imageStore_Image2D1_Int2_Float4,
     BuiltInName::imageStore,
     TExtension::UNDEFINED,
@@ -10294,7 +9750,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageStore_00z10D30D(
+constexpr const TFunction imageStore_00z10D30D(
     BuiltInId::imageStore_IImage2D1_Int2_Int4,
     BuiltInName::imageStore,
     TExtension::UNDEFINED,
@@ -10303,7 +9759,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageStore_01A10D30E(
+constexpr const TFunction imageStore_01A10D30E(
     BuiltInId::imageStore_UImage2D1_Int2_UInt4,
     BuiltInName::imageStore,
     TExtension::UNDEFINED,
@@ -10312,7 +9768,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageStore_01B20D30B(
+constexpr const TFunction imageStore_01B20D30B(
     BuiltInId::imageStore_Image3D1_Int3_Float4,
     BuiltInName::imageStore,
     TExtension::UNDEFINED,
@@ -10321,7 +9777,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageStore_01C20D30D(
+constexpr const TFunction imageStore_01C20D30D(
     BuiltInId::imageStore_IImage3D1_Int3_Int4,
     BuiltInName::imageStore,
     TExtension::UNDEFINED,
@@ -10330,7 +9786,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageStore_01D20D30E(
+constexpr const TFunction imageStore_01D20D30E(
     BuiltInId::imageStore_UImage3D1_Int3_UInt4,
     BuiltInName::imageStore,
     TExtension::UNDEFINED,
@@ -10339,7 +9795,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageStore_01E20D30B(
+constexpr const TFunction imageStore_01E20D30B(
     BuiltInId::imageStore_Image2DArray1_Int3_Float4,
     BuiltInName::imageStore,
     TExtension::UNDEFINED,
@@ -10348,7 +9804,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageStore_01F20D30D(
+constexpr const TFunction imageStore_01F20D30D(
     BuiltInId::imageStore_IImage2DArray1_Int3_Int4,
     BuiltInName::imageStore,
     TExtension::UNDEFINED,
@@ -10357,7 +9813,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageStore_01G20D30E(
+constexpr const TFunction imageStore_01G20D30E(
     BuiltInId::imageStore_UImage2DArray1_Int3_UInt4,
     BuiltInName::imageStore,
     TExtension::UNDEFINED,
@@ -10366,7 +9822,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageStore_01H20D30B(
+constexpr const TFunction imageStore_01H20D30B(
     BuiltInId::imageStore_ImageCube1_Int3_Float4,
     BuiltInName::imageStore,
     TExtension::UNDEFINED,
@@ -10375,7 +9831,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageStore_01I20D30D(
+constexpr const TFunction imageStore_01I20D30D(
     BuiltInId::imageStore_IImageCube1_Int3_Int4,
     BuiltInName::imageStore,
     TExtension::UNDEFINED,
@@ -10384,7 +9840,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageStore_01J20D30E(
+constexpr const TFunction imageStore_01J20D30E(
     BuiltInId::imageStore_UImageCube1_Int3_UInt4,
     BuiltInName::imageStore,
     TExtension::UNDEFINED,
@@ -10393,16 +9849,15 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_memoryBarrier_(
-    BuiltInId::memoryBarrier,
-    BuiltInName::memoryBarrier,
-    TExtension::UNDEFINED,
-    BuiltInParameters::empty,
-    0,
-    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpMemoryBarrier,
-    false);
-constexpr const TFunction function_memoryBarrierAtomicCounter_(
+constexpr const TFunction memoryBarrier_(BuiltInId::memoryBarrier,
+                                         BuiltInName::memoryBarrier,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::empty,
+                                         0,
+                                         StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
+                                         EOpMemoryBarrier,
+                                         false);
+constexpr const TFunction memoryBarrierAtomicCounter_(
     BuiltInId::memoryBarrierAtomicCounter,
     BuiltInName::memoryBarrierAtomicCounter,
     TExtension::UNDEFINED,
@@ -10411,7 +9866,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpMemoryBarrierAtomicCounter,
     false);
-constexpr const TFunction function_memoryBarrierBuffer_(
+constexpr const TFunction memoryBarrierBuffer_(
     BuiltInId::memoryBarrierBuffer,
     BuiltInName::memoryBarrierBuffer,
     TExtension::UNDEFINED,
@@ -10420,7 +9875,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpMemoryBarrierBuffer,
     false);
-constexpr const TFunction function_memoryBarrierImage_(
+constexpr const TFunction memoryBarrierImage_(
     BuiltInId::memoryBarrierImage,
     BuiltInName::memoryBarrierImage,
     TExtension::UNDEFINED,
@@ -10429,16 +9884,15 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpMemoryBarrierImage,
     false);
-constexpr const TFunction function_barrier_(
-    BuiltInId::barrier,
-    BuiltInName::barrier,
-    TExtension::UNDEFINED,
-    BuiltInParameters::empty,
-    0,
-    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpBarrier,
-    false);
-constexpr const TFunction function_memoryBarrierShared_(
+constexpr const TFunction barrier_(BuiltInId::barrier,
+                                   BuiltInName::barrier,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::empty,
+                                   0,
+                                   StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
+                                   EOpBarrier,
+                                   false);
+constexpr const TFunction memoryBarrierShared_(
     BuiltInId::memoryBarrierShared,
     BuiltInName::memoryBarrierShared,
     TExtension::UNDEFINED,
@@ -10447,7 +9901,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpMemoryBarrierShared,
     false);
-constexpr const TFunction function_groupMemoryBarrier_(
+constexpr const TFunction groupMemoryBarrier_(
     BuiltInId::groupMemoryBarrier,
     BuiltInName::groupMemoryBarrier,
     TExtension::UNDEFINED,
@@ -10456,15908 +9910,3895 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpGroupMemoryBarrier,
     false);
-constexpr const TFunction function_EmitVertex_(
-    BuiltInId::EmitVertex,
-    BuiltInName::EmitVertex,
-    TExtension::EXT_geometry_shader,
-    BuiltInParameters::empty,
-    0,
-    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpEmitVertex,
-    false);
-constexpr const TFunction function_EndPrimitive_(
-    BuiltInId::EndPrimitive,
-    BuiltInName::EndPrimitive,
-    TExtension::EXT_geometry_shader,
-    BuiltInParameters::empty,
-    0,
-    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpEndPrimitive,
-    false);
+constexpr const TFunction EmitVertex_(BuiltInId::EmitVertex,
+                                      BuiltInName::EmitVertex,
+                                      TExtension::EXT_geometry_shader,
+                                      BuiltInParameters::empty,
+                                      0,
+                                      StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
+                                      EOpEmitVertex,
+                                      false);
+constexpr const TFunction EndPrimitive_(BuiltInId::EndPrimitive,
+                                        BuiltInName::EndPrimitive,
+                                        TExtension::EXT_geometry_shader,
+                                        BuiltInParameters::empty,
+                                        0,
+                                        StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
+                                        EOpEndPrimitive,
+                                        false);
 
-}  // namespace BuiltInFunction
+}  // namespace Func
 
 namespace BuiltInArray
 {
+using namespace Func;
+using Rule = SymbolRule;
 
-constexpr SymbolEntry mangled[] = {
-    SymbolEntry(ImmutableString("textureProj(00R30B00B"),
-                &BuiltInFunction::function_textureProj_00R30B00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00N10B00B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_texture_00N10B00B,
-                nullptr,
-                300,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::EXT_YUV_target,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("clamp(10D00D00D"),
-                &BuiltInFunction::function_clamp_10D00D00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_PrimitiveID"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInVariable::kVar_gl_PrimitiveID,
-                nullptr,
-                310,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::EXT_geometry_shader,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                &BuiltInVariable::kVar_gl_PrimitiveIDGS,
-                nullptr,
-                310,
-                Shader::GEOMETRY_EXT,
-                &ShBuiltInResources::EXT_geometry_shader),
-    SymbolEntry(ImmutableString("texture(00R10B00B"),
-                &BuiltInFunction::function_texture_00R10B00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("modf(00B00B"),
-                &BuiltInFunction::function_modf_00B00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxAtomicCounterBindings"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxAtomicCounterBindings,
-                310,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("notEqual(20D20D"),
-                &BuiltInFunction::function_notEqual_20D20D,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxComputeImageUniforms"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxComputeImageUniforms,
-                310,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLod(00L20B00B"),
-                &BuiltInFunction::function_textureLod_00L20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("angle_BaseVertex"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInVariable::kVar_angle_BaseVertex,
-                nullptr,
-                0,
-                Shader::VERTEX,
-                &ShBuiltInResources::ANGLE_base_vertex_base_instance,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("determinant(A0B"),
-                &BuiltInFunction::function_determinant_A0B,
-                nullptr,
-                300,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGrad(00I30B10B10B"),
-                &BuiltInFunction::function_textureProjGrad_00I30B10B10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("tanh(30B"),
-                &BuiltInFunction::function_tanh_30B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_Layer"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInVariable::kVar_gl_Layer,
-                nullptr,
-                310,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::EXT_geometry_shader,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                &BuiltInVariable::kVar_gl_LayerGS,
-                nullptr,
-                310,
-                Shader::GEOMETRY_EXT,
-                &ShBuiltInResources::EXT_geometry_shader),
-    SymbolEntry(ImmutableString("textureOffset(00d20B10D"),
-                &BuiltInFunction::function_textureOffset_00d20B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("dFdx(30B"),
-                &BuiltInFunction::function_dFdx_30B,
-                nullptr,
-                300,
-                0,
-                Shader::FRAGMENT,
-                &BuiltInFunction::function_dFdxExt_30B,
-                nullptr,
-                100,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::OES_standard_derivatives,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("clamp(00E00E00E"),
-                &BuiltInFunction::function_clamp_00E00E00E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("transpose(50B"),
-                &BuiltInFunction::function_transpose_50B,
-                nullptr,
-                300,
-                120,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("ldexp(00B00D"),
-                &BuiltInFunction::function_ldexp_00B00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00K20B00D"),
-                &BuiltInFunction::function_textureGather_00K20B00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("lessThanEqual(30B30B"),
-                &BuiltInFunction::function_lessThanEqual_30B30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("greaterThanEqual(20D20D"),
-                &BuiltInFunction::function_greaterThanEqual_20D20D,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("min(20E20E"),
-                &BuiltInFunction::function_min_20E20E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("asin(20B"),
-                &BuiltInFunction::function_asin_20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("outerProduct(20B30B"),
-                &BuiltInFunction::function_outerProduct_20B30B,
-                nullptr,
-                300,
-                120,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitfieldInsert(00D00D00D00D"),
-                &BuiltInFunction::function_bitfieldInsert_00D00D00D00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGrad(00Y30B20B20B"),
-                &BuiltInFunction::function_textureProjGrad_00Y30B20B20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("roundEven(30B"),
-                &BuiltInFunction::function_roundEven_30B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("acosh(20B"),
-                &BuiltInFunction::function_acosh_20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atanh(10B"),
-                &BuiltInFunction::function_atanh_10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mix(20B20B00B"),
-                &BuiltInFunction::function_mix_20B20B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("clamp(10B10B10B"),
-                &BuiltInFunction::function_clamp_10B10B10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGrad(00I10B10B10B"),
-                &BuiltInFunction::function_textureGrad_00I10B10B10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffset(00L20B10D00D"),
-                &BuiltInFunction::function_textureGatherOffset_00L20B10D00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitCount(00D"),
-                &BuiltInFunction::function_bitCount_00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("step(00B20B"),
-                &BuiltInFunction::function_step_00B20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("lessThan(30E30E"),
-                &BuiltInFunction::function_lessThan_30E30E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("uintBitsToFloat(30E"),
-                &BuiltInFunction::function_uintBitsToFloat_30E,
-                nullptr,
-                300,
-                330,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imulExtended(30D30D30D30D"),
-                &BuiltInFunction::function_imulExtended_30D30D30D30D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00K00D"),
-                &BuiltInFunction::function_textureSize_00K00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxGeometryOutputVertices"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxGeometryOutputVertices,
-                310,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_geometry_shader,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("transpose(70B"),
-                &BuiltInFunction::function_transpose_70B,
-                nullptr,
-                300,
-                120,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00S30B20D00B"),
-                &BuiltInFunction::function_textureProjOffset_00S30B20D00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLod(00X30B00B"),
-                &BuiltInFunction::function_textureProjLod_00X30B00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00Y00D"),
-                &BuiltInFunction::function_textureSize_00Y00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MinProgramTexelOffset"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MinProgramTexelOffset,
-                300,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00d20B"),
-                &BuiltInFunction::function_texture_00d20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00J30B00B"),
-                &BuiltInFunction::function_textureProj_00J30B00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atan(10B10B"),
-                &BuiltInFunction::function_atan_10B10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("max(20B00B"),
-                &BuiltInFunction::function_max_20B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("clamp(30B30B30B"),
-                &BuiltInFunction::function_clamp_30B30B30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("EndPrimitive("),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_EndPrimitive_,
-                nullptr,
-                310,
-                Shader::GEOMETRY_EXT,
-                &ShBuiltInResources::EXT_geometry_shader,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLod(00Y20B00B"),
-                &BuiltInFunction::function_textureLod_00Y20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLodOffset(00a20B00B10D"),
-                &BuiltInFunction::function_textureLodOffset_00a20B00B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetchOffset(00Y20D00D20D"),
-                &BuiltInFunction::function_texelFetchOffset_00Y20D00D20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetch(00a20D00D"),
-                &BuiltInFunction::function_texelFetch_00a20D00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("min(20D00D"),
-                &BuiltInFunction::function_min_20D00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageLoad(01F20D"),
-                &BuiltInFunction::function_imageLoad_01F20D,
-                nullptr,
-                310,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("uintBitsToFloat(00E"),
-                &BuiltInFunction::function_uintBitsToFloat_00E,
-                nullptr,
-                300,
-                330,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("lessThanEqual(20B20B"),
-                &BuiltInFunction::function_lessThanEqual_20B20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetch(00N10D00D"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_texelFetch_00N10D00D,
-                nullptr,
-                300,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_YUV_target,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atomicAdd(00D00D"),
-                &BuiltInFunction::function_atomicAdd_00D00D,
-                nullptr,
-                310,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxGeometryOutputComponents"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxGeometryOutputComponents,
-                310,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_geometry_shader,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxGeometryTextureImageUnits"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxGeometryTextureImageUnits,
-                310,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_geometry_shader,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("floatBitsToUint(20B"),
-                &BuiltInFunction::function_floatBitsToUint_20B,
-                nullptr,
-                300,
-                330,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitfieldInsert(20D20D00D00D"),
-                &BuiltInFunction::function_bitfieldInsert_20D20D00D00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxVertexTextureImageUnits"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxVertexTextureImageUnits,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00Z20B"),
-                &BuiltInFunction::function_texture_00Z20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("min(10D10D"),
-                &BuiltInFunction::function_min_10D10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("degrees(20B"),
-                &BuiltInFunction::function_degrees_20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("tanh(00B"),
-                &BuiltInFunction::function_tanh_00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00J30B20D00B"),
-                &BuiltInFunction::function_textureProjOffset_00J30B20D00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("all(30F"),
-                &BuiltInFunction::function_all_30F,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("abs(20D"),
-                &BuiltInFunction::function_abs_20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("abs(20B"),
-                &BuiltInFunction::function_abs_20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("inversesqrt(00B"),
-                &BuiltInFunction::function_inversesqrt_00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("matrixCompMult(D0BD0B"),
-                &BuiltInFunction::function_matrixCompMult_D0BD0B,
-                nullptr,
-                300,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("lessThanEqual(10B10B"),
-                &BuiltInFunction::function_lessThanEqual_10B10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitfieldReverse(20D"),
-                &BuiltInFunction::function_bitfieldReverse_20D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitfieldReverse(20E"),
-                &BuiltInFunction::function_bitfieldReverse_20E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGrad(00S30B20B20B"),
-                &BuiltInFunction::function_textureProjGrad_00S30B20B20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("equal(10D10D"),
-                &BuiltInFunction::function_equal_10D10D,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("max(30D00D"),
-                &BuiltInFunction::function_max_30D00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("groupMemoryBarrier("),
-                &BuiltInFunction::function_groupMemoryBarrier_,
-                nullptr,
-                310,
-                430,
-                Shader::COMPUTE,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mix(00B00B00F"),
-                &BuiltInFunction::function_mix_00B00B00F,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGradOffset(00R20B10B10B10D"),
-                &BuiltInFunction::function_textureProjGradOffset_00R20B10B10B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageLoad(01A10D"),
-                &BuiltInFunction::function_imageLoad_01A10D,
-                nullptr,
-                310,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("intBitsToFloat(30D"),
-                &BuiltInFunction::function_intBitsToFloat_30D,
-                nullptr,
-                300,
-                330,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00I20B"),
-                &BuiltInFunction::function_textureProj_00I20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetch(00I10D00D"),
-                &BuiltInFunction::function_texelFetch_00I10D00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("min(30B30B"),
-                &BuiltInFunction::function_min_30B30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageStore(01I20D30D"),
-                &BuiltInFunction::function_imageStore_01I20D30D,
-                nullptr,
-                310,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxVertexAtomicCounterBuffers"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxVertexAtomicCounterBuffers,
-                310,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLodOffset(00S20B00B20D"),
-                &BuiltInFunction::function_textureLodOffset_00S20B00B20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffset(00R10B10D"),
-                &BuiltInFunction::function_textureGatherOffset_00R10B10D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("acos(00B"),
-                &BuiltInFunction::function_acos_00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("fract(10B"),
-                &BuiltInFunction::function_fract_10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("lessThan(20E20E"),
-                &BuiltInFunction::function_lessThan_20E20E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("intBitsToFloat(00D"),
-                &BuiltInFunction::function_intBitsToFloat_00D,
-                nullptr,
-                300,
-                330,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGradOffset(00J20B20B20B20D"),
-                &BuiltInFunction::function_textureGradOffset_00J20B20B20B20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("memoryBarrierAtomicCounter("),
-                &BuiltInFunction::function_memoryBarrierAtomicCounter_,
-                nullptr,
-                310,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture2DGradEXT(00I10B10B10B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_texture2DGradEXT_00I10B10B10B,
-                nullptr,
-                100,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_shader_texture_lod,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitfieldInsert(00E00E00D00D"),
-                &BuiltInFunction::function_bitfieldInsert_00E00E00D00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atomicXor(00D00D"),
-                &BuiltInFunction::function_atomicXor_00D00D,
-                nullptr,
-                310,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("greaterThan(20B20B"),
-                &BuiltInFunction::function_greaterThan_20B20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLodOffset(00I10B00B10D"),
-                &BuiltInFunction::function_textureLodOffset_00I10B00B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetch(00Y20D00D"),
-                &BuiltInFunction::function_texelFetch_00Y20D00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture2DProjGradEXT(00I30B10B10B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_texture2DProjGradEXT_00I30B10B10B,
-                nullptr,
-                100,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_shader_texture_lod,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGrad(00d20B10B10B"),
-                &BuiltInFunction::function_textureGrad_00d20B10B10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00R30B10D"),
-                &BuiltInFunction::function_textureProjOffset_00R30B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00U20B10D"),
-                &BuiltInFunction::function_textureOffset_00U20B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atan(10B"),
-                &BuiltInFunction::function_atan_10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("modf(10B10B"),
-                &BuiltInFunction::function_modf_10B10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("min(30B00B"),
-                &BuiltInFunction::function_min_30B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("determinant(50B"),
-                &BuiltInFunction::function_determinant_50B,
-                nullptr,
-                300,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("lessThan(20B20B"),
-                &BuiltInFunction::function_lessThan_20B20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atomicAnd(00D00D"),
-                &BuiltInFunction::function_atomicAnd_00D00D,
-                nullptr,
-                310,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_FragColor"),
-                &BuiltInVariable::kVar_gl_FragColor,
-                nullptr,
-                100,
-                0,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("exp(10B"),
-                &BuiltInFunction::function_exp_10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00I20B10D00B"),
-                &BuiltInFunction::function_textureProjOffset_00I20B10D00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("step(00B10B"),
-                &BuiltInFunction::function_step_00B10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitCount(30D"),
-                &BuiltInFunction::function_bitCount_30D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLod(00I20B00B"),
-                &BuiltInFunction::function_textureProjLod_00I20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("unpackUnorm2x16(00E"),
-                &BuiltInFunction::function_unpackUnorm2x16_00E,
-                nullptr,
-                300,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("rgb_2_yuv(20B00H"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_rgb_2_yuv_20B00H,
-                nullptr,
-                300,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_YUV_target,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("sqrt(20B"),
-                &BuiltInFunction::function_sqrt_20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("sign(20B"),
-                &BuiltInFunction::function_sign_20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageStore(01B20D30B"),
-                &BuiltInFunction::function_imageStore_01B20D30B,
-                nullptr,
-                310,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("sign(20D"),
-                &BuiltInFunction::function_sign_20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atanh(00B"),
-                &BuiltInFunction::function_atanh_00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGradOffset(00X10B10B10B10D"),
-                &BuiltInFunction::function_textureGradOffset_00X10B10B10B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_DepthRange"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_DepthRange,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imulExtended(10D10D10D10D"),
-                &BuiltInFunction::function_imulExtended_10D10D10D10D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atan(20B"),
-                &BuiltInFunction::function_atan_20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00M10B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_texture_00M10B,
-                nullptr,
-                300,
-                Shader::ALL,
-                &ShBuiltInResources::OES_EGL_image_external_essl3,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxVertexOutputVectors"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxVertexOutputVectors,
-                300,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00T20B"),
-                &BuiltInFunction::function_texture_00T20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("log2(10B"),
-                &BuiltInFunction::function_log2_10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("min(10B10B"),
-                &BuiltInFunction::function_min_10B10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxImageUnits"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxImageUnits,
-                310,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("pow(10B10B"),
-                &BuiltInFunction::function_pow_10B10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("findLSB(20E"),
-                &BuiltInFunction::function_findLSB_20E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("findLSB(20D"),
-                &BuiltInFunction::function_findLSB_20D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00Y20B"),
-                &BuiltInFunction::function_texture_00Y20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("packUnorm4x8(30B"),
-                &BuiltInFunction::function_packUnorm4x8_30B,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00X10B00B"),
-                &BuiltInFunction::function_texture_00X10B00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("frexp(00B00D"),
-                &BuiltInFunction::function_frexp_00B00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture2D(00I10B"),
-                &BuiltInFunction::function_texture2D_00I10B,
-                nullptr,
-                100,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("not(10F"),
-                &BuiltInFunction::function_notFunc_10F,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetch(00P10D00D"),
-                &BuiltInFunction::function_texelFetch_00P10D00D,
-                nullptr,
-                310,
-                150,
-                Shader::ALL,
-                &BuiltInFunction::function_texelFetchExt_00P10D00D,
-                nullptr,
-                300,
-                Shader::ALL,
-                &ShBuiltInResources::ANGLE_texture_multisample,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("lessThan(10E10E"),
-                &BuiltInFunction::function_lessThan_10E10E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("ceil(20B"),
-                &BuiltInFunction::function_ceil_20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLodOffset(00R10B00B10D"),
-                &BuiltInFunction::function_textureLodOffset_00R10B00B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("clamp(10D10D10D"),
-                &BuiltInFunction::function_clamp_10D10D10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetch(00M10D00D"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_texelFetch_00M10D00D,
-                nullptr,
-                300,
-                Shader::ALL,
-                &ShBuiltInResources::OES_EGL_image_external_essl3,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00O10B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_texture_00O10B,
-                nullptr,
-                300,
-                Shader::ALL,
-                &ShBuiltInResources::ARB_texture_rectangle,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("transpose(F0B"),
-                &BuiltInFunction::function_transpose_F0B,
-                nullptr,
-                300,
-                120,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00Y20B20D00B"),
-                &BuiltInFunction::function_textureOffset_00Y20B20D00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGradOffset(00S20B20B20B20D"),
-                &BuiltInFunction::function_textureGradOffset_00S20B20B20B20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atomicXor(00E00E"),
-                &BuiltInFunction::function_atomicXor_00E00E,
-                nullptr,
-                310,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00R20B10D"),
-                &BuiltInFunction::function_textureProjOffset_00R20B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_FragCoord"),
-                &BuiltInVariable::kVar_gl_FragCoord,
-                nullptr,
-                0,
-                0,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("clamp(30E30E30E"),
-                &BuiltInFunction::function_clamp_30E30E30E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00N30B00B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_textureProj_00N30B00B,
-                nullptr,
-                300,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::EXT_YUV_target,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00R00D"),
-                &BuiltInFunction::function_textureSize_00R00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxFragmentImageUniforms"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxFragmentImageUniforms,
-                310,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("normalize(00B"),
-                &BuiltInFunction::function_normalize_00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00I10B10D"),
-                &BuiltInFunction::function_textureOffset_00I10B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atomicExchange(00E00E"),
-                &BuiltInFunction::function_atomicExchange_00E00E,
-                nullptr,
-                310,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00I30B00B"),
-                &BuiltInFunction::function_textureProj_00I30B00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("acosh(10B"),
-                &BuiltInFunction::function_acosh_10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxCombinedShaderOutputResources"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxCombinedShaderOutputResources,
-                310,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atomicOr(00E00E"),
-                &BuiltInFunction::function_atomicOr_00E00E,
-                nullptr,
-                310,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("min(20B00B"),
-                &BuiltInFunction::function_min_20B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00M30B00B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_textureProj_00M30B00B,
-                nullptr,
-                300,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::OES_EGL_image_external_essl3,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atomicMax(00D00D"),
-                &BuiltInFunction::function_atomicMax_00D00D,
-                nullptr,
-                310,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00M20B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_textureProj_00M20B,
-                nullptr,
-                300,
-                Shader::ALL,
-                &ShBuiltInResources::OES_EGL_image_external_essl3,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00I10B00B"),
-                &BuiltInFunction::function_texture_00I10B00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("reflect(00B00B"),
-                &BuiltInFunction::function_reflect_00B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mod(20B00B"),
-                &BuiltInFunction::function_mod_20B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("lessThan(20D20D"),
-                &BuiltInFunction::function_lessThan_20D20D,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("reflect(10B10B"),
-                &BuiltInFunction::function_reflect_10B10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("floatBitsToUint(10B"),
-                &BuiltInFunction::function_floatBitsToUint_10B,
-                nullptr,
-                300,
-                330,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLod(00J20B00B"),
-                &BuiltInFunction::function_textureLod_00J20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("sqrt(10B"),
-                &BuiltInFunction::function_sqrt_10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLod(00S30B00B"),
-                &BuiltInFunction::function_textureProjLod_00S30B00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("clamp(20E20E20E"),
-                &BuiltInFunction::function_clamp_20E20E20E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atomicAnd(00E00E"),
-                &BuiltInFunction::function_atomicAnd_00E00E,
-                nullptr,
-                310,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("max(20D00D"),
-                &BuiltInFunction::function_max_20D00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00I00D"),
-                &BuiltInFunction::function_textureSize_00I00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxComputeAtomicCounterBuffers"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxComputeAtomicCounterBuffers,
-                310,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_PrimitiveIDIn"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInVariable::kVar_gl_PrimitiveIDIn,
-                nullptr,
-                310,
-                Shader::GEOMETRY_EXT,
-                &ShBuiltInResources::EXT_geometry_shader,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetchOffset(00R10D00D10D"),
-                &BuiltInFunction::function_texelFetchOffset_00R10D00D10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("isinf(30B"),
-                &BuiltInFunction::function_isinf_30B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffset(00a20B10D00D"),
-                &BuiltInFunction::function_textureGatherOffset_00a20B10D00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("lessThan(30B30B"),
-                &BuiltInFunction::function_lessThan_30B30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffset(00I10B10D"),
-                &BuiltInFunction::function_textureGatherOffset_00I10B10D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00L20B10D00B"),
-                &BuiltInFunction::function_textureOffset_00L20B10D00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLodOffset(00X10B00B10D"),
-                &BuiltInFunction::function_textureLodOffset_00X10B00B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00T20B00B"),
-                &BuiltInFunction::function_texture_00T20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00L20B10D"),
-                &BuiltInFunction::function_textureOffset_00L20B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("lessThanEqual(30E30E"),
-                &BuiltInFunction::function_lessThanEqual_30E30E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00J20B20D00B"),
-                &BuiltInFunction::function_textureOffset_00J20B20D00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("min(10E00E"),
-                &BuiltInFunction::function_min_10E00E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("log(30B"),
-                &BuiltInFunction::function_log_30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atomicCounter(00G"),
-                &BuiltInFunction::function_atomicCounter_00G,
-                nullptr,
-                310,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00S30B20D"),
-                &BuiltInFunction::function_textureProjOffset_00S30B20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageLoad(01I20D"),
-                &BuiltInFunction::function_imageLoad_01I20D,
-                nullptr,
-                310,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("round(00B"),
-                &BuiltInFunction::function_round_00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("smoothstep(00B00B20B"),
-                &BuiltInFunction::function_smoothstep_00B00B20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageLoad(01H20D"),
-                &BuiltInFunction::function_imageLoad_01H20D,
-                nullptr,
-                310,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00K20B"),
-                &BuiltInFunction::function_textureGather_00K20B,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitfieldInsert(30D30D00D00D"),
-                &BuiltInFunction::function_bitfieldInsert_30D30D00D00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageStore(01G20D30E"),
-                &BuiltInFunction::function_imageStore_01G20D30E,
-                nullptr,
-                310,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("fwidth(10B"),
-                &BuiltInFunction::function_fwidth_10B,
-                nullptr,
-                300,
-                0,
-                Shader::FRAGMENT,
-                &BuiltInFunction::function_fwidthExt_10B,
-                nullptr,
-                100,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::OES_standard_derivatives,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLod(00R20B00B"),
-                &BuiltInFunction::function_textureProjLod_00R20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("notEqual(30D30D"),
-                &BuiltInFunction::function_notEqual_30D30D,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("refract(10B10B00B"),
-                &BuiltInFunction::function_refract_10B10B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00I20B10D"),
-                &BuiltInFunction::function_textureProjOffset_00I20B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("greaterThan(30D30D"),
-                &BuiltInFunction::function_greaterThan_30D30D,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("greaterThan(10D10D"),
-                &BuiltInFunction::function_greaterThan_10D10D,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00U20B"),
-                &BuiltInFunction::function_texture_00U20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00a00D"),
-                &BuiltInFunction::function_textureSize_00a00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitfieldExtract(10E00D00D"),
-                &BuiltInFunction::function_bitfieldExtract_10E00D00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxDrawBuffers"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxDrawBuffers,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffset(00U20B10D00D"),
-                &BuiltInFunction::function_textureGatherOffset_00U20B10D00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxComputeWorkGroupCount"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxComputeWorkGroupCount,
-                310,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLod(00J30B00B"),
-                &BuiltInFunction::function_textureProjLod_00J30B00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture2DRect(00O10B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_texture2DRect_00O10B,
-                nullptr,
-                100,
-                Shader::ALL,
-                &ShBuiltInResources::ARB_texture_rectangle,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imulExtended(20D20D20D20D"),
-                &BuiltInFunction::function_imulExtended_20D20D20D20D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("any(30F"),
-                &BuiltInFunction::function_any_30F,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("distance(30B30B"),
-                &BuiltInFunction::function_distance_30B30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("greaterThan(20D20D"),
-                &BuiltInFunction::function_greaterThan_20D20D,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00a20B10D"),
-                &BuiltInFunction::function_textureOffset_00a20B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("greaterThan(30B30B"),
-                &BuiltInFunction::function_greaterThan_30B30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("trunc(00B"),
-                &BuiltInFunction::function_trunc_00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("sinh(30B"),
-                &BuiltInFunction::function_sinh_30B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("length(10B"),
-                &BuiltInFunction::function_length_10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("findMSB(10E"),
-                &BuiltInFunction::function_findMSB_10E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("findMSB(10D"),
-                &BuiltInFunction::function_findMSB_10D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("dot(00B00B"),
-                &BuiltInFunction::function_dot_00B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("asinh(20B"),
-                &BuiltInFunction::function_asinh_20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("dot(30B30B"),
-                &BuiltInFunction::function_dot_30B30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitCount(00E"),
-                &BuiltInFunction::function_bitCount_00E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("tan(30B"),
-                &BuiltInFunction::function_tan_30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLod(00T20B00B"),
-                &BuiltInFunction::function_textureLod_00T20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("usubBorrow(20E20E20E"),
-                &BuiltInFunction::function_usubBorrow_20E20E20E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageStore(00z10D30D"),
-                &BuiltInFunction::function_imageStore_00z10D30D,
-                nullptr,
-                310,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGrad(00R30B10B10B"),
-                &BuiltInFunction::function_textureProjGrad_00R30B10B10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("exp2(10B"),
-                &BuiltInFunction::function_exp2_10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00O20B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_textureProj_00O20B,
-                nullptr,
-                300,
-                Shader::ALL,
-                &ShBuiltInResources::ARB_texture_rectangle,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00X20B10D00B"),
-                &BuiltInFunction::function_textureProjOffset_00X20B10D00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("outerProduct(10B20B"),
-                &BuiltInFunction::function_outerProduct_10B20B,
-                nullptr,
-                300,
-                120,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxGeometryAtomicCounterBuffers"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxGeometryAtomicCounterBuffers,
-                310,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_geometry_shader,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGradOffset(00X30B10B10B10D"),
-                &BuiltInFunction::function_textureProjGradOffset_00X30B10B10B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00I10B10D00B"),
-                &BuiltInFunction::function_textureOffset_00I10B10D00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("clamp(30B00B00B"),
-                &BuiltInFunction::function_clamp_30B00B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("inverse(50B"),
-                &BuiltInFunction::function_inverse_50B,
-                nullptr,
-                300,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("dot(10B10B"),
-                &BuiltInFunction::function_dot_10B10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("unpackHalf2x16(00E"),
-                &BuiltInFunction::function_unpackHalf2x16_00E,
-                nullptr,
-                300,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("matrixCompMult(A0BA0B"),
-                &BuiltInFunction::function_matrixCompMult_A0BA0B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture2DProjLod(00I20B00B"),
-                &BuiltInFunction::function_texture2DProjLod_00I20B00B,
-                nullptr,
-                100,
-                0,
-                Shader::VERTEX,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetch(00W20D00D"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_texelFetchExt_00W20D00D,
-                nullptr,
-                310,
-                Shader::ALL,
-                &ShBuiltInResources::OES_texture_storage_multisample_2d_array,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture2DRectProj(00O30B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_texture2DRectProj_00O30B,
-                nullptr,
-                100,
-                Shader::ALL,
-                &ShBuiltInResources::ARB_texture_rectangle,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("radians(20B"),
-                &BuiltInFunction::function_radians_20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGrad(00S20B20B20B"),
-                &BuiltInFunction::function_textureGrad_00S20B20B20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("max(10D00D"),
-                &BuiltInFunction::function_max_10D00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageStore(01J20D30E"),
-                &BuiltInFunction::function_imageStore_01J20D30E,
-                nullptr,
-                310,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("round(30B"),
-                &BuiltInFunction::function_round_30B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxComputeTextureImageUnits"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxComputeTextureImageUnits,
-                310,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("clamp(00D00D00D"),
-                &BuiltInFunction::function_clamp_00D00D00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("sin(30B"),
-                &BuiltInFunction::function_sin_30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("floor(30B"),
-                &BuiltInFunction::function_floor_30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00S30B00B"),
-                &BuiltInFunction::function_textureProj_00S30B00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGrad(00Y20B20B20B"),
-                &BuiltInFunction::function_textureGrad_00Y20B20B20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxCombinedAtomicCounters"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxCombinedAtomicCounters,
-                310,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00L20B00D"),
-                &BuiltInFunction::function_textureGather_00L20B00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGradOffset(00S30B20B20B20D"),
-                &BuiltInFunction::function_textureProjGradOffset_00S30B20B20B20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageStore(01A10D30E"),
-                &BuiltInFunction::function_imageStore_01A10D30E,
-                nullptr,
-                310,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00J20B"),
-                &BuiltInFunction::function_texture_00J20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_PointCoord"),
-                &BuiltInVariable::kVar_gl_PointCoord,
-                nullptr,
-                0,
-                0,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("dFdx(20B"),
-                &BuiltInFunction::function_dFdx_20B,
-                nullptr,
-                300,
-                0,
-                Shader::FRAGMENT,
-                &BuiltInFunction::function_dFdxExt_20B,
-                nullptr,
-                100,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::OES_standard_derivatives,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00X20B"),
-                &BuiltInFunction::function_textureProj_00X20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("max(10E10E"),
-                &BuiltInFunction::function_max_10E10E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("max(30B30B"),
-                &BuiltInFunction::function_max_30B30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("clamp(10E10E10E"),
-                &BuiltInFunction::function_clamp_10E10E10E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetchOffset(00S20D00D20D"),
-                &BuiltInFunction::function_texelFetchOffset_00S20D00D20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00N10B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_texture_00N10B,
-                nullptr,
-                300,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_YUV_target,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00L20B"),
-                &BuiltInFunction::function_texture_00L20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("barrier("),
-                &BuiltInFunction::function_barrier_,
-                nullptr,
-                310,
-                400,
-                Shader::COMPUTE,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxGeometryUniformComponents"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxGeometryUniformComponents,
-                310,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_geometry_shader,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("greaterThanEqual(20E20E"),
-                &BuiltInFunction::function_greaterThanEqual_20E20E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("lessThan(10D10D"),
-                &BuiltInFunction::function_lessThan_10D10D,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetchOffset(00a20D00D10D"),
-                &BuiltInFunction::function_texelFetchOffset_00a20D00D10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGradOffset(00X20B10B10B10D"),
-                &BuiltInFunction::function_textureProjGradOffset_00X20B10B10B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture2DProj(00I20B"),
-                &BuiltInFunction::function_texture2DProj_00I20B,
-                nullptr,
-                100,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture3DProjLod(00J30B00B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_texture3DProjLod_00J30B00B,
-                nullptr,
-                100,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::OES_texture_3D,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("not(20F"),
-                &BuiltInFunction::function_notFunc_20F,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString(""),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("findMSB(20D"),
-                &BuiltInFunction::function_findMSB_20D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("findMSB(20E"),
-                &BuiltInFunction::function_findMSB_20E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetchOffset(00I10D00D10D"),
-                &BuiltInFunction::function_texelFetchOffset_00I10D00D10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00I10B00D"),
-                &BuiltInFunction::function_textureGather_00I10B00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetch(00V10D00D"),
-                &BuiltInFunction::function_texelFetch_00V10D00D,
-                nullptr,
-                310,
-                150,
-                Shader::ALL,
-                &BuiltInFunction::function_texelFetchExt_00V10D00D,
-                nullptr,
-                300,
-                Shader::ALL,
-                &ShBuiltInResources::ANGLE_texture_multisample,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("outerProduct(20B20B"),
-                &BuiltInFunction::function_outerProduct_20B20B,
-                nullptr,
-                300,
-                120,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atan(30B30B"),
-                &BuiltInFunction::function_atan_30B30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("unpackSnorm4x8(00E"),
-                &BuiltInFunction::function_unpackSnorm4x8_00E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitCount(30E"),
-                &BuiltInFunction::function_bitCount_30E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLodOffset(00R20B00B10D"),
-                &BuiltInFunction::function_textureProjLodOffset_00R20B00B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("log(20B"),
-                &BuiltInFunction::function_log_20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("asin(30B"),
-                &BuiltInFunction::function_asin_30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00f20B"),
-                &BuiltInFunction::function_textureGather_00f20B,
-                nullptr,
-                310,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("modf(30B30B"),
-                &BuiltInFunction::function_modf_30B30B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("isnan(20B"),
-                &BuiltInFunction::function_isnan_20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("max(00B00B"),
-                &BuiltInFunction::function_max_00B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("roundEven(20B"),
-                &BuiltInFunction::function_roundEven_20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("fwidth(00B"),
-                &BuiltInFunction::function_fwidth_00B,
-                nullptr,
-                300,
-                0,
-                Shader::FRAGMENT,
-                &BuiltInFunction::function_fwidthExt_00B,
-                nullptr,
-                100,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::OES_standard_derivatives,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGrad(00J30B20B20B"),
-                &BuiltInFunction::function_textureProjGrad_00J30B20B20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("dFdy(10B"),
-                &BuiltInFunction::function_dFdy_10B,
-                nullptr,
-                300,
-                0,
-                Shader::FRAGMENT,
-                &BuiltInFunction::function_dFdyExt_10B,
-                nullptr,
-                100,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::OES_standard_derivatives,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("outerProduct(30B10B"),
-                &BuiltInFunction::function_outerProduct_30B10B,
-                nullptr,
-                300,
-                120,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("floatBitsToInt(30B"),
-                &BuiltInFunction::function_floatBitsToInt_30B,
-                nullptr,
-                300,
-                330,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00J30B"),
-                &BuiltInFunction::function_textureProj_00J30B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_InvocationID"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInVariable::kVar_gl_InvocationID,
-                nullptr,
-                310,
-                Shader::GEOMETRY_EXT,
-                &ShBuiltInResources::EXT_geometry_shader,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("max(30E00E"),
-                &BuiltInFunction::function_max_30E00E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("exp2(20B"),
-                &BuiltInFunction::function_exp2_20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLod(00d20B00B"),
-                &BuiltInFunction::function_textureLod_00d20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("radians(10B"),
-                &BuiltInFunction::function_radians_10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetch(00U20D00D"),
-                &BuiltInFunction::function_texelFetch_00U20D00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxComputeWorkGroupSize"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxComputeWorkGroupSize,
-                310,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_BaseVertex"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInVariable::kVar_gl_BaseVertex,
-                nullptr,
-                300,
-                Shader::VERTEX,
-                &ShBuiltInResources::ANGLE_base_vertex_base_instance,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("max(00D00D"),
-                &BuiltInFunction::function_max_00D00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_LastFragData"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                nullptr,
-                &TSymbolTableBase::mVar_gl_LastFragData,
-                100,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_shader_framebuffer_fetch,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                &TSymbolTableBase::mVar_gl_LastFragDataNV,
-                100,
-                Shader::ALL,
-                &ShBuiltInResources::NV_shader_framebuffer_fetch),
-    SymbolEntry(ImmutableString("ceil(30B"),
-                &BuiltInFunction::function_ceil_30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atomicMin(00E00E"),
-                &BuiltInFunction::function_atomicMin_00E00E,
-                nullptr,
-                310,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxCombinedTextureImageUnits"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxCombinedTextureImageUnits,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitCount(10E"),
-                &BuiltInFunction::function_bitCount_10E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00S20B00B"),
-                &BuiltInFunction::function_texture_00S20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00e20B00B"),
-                &BuiltInFunction::function_textureGather_00e20B00B,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_DepthRangeParameters"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_DepthRangeParameters,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("distance(10B10B"),
-                &BuiltInFunction::function_distance_10B10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("reflect(20B20B"),
-                &BuiltInFunction::function_reflect_20B20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mod(10B00B"),
-                &BuiltInFunction::function_mod_10B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("uintBitsToFloat(10E"),
-                &BuiltInFunction::function_uintBitsToFloat_10E,
-                nullptr,
-                300,
-                330,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGrad(00Z20B20B20B"),
-                &BuiltInFunction::function_textureGrad_00Z20B20B20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("equal(10F10F"),
-                &BuiltInFunction::function_equal_10F10F,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("cosh(00B"),
-                &BuiltInFunction::function_cosh_00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitfieldReverse(00D"),
-                &BuiltInFunction::function_bitfieldReverse_00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitfieldReverse(00E"),
-                &BuiltInFunction::function_bitfieldReverse_00E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("max(20E20E"),
-                &BuiltInFunction::function_max_20E20E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("matrixCompMult(70B70B"),
-                &BuiltInFunction::function_matrixCompMult_70B70B,
-                nullptr,
-                300,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitfieldExtract(30E00D00D"),
-                &BuiltInFunction::function_bitfieldExtract_30E00D00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLod(00I10B00B"),
-                &BuiltInFunction::function_textureLod_00I10B00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("greaterThanEqual(10D10D"),
-                &BuiltInFunction::function_greaterThanEqual_10D10D,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00e30B00B"),
-                &BuiltInFunction::function_texture_00e30B00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLodOffset(00Y20B00B20D"),
-                &BuiltInFunction::function_textureLodOffset_00Y20B00B20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("log2(00B"),
-                &BuiltInFunction::function_log2_00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_LastFragColor"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInVariable::kVar_gl_LastFragColor,
-                nullptr,
-                100,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::NV_shader_framebuffer_fetch,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("abs(10D"),
-                &BuiltInFunction::function_abs_10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("abs(10B"),
-                &BuiltInFunction::function_abs_10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("acos(30B"),
-                &BuiltInFunction::function_acos_30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("tanh(10B"),
-                &BuiltInFunction::function_tanh_10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("degrees(30B"),
-                &BuiltInFunction::function_degrees_30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_FragDepthEXT"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                nullptr,
-                &TSymbolTableBase::mVar_gl_FragDepthEXT,
-                100,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_frag_depth,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("dFdx(10B"),
-                &BuiltInFunction::function_dFdx_10B,
-                nullptr,
-                300,
-                0,
-                Shader::FRAGMENT,
-                &BuiltInFunction::function_dFdxExt_10B,
-                nullptr,
-                100,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::OES_standard_derivatives,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00I30B10D"),
-                &BuiltInFunction::function_textureProjOffset_00I30B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitfieldReverse(30E"),
-                &BuiltInFunction::function_bitfieldReverse_30E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitfieldReverse(30D"),
-                &BuiltInFunction::function_bitfieldReverse_30D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("inversesqrt(30B"),
-                &BuiltInFunction::function_inversesqrt_30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_LocalInvocationID"),
-                &BuiltInVariable::kVar_gl_LocalInvocationID,
-                nullptr,
-                310,
-                0,
-                Shader::COMPUTE,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString(""),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("clamp(00B00B00B"),
-                &BuiltInFunction::function_clamp_00B00B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00d10B"),
-                &BuiltInFunction::function_textureGather_00d10B,
-                nullptr,
-                310,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("frexp(20B20D"),
-                &BuiltInFunction::function_frexp_20B20D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("intBitsToFloat(20D"),
-                &BuiltInFunction::function_intBitsToFloat_20D,
-                nullptr,
-                300,
-                330,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("fract(00B"),
-                &BuiltInFunction::function_fract_00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_FragDepth"),
-                &BuiltInVariable::kVar_gl_FragDepth,
-                nullptr,
-                300,
-                0,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("min(30E00E"),
-                &BuiltInFunction::function_min_30E00E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("exp(20B"),
-                &BuiltInFunction::function_exp_20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("equal(20B20B"),
-                &BuiltInFunction::function_equal_20B20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLodOffset(00X20B00B10D"),
-                &BuiltInFunction::function_textureProjLodOffset_00X20B00B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("acosh(00B"),
-                &BuiltInFunction::function_acosh_00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("log(10B"),
-                &BuiltInFunction::function_log_10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLodOffset(00S30B00B20D"),
-                &BuiltInFunction::function_textureProjLodOffset_00S30B00B20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("sinh(20B"),
-                &BuiltInFunction::function_sinh_20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00L20B"),
-                &BuiltInFunction::function_textureGather_00L20B,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("reflect(30B30B"),
-                &BuiltInFunction::function_reflect_30B30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("outerProduct(30B20B"),
-                &BuiltInFunction::function_outerProduct_30B20B,
-                nullptr,
-                300,
-                120,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00U20B00B"),
-                &BuiltInFunction::function_texture_00U20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00S20B"),
-                &BuiltInFunction::function_texture_00S20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("outerProduct(20B10B"),
-                &BuiltInFunction::function_outerProduct_20B10B,
-                nullptr,
-                300,
-                120,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("umulExtended(10E10E10E10E"),
-                &BuiltInFunction::function_umulExtended_10E10E10E10E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00Z20B00B"),
-                &BuiltInFunction::function_texture_00Z20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGradOffset(00a20B10B10B10D"),
-                &BuiltInFunction::function_textureGradOffset_00a20B10B10B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("notEqual(20F20F"),
-                &BuiltInFunction::function_notEqual_20F20F,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mod(30B30B"),
-                &BuiltInFunction::function_mod_30B30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitfieldExtract(10D00D00D"),
-                &BuiltInFunction::function_bitfieldExtract_10D00D00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("sign(30B"),
-                &BuiltInFunction::function_sign_30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("sign(30D"),
-                &BuiltInFunction::function_sign_30D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("pow(00B00B"),
-                &BuiltInFunction::function_pow_00B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mod(00B00B"),
-                &BuiltInFunction::function_mod_00B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00Y20B00B"),
-                &BuiltInFunction::function_texture_00Y20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("notEqual(30B30B"),
-                &BuiltInFunction::function_notEqual_30B30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("roundEven(10B"),
-                &BuiltInFunction::function_roundEven_10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture2DProjLodEXT(00I30B00B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_texture2DProjLodEXT_00I30B00B,
-                nullptr,
-                100,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::EXT_shader_texture_lod,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atanh(30B"),
-                &BuiltInFunction::function_atanh_30B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("dFdy(20B"),
-                &BuiltInFunction::function_dFdy_20B,
-                nullptr,
-                300,
-                0,
-                Shader::FRAGMENT,
-                &BuiltInFunction::function_dFdyExt_20B,
-                nullptr,
-                100,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::OES_standard_derivatives,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00Y30B"),
-                &BuiltInFunction::function_textureProj_00Y30B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitCount(20D"),
-                &BuiltInFunction::function_bitCount_20D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("step(00B00B"),
-                &BuiltInFunction::function_step_00B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetch(00L20D00D"),
-                &BuiltInFunction::function_texelFetch_00L20D00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSize(00y"),
-                &BuiltInFunction::function_imageSize_00y,
-                nullptr,
-                310,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("isinf(00B"),
-                &BuiltInFunction::function_isinf_00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSize(00z"),
-                &BuiltInFunction::function_imageSize_00z,
-                nullptr,
-                310,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("distance(20B20B"),
-                &BuiltInFunction::function_distance_20B20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGrad(00U20B10B10B"),
-                &BuiltInFunction::function_textureGrad_00U20B10B10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("uaddCarry(30E30E30E"),
-                &BuiltInFunction::function_uaddCarry_30E30E30E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mod(30B00B"),
-                &BuiltInFunction::function_mod_30B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00K20B00B"),
-                &BuiltInFunction::function_texture_00K20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxCombinedImageUniforms"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxCombinedImageUniforms,
-                310,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("yuv_2_rgb(20B00H"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_yuv_2_rgb_20B00H,
-                nullptr,
-                300,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_YUV_target,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00f20B00B"),
-                &BuiltInFunction::function_textureGather_00f20B00B,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("greaterThan(20E20E"),
-                &BuiltInFunction::function_greaterThan_20E20E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGrad(00a20B10B10B"),
-                &BuiltInFunction::function_textureGrad_00a20B10B10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00U20B10D00B"),
-                &BuiltInFunction::function_textureOffset_00U20B10D00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("intBitsToFloat(10D"),
-                &BuiltInFunction::function_intBitsToFloat_10D,
-                nullptr,
-                300,
-                330,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00J20B00B"),
-                &BuiltInFunction::function_texture_00J20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("refract(20B20B00B"),
-                &BuiltInFunction::function_refract_20B20B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLod(00I30B00B"),
-                &BuiltInFunction::function_textureProjLod_00I30B00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("refract(00B00B00B"),
-                &BuiltInFunction::function_refract_00B00B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("findLSB(10D"),
-                &BuiltInFunction::function_findLSB_10D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("findLSB(10E"),
-                &BuiltInFunction::function_findLSB_10E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mix(10B10B10F"),
-                &BuiltInFunction::function_mix_10B10B10F,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mix(10B10B10B"),
-                &BuiltInFunction::function_mix_10B10B10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00Y30B00B"),
-                &BuiltInFunction::function_textureProj_00Y30B00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture3D(00J20B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_texture3D_00J20B,
-                nullptr,
-                100,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::OES_texture_3D,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("transpose(D0B"),
-                &BuiltInFunction::function_transpose_D0B,
-                nullptr,
-                300,
-                120,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("log2(30B"),
-                &BuiltInFunction::function_log2_30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGrad(00J20B20B20B"),
-                &BuiltInFunction::function_textureGrad_00J20B20B20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGrad(00d30B10B10B"),
-                &BuiltInFunction::function_textureProjGrad_00d30B10B10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("fract(30B"),
-                &BuiltInFunction::function_fract_30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_LocalInvocationIndex"),
-                &BuiltInVariable::kVar_gl_LocalInvocationIndex,
-                nullptr,
-                310,
-                0,
-                Shader::COMPUTE,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00J00D"),
-                &BuiltInFunction::function_textureSize_00J00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffset(00I10B10D00D"),
-                &BuiltInFunction::function_textureGatherOffset_00I10B10D00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00X10B00D"),
-                &BuiltInFunction::function_textureGather_00X10B00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetchOffset(00U20D00D10D"),
-                &BuiltInFunction::function_texelFetchOffset_00U20D00D10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLodOffset(00Y30B00B20D"),
-                &BuiltInFunction::function_textureProjLodOffset_00Y30B00B20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00e00D"),
-                &BuiltInFunction::function_textureSize_00e00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("notEqual(20E20E"),
-                &BuiltInFunction::function_notEqual_20E20E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLodOffset(00d20B00B10D"),
-                &BuiltInFunction::function_textureLodOffset_00d20B00B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("inverse(A0B"),
-                &BuiltInFunction::function_inverse_A0B,
-                nullptr,
-                300,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageStore(01E20D30B"),
-                &BuiltInFunction::function_imageStore_01E20D30B,
-                nullptr,
-                310,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGrad(00X20B10B10B"),
-                &BuiltInFunction::function_textureProjGrad_00X20B10B10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("max(30E30E"),
-                &BuiltInFunction::function_max_30E30E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("isnan(30B"),
-                &BuiltInFunction::function_isnan_30B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imulExtended(00D00D00D00D"),
-                &BuiltInFunction::function_imulExtended_00D00D00D00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_in"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                nullptr,
-                &TSymbolTableBase::mVar_gl_in,
-                310,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_geometry_shader,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atan(20B20B"),
-                &BuiltInFunction::function_atan_20B20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("usubBorrow(00E00E00E"),
-                &BuiltInFunction::function_usubBorrow_00E00E00E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLodOffset(00J30B00B20D"),
-                &BuiltInFunction::function_textureProjLodOffset_00J30B00B20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("frexp(30B30D"),
-                &BuiltInFunction::function_frexp_30B30D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_SecondaryFragDataEXT"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                nullptr,
-                &TSymbolTableBase::mVar_gl_SecondaryFragDataEXT,
-                100,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_blend_func_extended,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("min(30E30E"),
-                &BuiltInFunction::function_min_30E30E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture2DProj(00I30B00B"),
-                &BuiltInFunction::function_texture2DProj_00I30B00B,
-                nullptr,
-                100,
-                0,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureCubeGradEXT(00K20B20B20B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_textureCubeGradEXT_00K20B20B20B,
-                nullptr,
-                100,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_shader_texture_lod,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00I10B"),
-                &BuiltInFunction::function_texture_00I10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("min(00B00B"),
-                &BuiltInFunction::function_min_00B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_InstanceID"),
-                &BuiltInVariable::kVar_gl_InstanceID,
-                nullptr,
-                300,
-                0,
-                Shader::VERTEX,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetch(00c20D00D"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_texelFetchExt_00c20D00D,
-                nullptr,
-                310,
-                Shader::ALL,
-                &ShBuiltInResources::OES_texture_storage_multisample_2d_array,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxVertexImageUniforms"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxVertexImageUniforms,
-                310,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("sqrt(00B"),
-                &BuiltInFunction::function_sqrt_00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("normalize(20B"),
-                &BuiltInFunction::function_normalize_20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxFragmentAtomicCounterBuffers"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxFragmentAtomicCounterBuffers,
-                310,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_WorkGroupID"),
-                &BuiltInVariable::kVar_gl_WorkGroupID,
-                nullptr,
-                310,
-                0,
-                Shader::COMPUTE,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("degrees(00B"),
-                &BuiltInFunction::function_degrees_00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("inverse(F0B"),
-                &BuiltInFunction::function_inverse_F0B,
-                nullptr,
-                300,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("min(20E00E"),
-                &BuiltInFunction::function_min_20E00E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLod(00R30B00B"),
-                &BuiltInFunction::function_textureProjLod_00R30B00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00P"),
-                &BuiltInFunction::function_textureSize_00P,
-                nullptr,
-                310,
-                150,
-                Shader::ALL,
-                &BuiltInFunction::function_textureSizeExt_00P,
-                nullptr,
-                300,
-                Shader::ALL,
-                &ShBuiltInResources::ANGLE_texture_multisample,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGradOffset(00d20B10B10B10D"),
-                &BuiltInFunction::function_textureGradOffset_00d20B10B10B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLodOffset(00R30B00B10D"),
-                &BuiltInFunction::function_textureProjLodOffset_00R30B00B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atan(00B"),
-                &BuiltInFunction::function_atan_00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atomicExchange(00D00D"),
-                &BuiltInFunction::function_atomicExchange_00D00D,
-                nullptr,
-                310,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffset(00R10B10D00D"),
-                &BuiltInFunction::function_textureGatherOffset_00R10B10D00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageStore(00y10D30B"),
-                &BuiltInFunction::function_imageStore_00y10D30B,
-                nullptr,
-                310,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxGeometryAtomicCounters"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxGeometryAtomicCounters,
-                310,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_geometry_shader,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture2D(00I10B00B"),
-                &BuiltInFunction::function_texture2D_00I10B00B,
-                nullptr,
-                100,
-                0,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00X20B00B"),
-                &BuiltInFunction::function_textureProj_00X20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("clamp(20D20D20D"),
-                &BuiltInFunction::function_clamp_20D20D20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("greaterThan(30E30E"),
-                &BuiltInFunction::function_greaterThan_30E30E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("frexp(10B10D"),
-                &BuiltInFunction::function_frexp_10B10D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("max(10E00E"),
-                &BuiltInFunction::function_max_10E00E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("smoothstep(00B00B10B"),
-                &BuiltInFunction::function_smoothstep_00B00B10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_GlobalInvocationID"),
-                &BuiltInVariable::kVar_gl_GlobalInvocationID,
-                nullptr,
-                310,
-                0,
-                Shader::COMPUTE,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("matrixCompMult(60B60B"),
-                &BuiltInFunction::function_matrixCompMult_60B60B,
-                nullptr,
-                300,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("memoryBarrierShared("),
-                &BuiltInFunction::function_memoryBarrierShared_,
-                nullptr,
-                310,
-                430,
-                Shader::COMPUTE,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("normalize(10B"),
-                &BuiltInFunction::function_normalize_10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("unpackSnorm2x16(00E"),
-                &BuiltInFunction::function_unpackSnorm2x16_00E,
-                nullptr,
-                300,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageLoad(00z10D"),
-                &BuiltInFunction::function_imageLoad_00z10D,
-                nullptr,
-                310,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("lessThan(30D30D"),
-                &BuiltInFunction::function_lessThan_30D30D,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atan(00B00B"),
-                &BuiltInFunction::function_atan_00B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitfieldExtract(20D00D00D"),
-                &BuiltInFunction::function_bitfieldExtract_20D00D00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00L20B00B"),
-                &BuiltInFunction::function_texture_00L20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("notEqual(10B10B"),
-                &BuiltInFunction::function_notEqual_10B10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageLoad(01G20D"),
-                &BuiltInFunction::function_imageLoad_01G20D,
-                nullptr,
-                310,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitfieldExtract(00E00D00D"),
-                &BuiltInFunction::function_bitfieldExtract_00E00D00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atomicCompSwap(00D00D00D"),
-                &BuiltInFunction::function_atomicCompSwap_00D00D00D,
-                nullptr,
-                310,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("trunc(30B"),
-                &BuiltInFunction::function_trunc_30B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("matrixCompMult(E0BE0B"),
-                &BuiltInFunction::function_matrixCompMult_E0BE0B,
-                nullptr,
-                300,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("length(00B"),
-                &BuiltInFunction::function_length_00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("any(20F"),
-                &BuiltInFunction::function_any_20F,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_PerVertex"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                nullptr,
-                &TSymbolTableBase::mVar_gl_PerVertex,
-                310,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_geometry_shader,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00X30B00B"),
-                &BuiltInFunction::function_textureProj_00X30B00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_ViewID_OVR"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInVariable::kVar_gl_ViewID_OVR,
-                nullptr,
-                300,
-                Shader::NOT_COMPUTE,
-                &ShBuiltInResources::OVR_multiview,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("floor(10B"),
-                &BuiltInFunction::function_floor_10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("sin(10B"),
-                &BuiltInFunction::function_sin_10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00N00D"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_textureSize_00N00D,
-                nullptr,
-                300,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_YUV_target,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetchOffset(00J20D00D20D"),
-                &BuiltInFunction::function_texelFetchOffset_00J20D00D20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("tan(00B"),
-                &BuiltInFunction::function_tan_00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mod(20B20B"),
-                &BuiltInFunction::function_mod_20B20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageLoad(01J20D"),
-                &BuiltInFunction::function_imageLoad_01J20D,
-                nullptr,
-                310,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_WorkGroupSize"),
-                &BuiltInVariable::kVar_gl_WorkGroupSize,
-                nullptr,
-                310,
-                0,
-                Shader::COMPUTE,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("asinh(30B"),
-                &BuiltInFunction::function_asinh_30B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("outerProduct(10B30B"),
-                &BuiltInFunction::function_outerProduct_10B30B,
-                nullptr,
-                300,
-                120,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureCube(00K20B"),
-                &BuiltInFunction::function_textureCube_00K20B,
-                nullptr,
-                100,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00c"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_textureSizeExt_00c,
-                nullptr,
-                310,
-                Shader::ALL,
-                &ShBuiltInResources::OES_texture_storage_multisample_2d_array,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00b"),
-                &BuiltInFunction::function_textureSize_00b,
-                nullptr,
-                310,
-                150,
-                Shader::ALL,
-                &BuiltInFunction::function_textureSizeExt_00b,
-                nullptr,
-                300,
-                Shader::ALL,
-                &ShBuiltInResources::ANGLE_texture_multisample,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("cos(00B"),
-                &BuiltInFunction::function_cos_00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("min(20B20B"),
-                &BuiltInFunction::function_min_20B20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGradOffset(00f30B10B10B10D"),
-                &BuiltInFunction::function_textureGradOffset_00f30B10B10B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("max(20D20D"),
-                &BuiltInFunction::function_max_20D20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00I30B"),
-                &BuiltInFunction::function_textureProj_00I30B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("max(10D10D"),
-                &BuiltInFunction::function_max_10D10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00a20B10D00B"),
-                &BuiltInFunction::function_textureOffset_00a20B10D00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00X10B"),
-                &BuiltInFunction::function_textureGather_00X10B,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("pow(30B30B"),
-                &BuiltInFunction::function_pow_30B30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00a20B"),
-                &BuiltInFunction::function_textureGather_00a20B,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("smoothstep(10B10B10B"),
-                &BuiltInFunction::function_smoothstep_10B10B10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00O30B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_textureProj_00O30B,
-                nullptr,
-                300,
-                Shader::ALL,
-                &ShBuiltInResources::ARB_texture_rectangle,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffset(00d10B00B10D"),
-                &BuiltInFunction::function_textureGatherOffset_00d10B00B10D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("refract(30B30B00B"),
-                &BuiltInFunction::function_refract_30B30B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitfieldInsert(20E20E00D00D"),
-                &BuiltInFunction::function_bitfieldInsert_20E20E00D00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("floor(20B"),
-                &BuiltInFunction::function_floor_20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("equal(20E20E"),
-                &BuiltInFunction::function_equal_20E20E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mix(00B00B00B"),
-                &BuiltInFunction::function_mix_00B00B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSize(01B"),
-                &BuiltInFunction::function_imageSize_01B,
-                nullptr,
-                310,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("greaterThanEqual(20B20B"),
-                &BuiltInFunction::function_greaterThanEqual_20B20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("uaddCarry(00E00E00E"),
-                &BuiltInFunction::function_uaddCarry_00E00E00E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("sin(20B"),
-                &BuiltInFunction::function_sin_20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00Q"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_textureSizeExt_00Q,
-                nullptr,
-                310,
-                Shader::ALL,
-                &ShBuiltInResources::OES_texture_storage_multisample_2d_array,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("round(20B"),
-                &BuiltInFunction::function_round_20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("matrixCompMult(90B90B"),
-                &BuiltInFunction::function_matrixCompMult_90B90B,
-                nullptr,
-                300,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLod(00d30B00B"),
-                &BuiltInFunction::function_textureProjLod_00d30B00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00W"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_textureSizeExt_00W,
-                nullptr,
-                310,
-                Shader::ALL,
-                &ShBuiltInResources::OES_texture_storage_multisample_2d_array,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLod(00X20B00B"),
-                &BuiltInFunction::function_textureProjLod_00X20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxCombinedAtomicCounterBuffers"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxCombinedAtomicCounterBuffers,
-                310,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("isnan(00B"),
-                &BuiltInFunction::function_isnan_00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("umulExtended(30E30E30E30E"),
-                &BuiltInFunction::function_umulExtended_30E30E30E30E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("faceforward(30B30B30B"),
-                &BuiltInFunction::function_faceforward_30B30B30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGradOffset(00Y20B20B20B20D"),
-                &BuiltInFunction::function_textureGradOffset_00Y20B20B20B20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("clamp(30E00E00E"),
-                &BuiltInFunction::function_clamp_30E00E00E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("asin(00B"),
-                &BuiltInFunction::function_asin_00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("ceil(00B"),
-                &BuiltInFunction::function_ceil_00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture3D(00J20B00B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_texture3D_00J20B00B,
-                nullptr,
-                100,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::OES_texture_3D,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("distance(00B00B"),
-                &BuiltInFunction::function_distance_00B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00a20B"),
-                &BuiltInFunction::function_texture_00a20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffset(00a20B10D"),
-                &BuiltInFunction::function_textureGatherOffset_00a20B10D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGrad(00f30B10B10B"),
-                &BuiltInFunction::function_textureGrad_00f30B10B10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture2DProj(00I30B"),
-                &BuiltInFunction::function_texture2DProj_00I30B,
-                nullptr,
-                100,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("modf(20B20B"),
-                &BuiltInFunction::function_modf_20B20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGradOffset(00I10B10B10B10D"),
-                &BuiltInFunction::function_textureGradOffset_00I10B10B10B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("notEqual(30E30E"),
-                &BuiltInFunction::function_notEqual_30E30E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00I10B"),
-                &BuiltInFunction::function_textureGather_00I10B,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("lessThanEqual(10E10E"),
-                &BuiltInFunction::function_lessThanEqual_10E10E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("inversesqrt(20B"),
-                &BuiltInFunction::function_inversesqrt_20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLodOffset(00J20B00B20D"),
-                &BuiltInFunction::function_textureLodOffset_00J20B00B20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("min(30D30D"),
-                &BuiltInFunction::function_min_30D30D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00R10B10D00B"),
-                &BuiltInFunction::function_textureOffset_00R10B10D00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGrad(00e30B20B20B"),
-                &BuiltInFunction::function_textureGrad_00e30B20B20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atomicAdd(00E00E"),
-                &BuiltInFunction::function_atomicAdd_00E00E,
-                nullptr,
-                310,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxGeometryInputComponents"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxGeometryInputComponents,
-                310,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_geometry_shader,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("findMSB(30E"),
-                &BuiltInFunction::function_findMSB_30E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("findMSB(30D"),
-                &BuiltInFunction::function_findMSB_30D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGrad(00X10B10B10B"),
-                &BuiltInFunction::function_textureGrad_00X10B10B10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("length(30B"),
-                &BuiltInFunction::function_length_30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("greaterThanEqual(30E30E"),
-                &BuiltInFunction::function_greaterThanEqual_30E30E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("fwidth(30B"),
-                &BuiltInFunction::function_fwidth_30B,
-                nullptr,
-                300,
-                0,
-                Shader::FRAGMENT,
-                &BuiltInFunction::function_fwidthExt_30B,
-                nullptr,
-                100,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::OES_standard_derivatives,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGrad(00K20B20B20B"),
-                &BuiltInFunction::function_textureGrad_00K20B20B20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mix(20B20B20F"),
-                &BuiltInFunction::function_mix_20B20B20F,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetch(00S20D00D"),
-                &BuiltInFunction::function_texelFetch_00S20D00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGradOffset(00U20B10B10B10D"),
-                &BuiltInFunction::function_textureGradOffset_00U20B10B10B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mix(20B20B20B"),
-                &BuiltInFunction::function_mix_20B20B20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("floatBitsToInt(10B"),
-                &BuiltInFunction::function_floatBitsToInt_10B,
-                nullptr,
-                300,
-                330,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("max(10B00B"),
-                &BuiltInFunction::function_max_10B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffset(00L20B10D"),
-                &BuiltInFunction::function_textureGatherOffset_00L20B10D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLod(00a20B00B"),
-                &BuiltInFunction::function_textureLod_00a20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("any(10F"),
-                &BuiltInFunction::function_any_10F,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGradOffset(00d30B10B10B10D"),
-                &BuiltInFunction::function_textureProjGradOffset_00d30B10B10B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00N30B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_textureProj_00N30B,
-                nullptr,
-                300,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_YUV_target,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxProgramTexelOffset"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxProgramTexelOffset,
-                300,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("exp2(30B"),
-                &BuiltInFunction::function_exp2_30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetchOffset(00L20D00D10D"),
-                &BuiltInFunction::function_texelFetchOffset_00L20D00D10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("equal(30D30D"),
-                &BuiltInFunction::function_equal_30D30D,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture3DProj(00J30B00B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_texture3DProj_00J30B00B,
-                nullptr,
-                100,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::OES_texture_3D,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("packSnorm2x16(10B"),
-                &BuiltInFunction::function_packSnorm2x16_10B,
-                nullptr,
-                300,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("floatBitsToUint(30B"),
-                &BuiltInFunction::function_floatBitsToUint_30B,
-                nullptr,
-                300,
-                330,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("lessThanEqual(30D30D"),
-                &BuiltInFunction::function_lessThanEqual_30D30D,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxGeometryImageUniforms"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxGeometryImageUniforms,
-                310,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_geometry_shader,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageLoad(00y10D"),
-                &BuiltInFunction::function_imageLoad_00y10D,
-                nullptr,
-                310,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("asinh(00B"),
-                &BuiltInFunction::function_asinh_00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00R10B10D"),
-                &BuiltInFunction::function_textureOffset_00R10B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("greaterThanEqual(10E10E"),
-                &BuiltInFunction::function_greaterThanEqual_10E10E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGradOffset(00I30B10B10B10D"),
-                &BuiltInFunction::function_textureProjGradOffset_00I30B10B10B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00Z20B"),
-                &BuiltInFunction::function_textureGather_00Z20B,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00X10B10D"),
-                &BuiltInFunction::function_textureOffset_00X10B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("cosh(30B"),
-                &BuiltInFunction::function_cosh_30B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00d20B10D00B"),
-                &BuiltInFunction::function_textureOffset_00d20B10D00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00R10B"),
-                &BuiltInFunction::function_texture_00R10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00S20B20D00B"),
-                &BuiltInFunction::function_textureOffset_00S20B20D00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("usubBorrow(30E30E30E"),
-                &BuiltInFunction::function_usubBorrow_30E30E30E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("radians(00B"),
-                &BuiltInFunction::function_radians_00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00R20B10D00B"),
-                &BuiltInFunction::function_textureProjOffset_00R20B10D00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("ldexp(30B30D"),
-                &BuiltInFunction::function_ldexp_30B30D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("max(30B00B"),
-                &BuiltInFunction::function_max_30B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("min(20D20D"),
-                &BuiltInFunction::function_min_20D20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("step(10B10B"),
-                &BuiltInFunction::function_step_10B10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxDualSourceDrawBuffersEXT"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxDualSourceDrawBuffersEXT,
-                0,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_blend_func_extended,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("step(30B30B"),
-                &BuiltInFunction::function_step_30B30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitfieldReverse(10E"),
-                &BuiltInFunction::function_bitfieldReverse_10E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitfieldReverse(10D"),
-                &BuiltInFunction::function_bitfieldReverse_10D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture3DProj(00J30B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_texture3DProj_00J30B,
-                nullptr,
-                100,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::OES_texture_3D,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("matrixCompMult(B0BB0B"),
-                &BuiltInFunction::function_matrixCompMult_B0BB0B,
-                nullptr,
-                300,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("transpose(E0B"),
-                &BuiltInFunction::function_transpose_E0B,
-                nullptr,
-                300,
-                120,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("cross(20B20B"),
-                &BuiltInFunction::function_cross_20B20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("all(10F"),
-                &BuiltInFunction::function_all_10F,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("clamp(20B00B00B"),
-                &BuiltInFunction::function_clamp_20B00B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("tanh(20B"),
-                &BuiltInFunction::function_tanh_20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("dFdx(00B"),
-                &BuiltInFunction::function_dFdx_00B,
-                nullptr,
-                300,
-                0,
-                Shader::FRAGMENT,
-                &BuiltInFunction::function_dFdxExt_00B,
-                nullptr,
-                100,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::OES_standard_derivatives,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("matrixCompMult(F0BF0B"),
-                &BuiltInFunction::function_matrixCompMult_F0BF0B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("abs(00D"),
-                &BuiltInFunction::function_abs_00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("abs(00B"),
-                &BuiltInFunction::function_abs_00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLod(00R10B00B"),
-                &BuiltInFunction::function_textureLod_00R10B00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("step(20B20B"),
-                &BuiltInFunction::function_step_20B20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxFragmentAtomicCounters"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxFragmentAtomicCounters,
-                310,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLodOffset(00U20B00B10D"),
-                &BuiltInFunction::function_textureLodOffset_00U20B00B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00R20B00B"),
-                &BuiltInFunction::function_textureProj_00R20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("faceforward(20B20B20B"),
-                &BuiltInFunction::function_faceforward_20B20B20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSize(01E"),
-                &BuiltInFunction::function_imageSize_01E,
-                nullptr,
-                310,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("acos(20B"),
-                &BuiltInFunction::function_acos_20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetch(00X10D00D"),
-                &BuiltInFunction::function_texelFetch_00X10D00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("sinh(00B"),
-                &BuiltInFunction::function_sinh_00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSize(01A"),
-                &BuiltInFunction::function_imageSize_01A,
-                nullptr,
-                310,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture2DLod(00I10B00B"),
-                &BuiltInFunction::function_texture2DLod_00I10B00B,
-                nullptr,
-                100,
-                0,
-                Shader::VERTEX,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetch(00b10D00D"),
-                &BuiltInFunction::function_texelFetch_00b10D00D,
-                nullptr,
-                310,
-                150,
-                Shader::ALL,
-                &BuiltInFunction::function_texelFetchExt_00b10D00D,
-                nullptr,
-                300,
-                Shader::ALL,
-                &ShBuiltInResources::ANGLE_texture_multisample,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSize(01F"),
-                &BuiltInFunction::function_imageSize_01F,
-                nullptr,
-                310,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxAtomicCounterBufferSize"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxAtomicCounterBufferSize,
-                310,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("max(20B20B"),
-                &BuiltInFunction::function_max_20B20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffset(00f20B00B10D"),
-                &BuiltInFunction::function_textureGatherOffset_00f20B00B10D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("outerProduct(30B30B"),
-                &BuiltInFunction::function_outerProduct_30B30B,
-                nullptr,
-                300,
-                120,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("lessThanEqual(20E20E"),
-                &BuiltInFunction::function_lessThanEqual_20E20E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLod(00X10B00B"),
-                &BuiltInFunction::function_textureLod_00X10B00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("exp(30B"),
-                &BuiltInFunction::function_exp_30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("memoryBarrier("),
-                &BuiltInFunction::function_memoryBarrier_,
-                nullptr,
-                310,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSize(01D"),
-                &BuiltInFunction::function_imageSize_01D,
-                nullptr,
-                310,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("step(00B30B"),
-                &BuiltInFunction::function_step_00B30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitCount(10D"),
-                &BuiltInFunction::function_bitCount_10D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("equal(30E30E"),
-                &BuiltInFunction::function_equal_30E30E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("sign(00B"),
-                &BuiltInFunction::function_sign_00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("log(00B"),
-                &BuiltInFunction::function_log_00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLod(00Z20B00B"),
-                &BuiltInFunction::function_textureLod_00Z20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("sign(00D"),
-                &BuiltInFunction::function_sign_00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00Y20B20D"),
-                &BuiltInFunction::function_textureOffset_00Y20B20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("transpose(60B"),
-                &BuiltInFunction::function_transpose_60B,
-                nullptr,
-                300,
-                120,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("findMSB(00D"),
-                &BuiltInFunction::function_findMSB_00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxGeometryTotalOutputComponents"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxGeometryTotalOutputComponents,
-                310,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_geometry_shader,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("acosh(30B"),
-                &BuiltInFunction::function_acosh_30B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("findMSB(00E"),
-                &BuiltInFunction::function_findMSB_00E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitfieldExtract(20E00D00D"),
-                &BuiltInFunction::function_bitfieldExtract_20E00D00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("uintBitsToFloat(20E"),
-                &BuiltInFunction::function_uintBitsToFloat_20E,
-                nullptr,
-                300,
-                330,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("unpackUnorm4x8(00E"),
-                &BuiltInFunction::function_unpackUnorm4x8_00E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture2DProj(00M20B"),
-                &BuiltInFunction::function_texture2DProj_00M20B,
-                nullptr,
-                100,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetchOffset(00X10D00D10D"),
-                &BuiltInFunction::function_texelFetchOffset_00X10D00D10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mod(10B10B"),
-                &BuiltInFunction::function_mod_10B10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00d20B00B"),
-                &BuiltInFunction::function_texture_00d20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("notEqual(10D10D"),
-                &BuiltInFunction::function_notEqual_10D10D,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture2DProj(00M30B"),
-                &BuiltInFunction::function_texture2DProj_00M30B,
-                nullptr,
-                100,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00V"),
-                &BuiltInFunction::function_textureSize_00V,
-                nullptr,
-                310,
-                150,
-                Shader::ALL,
-                &BuiltInFunction::function_textureSizeExt_00V,
-                nullptr,
-                300,
-                Shader::ALL,
-                &ShBuiltInResources::ANGLE_texture_multisample,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("packUnorm2x16(10B"),
-                &BuiltInFunction::function_packUnorm2x16_10B,
-                nullptr,
-                300,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("faceforward(00B00B00B"),
-                &BuiltInFunction::function_faceforward_00B00B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("umulExtended(20E20E20E20E"),
-                &BuiltInFunction::function_umulExtended_20E20E20E20E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00X10B10D00B"),
-                &BuiltInFunction::function_textureOffset_00X10B10D00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("cos(30B"),
-                &BuiltInFunction::function_cos_30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("findLSB(30D"),
-                &BuiltInFunction::function_findLSB_30D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("findLSB(30E"),
-                &BuiltInFunction::function_findLSB_30E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitCount(20E"),
-                &BuiltInFunction::function_bitCount_20E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_NumWorkGroups"),
-                &BuiltInVariable::kVar_gl_NumWorkGroups,
-                nullptr,
-                310,
-                0,
-                Shader::COMPUTE,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("equal(20D20D"),
-                &BuiltInFunction::function_equal_20D20D,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00Y30B20D00B"),
-                &BuiltInFunction::function_textureProjOffset_00Y30B20D00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffset(00U20B10D"),
-                &BuiltInFunction::function_textureGatherOffset_00U20B10D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("faceforward(10B10B10B"),
-                &BuiltInFunction::function_faceforward_10B10B10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00L00D"),
-                &BuiltInFunction::function_textureSize_00L00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxComputeUniformComponents"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxComputeUniformComponents,
-                310,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00R10B00D"),
-                &BuiltInFunction::function_textureGather_00R10B00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("memoryBarrierBuffer("),
-                &BuiltInFunction::function_memoryBarrierBuffer_,
-                nullptr,
-                310,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00Z00D"),
-                &BuiltInFunction::function_textureSize_00Z00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00U20B"),
-                &BuiltInFunction::function_textureGather_00U20B,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitfieldExtract(30D00D00D"),
-                &BuiltInFunction::function_bitfieldExtract_30D00D00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("min(10D00D"),
-                &BuiltInFunction::function_min_10D00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageStore(01H20D30B"),
-                &BuiltInFunction::function_imageStore_01H20D30B,
-                nullptr,
-                310,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetch(00Q20D00D"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_texelFetchExt_00Q20D00D,
-                nullptr,
-                310,
-                Shader::ALL,
-                &ShBuiltInResources::OES_texture_storage_multisample_2d_array,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("max(20E00E"),
-                &BuiltInFunction::function_max_20E00E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00S30B"),
-                &BuiltInFunction::function_textureProj_00S30B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("roundEven(00B"),
-                &BuiltInFunction::function_roundEven_00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture2DLodEXT(00I10B00B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_texture2DLodEXT_00I10B00B,
-                nullptr,
-                100,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::EXT_shader_texture_lod,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("dFdy(30B"),
-                &BuiltInFunction::function_dFdy_30B,
-                nullptr,
-                300,
-                0,
-                Shader::FRAGMENT,
-                &BuiltInFunction::function_dFdyExt_30B,
-                nullptr,
-                100,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::OES_standard_derivatives,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atanh(20B"),
-                &BuiltInFunction::function_atanh_20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("clamp(10E00E00E"),
-                &BuiltInFunction::function_clamp_10E00E00E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("clamp(20D00D00D"),
-                &BuiltInFunction::function_clamp_20D00D00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("all(20F"),
-                &BuiltInFunction::function_all_20F,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("isinf(10B"),
-                &BuiltInFunction::function_isinf_10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageLoad(01C20D"),
-                &BuiltInFunction::function_imageLoad_01C20D,
-                nullptr,
-                310,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSize(01J"),
-                &BuiltInFunction::function_imageSize_01J,
-                nullptr,
-                310,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSize(01H"),
-                &BuiltInFunction::function_imageSize_01H,
-                nullptr,
-                310,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSize(01I"),
-                &BuiltInFunction::function_imageSize_01I,
-                nullptr,
-                310,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("packHalf2x16(10B"),
-                &BuiltInFunction::function_packHalf2x16_10B,
-                nullptr,
-                300,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture2DProj(00I20B00B"),
-                &BuiltInFunction::function_texture2DProj_00I20B00B,
-                nullptr,
-                100,
-                0,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("findLSB(00E"),
-                &BuiltInFunction::function_findLSB_00E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("findLSB(00D"),
-                &BuiltInFunction::function_findLSB_00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00X30B10D"),
-                &BuiltInFunction::function_textureProjOffset_00X30B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSize(01C"),
-                &BuiltInFunction::function_imageSize_01C,
-                nullptr,
-                310,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("greaterThanEqual(30B30B"),
-                &BuiltInFunction::function_greaterThanEqual_30B30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00U00D"),
-                &BuiltInFunction::function_textureSize_00U00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGradOffset(00R10B10B10B10D"),
-                &BuiltInFunction::function_textureGradOffset_00R10B10B10B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSize(01G"),
-                &BuiltInFunction::function_imageSize_01G,
-                nullptr,
-                310,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("equal(30F30F"),
-                &BuiltInFunction::function_equal_30F30F,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitfieldExtract(00D00D00D"),
-                &BuiltInFunction::function_bitfieldExtract_00D00D00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture2DProjLodEXT(00I20B00B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_texture2DProjLodEXT_00I20B00B,
-                nullptr,
-                100,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::EXT_shader_texture_lod,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("notEqual(30F30F"),
-                &BuiltInFunction::function_notEqual_30F30F,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_FrontFacing"),
-                &BuiltInVariable::kVar_gl_FrontFacing,
-                nullptr,
-                0,
-                0,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_SecondaryFragColorEXT"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInVariable::kVar_gl_SecondaryFragColorEXT,
-                nullptr,
-                100,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::EXT_blend_func_extended,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("inversesqrt(10B"),
-                &BuiltInFunction::function_inversesqrt_10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageStore(01C20D30D"),
-                &BuiltInFunction::function_imageStore_01C20D30D,
-                nullptr,
-                310,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("acos(10B"),
-                &BuiltInFunction::function_acos_10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("abs(30D"),
-                &BuiltInFunction::function_abs_30D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxFragmentUniformVectors"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxFragmentUniformVectors,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("fract(20B"),
-                &BuiltInFunction::function_fract_20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("abs(30B"),
-                &BuiltInFunction::function_abs_30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("lessThan(10B10B"),
-                &BuiltInFunction::function_lessThan_10B10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffset(00X10B10D"),
-                &BuiltInFunction::function_textureGatherOffset_00X10B10D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitfieldInsert(10E10E00D00D"),
-                &BuiltInFunction::function_bitfieldInsert_10E10E00D00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("packSnorm4x8(30B"),
-                &BuiltInFunction::function_packSnorm4x8_30B,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mix(10B10B00B"),
-                &BuiltInFunction::function_mix_10B10B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageLoad(01E20D"),
-                &BuiltInFunction::function_imageLoad_01E20D,
-                nullptr,
-                310,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("clamp(30D30D30D"),
-                &BuiltInFunction::function_clamp_30D30D30D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00U20B00D"),
-                &BuiltInFunction::function_textureGather_00U20B00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00f00D"),
-                &BuiltInFunction::function_textureSize_00f00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00N20B00B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_textureProj_00N20B00B,
-                nullptr,
-                300,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::EXT_YUV_target,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_FragData"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_FragData,
-                100,
-                0,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageLoad(01B20D"),
-                &BuiltInFunction::function_imageLoad_01B20D,
-                nullptr,
-                310,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00d30B00B"),
-                &BuiltInFunction::function_textureProj_00d30B00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("clamp(20E00E00E"),
-                &BuiltInFunction::function_clamp_20E00E00E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00X10B"),
-                &BuiltInFunction::function_texture_00X10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00d30B"),
-                &BuiltInFunction::function_textureProj_00d30B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mix(30B30B30F"),
-                &BuiltInFunction::function_mix_30B30B30F,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("determinant(F0B"),
-                &BuiltInFunction::function_determinant_F0B,
-                nullptr,
-                300,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("transpose(A0B"),
-                &BuiltInFunction::function_transpose_A0B,
-                nullptr,
-                300,
-                120,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("pow(20B20B"),
-                &BuiltInFunction::function_pow_20B20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture2DProjGradEXT(00I20B10B10B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_texture2DProjGradEXT_00I20B10B10B,
-                nullptr,
-                100,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_shader_texture_lod,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_LastFragColorARM"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInVariable::kVar_gl_LastFragColorARM,
-                nullptr,
-                100,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::ARM_shader_framebuffer_fetch,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00Z20B00D"),
-                &BuiltInFunction::function_textureGather_00Z20B00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00R10B"),
-                &BuiltInFunction::function_textureGather_00R10B,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("lessThanEqual(20D20D"),
-                &BuiltInFunction::function_lessThanEqual_20D20D,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLod(00S20B00B"),
-                &BuiltInFunction::function_textureLod_00S20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLod(00Y30B00B"),
-                &BuiltInFunction::function_textureProjLod_00Y30B00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("cosh(10B"),
-                &BuiltInFunction::function_cosh_10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("sqrt(30B"),
-                &BuiltInFunction::function_sqrt_30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_VertexID"),
-                &BuiltInVariable::kVar_gl_VertexID,
-                nullptr,
-                300,
-                0,
-                Shader::VERTEX,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("sign(10D"),
-                &BuiltInFunction::function_sign_10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00M30B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_textureProj_00M30B,
-                nullptr,
-                300,
-                Shader::ALL,
-                &ShBuiltInResources::OES_EGL_image_external_essl3,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("exp(00B"),
-                &BuiltInFunction::function_exp_00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("min(00E00E"),
-                &BuiltInFunction::function_min_00E00E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("max(30D30D"),
-                &BuiltInFunction::function_max_30D30D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("umulExtended(00E00E00E00E"),
-                &BuiltInFunction::function_umulExtended_00E00E00E00E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxVertexAttribs"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxVertexAttribs,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_BaseInstance"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInVariable::kVar_gl_BaseInstance,
-                nullptr,
-                300,
-                Shader::VERTEX,
-                &ShBuiltInResources::ANGLE_base_vertex_base_instance,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("transpose(B0B"),
-                &BuiltInFunction::function_transpose_B0B,
-                nullptr,
-                300,
-                120,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("fwidth(20B"),
-                &BuiltInFunction::function_fwidth_20B,
-                nullptr,
-                300,
-                0,
-                Shader::FRAGMENT,
-                &BuiltInFunction::function_fwidthExt_20B,
-                nullptr,
-                100,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::OES_standard_derivatives,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString(""),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("smoothstep(00B00B30B"),
-                &BuiltInFunction::function_smoothstep_00B00B30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("floatBitsToInt(20B"),
-                &BuiltInFunction::function_floatBitsToInt_20B,
-                nullptr,
-                300,
-                330,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00M00D"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_textureSize_00M00D,
-                nullptr,
-                300,
-                Shader::ALL,
-                &ShBuiltInResources::OES_EGL_image_external_essl3,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("log2(20B"),
-                &BuiltInFunction::function_log2_20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("ldexp(10B10D"),
-                &BuiltInFunction::function_ldexp_10B10D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("min(10B00B"),
-                &BuiltInFunction::function_min_10B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mix(30B30B00B"),
-                &BuiltInFunction::function_mix_30B30B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("angle_BaseInstance"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInVariable::kVar_angle_BaseInstance,
-                nullptr,
-                0,
-                Shader::VERTEX,
-                &ShBuiltInResources::ANGLE_base_vertex_base_instance,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("degrees(10B"),
-                &BuiltInFunction::function_degrees_10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxTextureImageUnits"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxTextureImageUnits,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_Position"),
-                &BuiltInVariable::kVar_gl_Position,
-                nullptr,
-                0,
-                0,
-                Shader::VERTEX,
-                nullptr,
-                &TSymbolTableBase::mVar_gl_PositionGS,
-                310,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_geometry_shader,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00K20B"),
-                &BuiltInFunction::function_texture_00K20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atomicCompSwap(00E00E00E"),
-                &BuiltInFunction::function_atomicCompSwap_00E00E00E,
-                nullptr,
-                310,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00Y30B20D"),
-                &BuiltInFunction::function_textureProjOffset_00Y30B20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("sinh(10B"),
-                &BuiltInFunction::function_sinh_10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atan(30B"),
-                &BuiltInFunction::function_atan_30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGradOffset(00L20B10B10B10D"),
-                &BuiltInFunction::function_textureGradOffset_00L20B10B10B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("ceil(10B"),
-                &BuiltInFunction::function_ceil_10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00S00D"),
-                &BuiltInFunction::function_textureSize_00S00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageStore(01D20D30E"),
-                &BuiltInFunction::function_imageStore_01D20D30E,
-                nullptr,
-                310,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("greaterThanEqual(10B10B"),
-                &BuiltInFunction::function_greaterThanEqual_10B10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atomicCounterDecrement(00G"),
-                &BuiltInFunction::function_atomicCounterDecrement_00G,
-                nullptr,
-                310,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureCube(00K20B00B"),
-                &BuiltInFunction::function_textureCube_00K20B00B,
-                nullptr,
-                100,
-                0,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("dot(20B20B"),
-                &BuiltInFunction::function_dot_20B20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("transpose(90B"),
-                &BuiltInFunction::function_transpose_90B,
-                nullptr,
-                300,
-                120,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("not(30F"),
-                &BuiltInFunction::function_notFunc_30F,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLodOffset(00I20B00B10D"),
-                &BuiltInFunction::function_textureProjLodOffset_00I20B00B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("notEqual(10F10F"),
-                &BuiltInFunction::function_notEqual_10F10F,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGrad(00R20B10B10B"),
-                &BuiltInFunction::function_textureProjGrad_00R20B10B10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00f30B"),
-                &BuiltInFunction::function_texture_00f30B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("smoothstep(00B00B00B"),
-                &BuiltInFunction::function_smoothstep_00B00B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLodOffset(00d30B00B10D"),
-                &BuiltInFunction::function_textureProjLodOffset_00d30B00B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetch(00R10D00D"),
-                &BuiltInFunction::function_texelFetch_00R10D00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("cosh(20B"),
-                &BuiltInFunction::function_cosh_20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLodOffset(00I30B00B10D"),
-                &BuiltInFunction::function_textureProjLodOffset_00I30B00B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("normalize(30B"),
-                &BuiltInFunction::function_normalize_30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("smoothstep(30B30B30B"),
-                &BuiltInFunction::function_smoothstep_30B30B30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitfieldInsert(10D10D00D00D"),
-                &BuiltInFunction::function_bitfieldInsert_10D10D00D00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("clamp(20B20B20B"),
-                &BuiltInFunction::function_clamp_20B20B20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGrad(00L20B10B10B"),
-                &BuiltInFunction::function_textureGrad_00L20B10B10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGrad(00R10B10B10B"),
-                &BuiltInFunction::function_textureGrad_00R10B10B10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGrad(00I20B10B10B"),
-                &BuiltInFunction::function_textureProjGrad_00I20B10B10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00e20B"),
-                &BuiltInFunction::function_textureGather_00e20B,
-                nullptr,
-                310,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture2D(00M10B"),
-                &BuiltInFunction::function_texture2D_00M10B,
-                nullptr,
-                100,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("min(00D00D"),
-                &BuiltInFunction::function_min_00D00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("outerProduct(10B10B"),
-                &BuiltInFunction::function_outerProduct_10B10B,
-                nullptr,
-                300,
-                120,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("lessThanEqual(10D10D"),
-                &BuiltInFunction::function_lessThanEqual_10D10D,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("trunc(20B"),
-                &BuiltInFunction::function_trunc_20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxVaryingVectors"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxVaryingVectors,
-                100,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00I30B10D00B"),
-                &BuiltInFunction::function_textureProjOffset_00I30B10D00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00d00D"),
-                &BuiltInFunction::function_textureSize_00d00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("sin(00B"),
-                &BuiltInFunction::function_sin_00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxVertexUniformVectors"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxVertexUniformVectors,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureCubeLodEXT(00K20B00B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_textureCubeLodEXT_00K20B00B,
-                nullptr,
-                100,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::EXT_shader_texture_lod,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00T20B00D"),
-                &BuiltInFunction::function_textureGather_00T20B00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00N20B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_textureProj_00N20B,
-                nullptr,
-                300,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_YUV_target,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("uaddCarry(10E10E10E"),
-                &BuiltInFunction::function_uaddCarry_10E10E10E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("tan(10B"),
-                &BuiltInFunction::function_tan_10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLodOffset(00L20B00B10D"),
-                &BuiltInFunction::function_textureLodOffset_00L20B00B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atomicCounterIncrement(00G"),
-                &BuiltInFunction::function_atomicCounterIncrement_00G,
-                nullptr,
-                310,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("ldexp(20B20D"),
-                &BuiltInFunction::function_ldexp_20B20D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("greaterThanEqual(30D30D"),
-                &BuiltInFunction::function_greaterThanEqual_30D30D,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("notEqual(20B20B"),
-                &BuiltInFunction::function_notEqual_20B20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageLoad(01D20D"),
-                &BuiltInFunction::function_imageLoad_01D20D,
-                nullptr,
-                310,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLodOffset(00X30B00B10D"),
-                &BuiltInFunction::function_textureProjLodOffset_00X30B00B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("isinf(20B"),
-                &BuiltInFunction::function_isinf_20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("cos(10B"),
-                &BuiltInFunction::function_cos_10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mix(30B30B30B"),
-                &BuiltInFunction::function_mix_30B30B30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00e30B"),
-                &BuiltInFunction::function_texture_00e30B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00T00D"),
-                &BuiltInFunction::function_textureSize_00T00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffset(00X10B10D00D"),
-                &BuiltInFunction::function_textureGatherOffset_00X10B10D00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("equal(10E10E"),
-                &BuiltInFunction::function_equal_10E10E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("min(10E10E"),
-                &BuiltInFunction::function_min_10E10E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGradOffset(00Y30B20B20B20D"),
-                &BuiltInFunction::function_textureProjGradOffset_00Y30B20B20B20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGrad(00T20B20B20B"),
-                &BuiltInFunction::function_textureGrad_00T20B20B20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("memoryBarrierImage("),
-                &BuiltInFunction::function_memoryBarrierImage_,
-                nullptr,
-                310,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00J30B20D"),
-                &BuiltInFunction::function_textureProjOffset_00J30B20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("EmitVertex("),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_EmitVertex_,
-                nullptr,
-                310,
-                Shader::GEOMETRY_EXT,
-                &ShBuiltInResources::EXT_geometry_shader,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00d30B10D00B"),
-                &BuiltInFunction::function_textureProjOffset_00d30B10D00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("round(10B"),
-                &BuiltInFunction::function_round_10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00d30B10D"),
-                &BuiltInFunction::function_textureProjOffset_00d30B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("notEqual(10E10E"),
-                &BuiltInFunction::function_notEqual_10E10E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00R30B"),
-                &BuiltInFunction::function_textureProj_00R30B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("matrixCompMult(50B50B"),
-                &BuiltInFunction::function_matrixCompMult_50B50B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("equal(20F20F"),
-                &BuiltInFunction::function_equal_20F20F,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxFragmentInputVectors"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxFragmentInputVectors,
-                300,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("equal(30B30B"),
-                &BuiltInFunction::function_equal_30B30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLod(00U20B00B"),
-                &BuiltInFunction::function_textureLod_00U20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("usubBorrow(10E10E10E"),
-                &BuiltInFunction::function_usubBorrow_10E10E10E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("equal(10B10B"),
-                &BuiltInFunction::function_equal_10B10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGradOffset(00I20B10B10B10D"),
-                &BuiltInFunction::function_textureProjGradOffset_00I20B10B10B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture2DProjLod(00I30B00B"),
-                &BuiltInFunction::function_texture2DProjLod_00I30B00B,
-                nullptr,
-                100,
-                0,
-                Shader::VERTEX,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("isnan(10B"),
-                &BuiltInFunction::function_isnan_10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("uaddCarry(20E20E20E"),
-                &BuiltInFunction::function_uaddCarry_20E20E20E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("max(10B10B"),
-                &BuiltInFunction::function_max_10B10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atomicMax(00E00E"),
-                &BuiltInFunction::function_atomicMax_00E00E,
-                nullptr,
-                310,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_PointSize"),
-                &BuiltInVariable::kVar_gl_PointSize,
-                nullptr,
-                0,
-                0,
-                Shader::VERTEX,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atomicMin(00D00D"),
-                &BuiltInFunction::function_atomicMin_00D00D,
-                nullptr,
-                310,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00X00D"),
-                &BuiltInFunction::function_textureSize_00X00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("greaterThan(10B10B"),
-                &BuiltInFunction::function_greaterThan_10B10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("asin(10B"),
-                &BuiltInFunction::function_asin_10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00d10B00B"),
-                &BuiltInFunction::function_textureGather_00d10B00B,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("trunc(10B"),
-                &BuiltInFunction::function_trunc_10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxComputeAtomicCounters"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxComputeAtomicCounters,
-                310,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00X30B"),
-                &BuiltInFunction::function_textureProj_00X30B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxVertexAtomicCounters"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxVertexAtomicCounters,
-                310,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("length(20B"),
-                &BuiltInFunction::function_length_20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitfieldInsert(30E30E00D00D"),
-                &BuiltInFunction::function_bitfieldInsert_30E30E00D00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00S20B20D"),
-                &BuiltInFunction::function_textureOffset_00S20B20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00X20B10D"),
-                &BuiltInFunction::function_textureProjOffset_00X20B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("clamp(30D00D00D"),
-                &BuiltInFunction::function_clamp_30D00D00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("clamp(10B00B00B"),
-                &BuiltInFunction::function_clamp_10B00B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00R20B"),
-                &BuiltInFunction::function_textureProj_00R20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageStore(01F20D30D"),
-                &BuiltInFunction::function_imageStore_01F20D30D,
-                nullptr,
-                310,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00I20B00B"),
-                &BuiltInFunction::function_textureProj_00I20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("greaterThan(10E10E"),
-                &BuiltInFunction::function_greaterThan_10E10E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00R30B10D00B"),
-                &BuiltInFunction::function_textureProjOffset_00R30B10D00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("dFdy(00B"),
-                &BuiltInFunction::function_dFdy_00B,
-                nullptr,
-                300,
-                0,
-                Shader::FRAGMENT,
-                &BuiltInFunction::function_dFdyExt_00B,
-                nullptr,
-                100,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::OES_standard_derivatives,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("min(30D00D"),
-                &BuiltInFunction::function_min_30D00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("floatBitsToInt(00B"),
-                &BuiltInFunction::function_floatBitsToInt_00B,
-                nullptr,
-                300,
-                330,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("sign(10B"),
-                &BuiltInFunction::function_sign_10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("max(00E00E"),
-                &BuiltInFunction::function_max_00E00E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00a20B00B"),
-                &BuiltInFunction::function_texture_00a20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00M10B00B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_texture_00M10B00B,
-                nullptr,
-                300,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::OES_EGL_image_external_essl3,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("smoothstep(20B20B20B"),
-                &BuiltInFunction::function_smoothstep_20B20B20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureCubeLod(00K20B00B"),
-                &BuiltInFunction::function_textureCubeLod_00K20B00B,
-                nullptr,
-                100,
-                0,
-                Shader::VERTEX,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00J20B20D"),
-                &BuiltInFunction::function_textureOffset_00J20B20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetch(00J20D00D"),
-                &BuiltInFunction::function_texelFetch_00J20D00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00M20B00B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_textureProj_00M20B00B,
-                nullptr,
-                300,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::OES_EGL_image_external_essl3,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("floatBitsToUint(00B"),
-                &BuiltInFunction::function_floatBitsToUint_00B,
-                nullptr,
-                300,
-                330,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGradOffset(00R30B10B10B10D"),
-                &BuiltInFunction::function_textureProjGradOffset_00R30B10B10B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLod(00K20B00B"),
-                &BuiltInFunction::function_textureLod_00K20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00X30B10D00B"),
-                &BuiltInFunction::function_textureProjOffset_00X30B10D00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("cos(20B"),
-                &BuiltInFunction::function_cos_20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("exp2(00B"),
-                &BuiltInFunction::function_exp2_00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("radians(30B"),
-                &BuiltInFunction::function_radians_30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture2DRectProj(00O20B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_texture2DRectProj_00O20B,
-                nullptr,
-                100,
-                Shader::ALL,
-                &ShBuiltInResources::ARB_texture_rectangle,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("tan(20B"),
-                &BuiltInFunction::function_tan_20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00T20B"),
-                &BuiltInFunction::function_textureGather_00T20B,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00a20B00D"),
-                &BuiltInFunction::function_textureGather_00a20B00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGradOffset(00J30B20B20B20D"),
-                &BuiltInFunction::function_textureProjGradOffset_00J30B20B20B20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("asinh(10B"),
-                &BuiltInFunction::function_asinh_10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGrad(00X30B10B10B"),
-                &BuiltInFunction::function_textureProjGrad_00X30B10B10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("floor(00B"),
-                &BuiltInFunction::function_floor_00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_DrawID"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInVariable::kVar_gl_DrawID,
-                nullptr,
-                0,
-                Shader::VERTEX,
-                &ShBuiltInResources::ANGLE_multi_draw,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atomicOr(00D00D"),
-                &BuiltInFunction::function_atomicOr_00D00D,
-                nullptr,
-                310,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture3DLod(00J20B00B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_texture3DLod_00J20B00B,
-                nullptr,
-                100,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::OES_texture_3D,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr)};
+// Rules used to initialize the mangled name array.
+constexpr SymbolRule kRules[] = {
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProj_00R30B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProj_00R30B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, EXT_INDEX(EXT_YUV_target)>(&texture_00N10B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_10D00D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_10D00D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::FRAGMENT, EXT_INDEX(EXT_geometry_shader)>(
+        &BuiltInVariable::kgl_PrimitiveID),
+    Rule::Get<Spec::ESSL, 310, Shader::GEOMETRY_EXT, EXT_INDEX(EXT_geometry_shader)>(
+        &BuiltInVariable::kgl_PrimitiveIDGS),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&texture_00R10B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00R10B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&modf_00B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&modf_00B00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxAtomicCounterBindings),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxAtomicCounterBindings),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&notEqual_20D20D),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&notEqual_20D20D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeImageUniforms),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeImageUniforms),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLod_00L20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00L20B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::VERTEX, EXT_INDEX(ANGLE_base_vertex_base_instance)>(
+        &BuiltInVariable::kangle_BaseVertex),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&determinant_A0B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGrad_00I30B10B10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGrad_00I30B10B10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&tanh_30B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&tanh_30B),
+    Rule::Get<Spec::ESSL, 310, Shader::FRAGMENT, EXT_INDEX(EXT_geometry_shader)>(
+        &BuiltInVariable::kgl_Layer),
+    Rule::Get<Spec::ESSL, 310, Shader::GEOMETRY_EXT, EXT_INDEX(EXT_geometry_shader)>(
+        &BuiltInVariable::kgl_LayerGS),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureOffset_00d20B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureOffset_00d20B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&dFdx_30B),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&dFdx_30B),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(&dFdxExt_30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_00E00E00E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_00E00E00E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&transpose_50B),
+    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&transpose_50B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&ldexp_00B00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&ldexp_00B00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00K20B00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00K20B00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&lessThanEqual_30B30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&lessThanEqual_30B30B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&greaterThanEqual_20D20D),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&greaterThanEqual_20D20D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&min_20E20E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&min_20E20E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&asin_20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&asin_20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&outerProduct_20B30B),
+    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&outerProduct_20B30B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldInsert_00D00D00D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldInsert_00D00D00D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGrad_00Y30B20B20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGrad_00Y30B20B20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&roundEven_30B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&roundEven_30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&acosh_20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&acosh_20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&atanh_10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&atanh_10B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&mix_20B20B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&mix_20B20B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&clamp_10B10B10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&clamp_10B10B10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00I10B10B10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00I10B10B10B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGatherOffset_00L20B10D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00L20B10D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitCount_00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitCount_00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&step_00B20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&step_00B20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&lessThan_30E30E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&lessThan_30E30E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&uintBitsToFloat_30E),
+    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&uintBitsToFloat_30E),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imulExtended_30D30D30D30D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&imulExtended_30D30D30D30D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00K00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00K00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_geometry_shader)>(
+        &TableBase::m_gl_MaxGeometryOutputVertices),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&transpose_70B),
+    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&transpose_70B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProjOffset_00S30B20D00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProjOffset_00S30B20D00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLod_00X30B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLod_00X30B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00Y00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00Y00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&TableBase::m_gl_MinProgramTexelOffset),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MinProgramTexelOffset),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00d20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00d20B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProj_00J30B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProj_00J30B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&atan_10B10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&atan_10B10B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&max_20B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&max_20B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&clamp_30B30B30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&clamp_30B30B30B),
+    Rule::Get<Spec::ESSL, 310, Shader::GEOMETRY_EXT, EXT_INDEX(EXT_geometry_shader)>(
+        &EndPrimitive_),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLod_00Y20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00Y20B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLodOffset_00a20B00B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLodOffset_00a20B00B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetchOffset_00Y20D00D20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetchOffset_00Y20D00D20D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetch_00a20D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetch_00a20D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&min_20D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&min_20D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageLoad_01F20D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&uintBitsToFloat_00E),
+    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&uintBitsToFloat_00E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&lessThanEqual_20B20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&lessThanEqual_20B20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(EXT_YUV_target)>(&texelFetch_00N10D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicAdd_00D00D),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicAdd_00D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_geometry_shader)>(
+        &TableBase::m_gl_MaxGeometryOutputComponents),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_geometry_shader)>(
+        &TableBase::m_gl_MaxGeometryTextureImageUnits),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&floatBitsToUint_20B),
+    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&floatBitsToUint_20B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldInsert_20D20D00D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldInsert_20D20D00D00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexTextureImageUnits),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexTextureImageUnits),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00Z20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00Z20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&min_10D10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&min_10D10D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&degrees_20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&degrees_20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&tanh_00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&tanh_00B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProjOffset_00J30B20D00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProjOffset_00J30B20D00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&all_30F),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&all_30F),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&abs_20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&abs_20D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&abs_20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&abs_20B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&inversesqrt_00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&inversesqrt_00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&matrixCompMult_D0BD0B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&lessThanEqual_10B10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&lessThanEqual_10B10B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldReverse_20D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldReverse_20D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldReverse_20E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldReverse_20E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGrad_00S30B20B20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGrad_00S30B20B20B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&equal_10D10D),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&equal_10D10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_30D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_30D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::COMPUTE, 0>(&groupMemoryBarrier_),
+    Rule::Get<Spec::GLSL, 430, Shader::COMPUTE, 0>(&groupMemoryBarrier_),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&mix_00B00B00F),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&mix_00B00B00F),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGradOffset_00R20B10B10B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGradOffset_00R20B10B10B10D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageLoad_01A10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&intBitsToFloat_30D),
+    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&intBitsToFloat_30D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProj_00I20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProj_00I20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetch_00I10D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetch_00I10D00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&min_30B30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&min_30B30B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageStore_01I20D30D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexAtomicCounterBuffers),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexAtomicCounterBuffers),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLodOffset_00S20B00B20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLodOffset_00S20B00B20D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGatherOffset_00R10B10D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00R10B10D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&acos_00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&acos_00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&fract_10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&fract_10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&transpose_E0B),
+    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&transpose_E0B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&intBitsToFloat_00D),
+    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&intBitsToFloat_00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGradOffset_00J20B20B20B20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGradOffset_00J20B20B20B20D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&memoryBarrierAtomicCounter_),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&memoryBarrierAtomicCounter_),
+    Rule::Get<Spec::ESSL, 100, Shader::ALL, EXT_INDEX(EXT_shader_texture_lod)>(
+        &texture2DGradEXT_00I10B10B10B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldInsert_00E00E00D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldInsert_00E00E00D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicXor_00D00D),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicXor_00D00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&greaterThan_20B20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&greaterThan_20B20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLodOffset_00I10B00B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLodOffset_00I10B00B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetch_00Y20D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetch_00Y20D00D),
+    Rule::Get<Spec::ESSL, 100, Shader::ALL, EXT_INDEX(EXT_shader_texture_lod)>(
+        &texture2DProjGradEXT_00I30B10B10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00d20B10B10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00d20B10B10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjOffset_00R30B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjOffset_00R30B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureOffset_00U20B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureOffset_00U20B10D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&atan_10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&atan_10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&modf_10B10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&modf_10B10B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&min_30B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&min_30B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&determinant_50B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&lessThan_20B20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&lessThan_20B20B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicAnd_00D00D),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicAnd_00D00D),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_FragColor),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_FragColor),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&exp_10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&exp_10B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProjOffset_00I20B10D00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProjOffset_00I20B10D00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&step_00B10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&step_00B10B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitCount_30D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitCount_30D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLod_00I20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLod_00I20B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&unpackUnorm2x16_00E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&unpackUnorm2x16_00E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(EXT_YUV_target)>(&rgb_2_yuv_20B00H),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&sqrt_20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&sqrt_20B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&sign_20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&sign_20B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageStore_01B20D30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&sign_20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&sign_20D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&atanh_00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&atanh_00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGradOffset_00X10B10B10B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGradOffset_00X10B10B10B10D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&TableBase::m_gl_DepthRange),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_DepthRange),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imulExtended_10D10D10D10D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&imulExtended_10D10D10D10D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&atan_20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&atan_20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(OES_EGL_image_external_essl3)>(
+        &texture_00M10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexOutputVectors),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexOutputVectors),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00T20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00T20B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&log2_10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&log2_10B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&min_10B10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&min_10B10B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxImageUnits),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxImageUnits),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&pow_10B10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&pow_10B10B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findLSB_20E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findLSB_20E),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findLSB_20D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findLSB_20D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00Y20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00Y20B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&packUnorm4x8_30B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&packUnorm4x8_30B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&texture_00X10B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00X10B00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&frexp_00B00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&frexp_00B00D),
+    Rule::Get<Spec::ESSL, 100, Shader::ALL, 0>(&texture2D_00I10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&texture2D_00I10B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&notFunc_10F),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&notFunc_10F),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&texelFetch_00P10D00D),
+    Rule::Get<Spec::GLSL, 150, Shader::ALL, 0>(&texelFetch_00P10D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(ANGLE_texture_multisample)>(
+        &texelFetchExt_00P10D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&lessThan_10E10E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&lessThan_10E10E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&ceil_20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&ceil_20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLodOffset_00R10B00B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLodOffset_00R10B00B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_10D10D10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_10D10D10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(OES_EGL_image_external_essl3)>(
+        &texelFetch_00M10D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(ARB_texture_rectangle)>(&texture_00O10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&transpose_F0B),
+    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&transpose_F0B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureOffset_00Y20B20D00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureOffset_00Y20B20D00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGradOffset_00S20B20B20B20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGradOffset_00S20B20B20B20D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicXor_00E00E),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicXor_00E00E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjOffset_00R20B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjOffset_00R20B10D),
+    Rule::Get<Spec::ESSL, 0, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_FragCoord),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_FragCoord),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_30E30E30E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_30E30E30E),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, EXT_INDEX(EXT_YUV_target)>(&textureProj_00N30B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00R00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00R00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxFragmentImageUniforms),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxFragmentImageUniforms),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&normalize_00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&normalize_00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureOffset_00I10B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureOffset_00I10B10D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicExchange_00E00E),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicExchange_00E00E),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProj_00I30B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProj_00I30B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&acosh_10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&acosh_10B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxCombinedShaderOutputResources),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxCombinedShaderOutputResources),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicOr_00E00E),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicOr_00E00E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&min_20B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&min_20B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, EXT_INDEX(OES_EGL_image_external_essl3)>(
+        &textureProj_00M30B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(OES_EGL_image_external_essl3)>(
+        &textureProj_00M20B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&texture_00I10B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00I10B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&reflect_00B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&reflect_00B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&mod_20B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&mod_20B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&lessThan_20D20D),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&lessThan_20D20D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&reflect_10B10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&reflect_10B10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&floatBitsToUint_10B),
+    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&floatBitsToUint_10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLod_00J20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00J20B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&sqrt_10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&sqrt_10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLod_00S30B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLod_00S30B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_20E20E20E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_20E20E20E),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicAnd_00E00E),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicAnd_00E00E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_20D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_20D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00I00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00I00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeAtomicCounterBuffers),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeAtomicCounterBuffers),
+    Rule::Get<Spec::ESSL, 310, Shader::GEOMETRY_EXT, EXT_INDEX(EXT_geometry_shader)>(
+        &BuiltInVariable::kgl_PrimitiveIDIn),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetchOffset_00R10D00D10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetchOffset_00R10D00D10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&isinf_30B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&isinf_30B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGatherOffset_00a20B10D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00a20B10D00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&lessThan_30B30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&lessThan_30B30B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGatherOffset_00I10B10D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00I10B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureOffset_00L20B10D00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureOffset_00L20B10D00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLodOffset_00X10B00B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLodOffset_00X10B00B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&texture_00T20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00T20B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureOffset_00L20B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureOffset_00L20B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&lessThanEqual_30E30E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&lessThanEqual_30E30E),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureOffset_00J20B20D00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureOffset_00J20B20D00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&min_10E00E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&min_10E00E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&log_30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&log_30B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicCounter_00G),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&atomicCounter_00G),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjOffset_00S30B20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjOffset_00S30B20D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageLoad_01I20D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&round_00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&round_00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&smoothstep_00B00B20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&smoothstep_00B00B20B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageLoad_01H20D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00K20B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00K20B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldInsert_30D30D00D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldInsert_30D30D00D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageStore_01G20D30E),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&fwidth_10B),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&fwidth_10B),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(
+        &fwidthExt_10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLod_00R20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLod_00R20B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&notEqual_30D30D),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&notEqual_30D30D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&refract_10B10B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&refract_10B10B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjOffset_00I20B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjOffset_00I20B10D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&greaterThan_30D30D),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&greaterThan_30D30D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&greaterThan_10D10D),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&greaterThan_10D10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00U20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00U20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00a00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00a00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldExtract_10E00D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldExtract_10E00D00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxDrawBuffers),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxDrawBuffers),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGatherOffset_00U20B10D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00U20B10D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeWorkGroupCount),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeWorkGroupCount),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLod_00J30B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLod_00J30B00B),
+    Rule::Get<Spec::ESSL, 100, Shader::ALL, EXT_INDEX(ARB_texture_rectangle)>(
+        &texture2DRect_00O10B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imulExtended_20D20D20D20D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&imulExtended_20D20D20D20D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&any_30F),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&any_30F),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&distance_30B30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&distance_30B30B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&greaterThan_20D20D),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&greaterThan_20D20D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureOffset_00a20B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureOffset_00a20B10D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&greaterThan_30B30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&greaterThan_30B30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&trunc_00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&trunc_00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&sinh_30B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&sinh_30B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&length_10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&length_10B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findMSB_10E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findMSB_10E),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findMSB_10D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findMSB_10D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&dot_00B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&dot_00B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&asinh_20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&asinh_20B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&dot_30B30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&dot_30B30B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitCount_00E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitCount_00E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&tan_30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&tan_30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLod_00T20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00T20B00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&usubBorrow_20E20E20E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&usubBorrow_20E20E20E),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageStore_00z10D30D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGrad_00R30B10B10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGrad_00R30B10B10B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&exp2_10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&exp2_10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(ARB_texture_rectangle)>(&textureProj_00O20B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProjOffset_00X20B10D00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProjOffset_00X20B10D00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&outerProduct_10B20B),
+    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&outerProduct_10B20B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_geometry_shader)>(
+        &TableBase::m_gl_MaxGeometryAtomicCounterBuffers),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGradOffset_00X30B10B10B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGradOffset_00X30B10B10B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureOffset_00I10B10D00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureOffset_00I10B10D00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&clamp_30B00B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&clamp_30B00B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&inverse_50B),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&inverse_50B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&dot_10B10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&dot_10B10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&unpackHalf2x16_00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&unpackHalf2x16_00E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&matrixCompMult_A0BA0B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&matrixCompMult_A0BA0B),
+    Rule::Get<Spec::ESSL, 100, Shader::VERTEX, 0>(&texture2DProjLod_00I20B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::VERTEX, 0>(&texture2DProjLod_00I20B00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(OES_texture_storage_multisample_2d_array)>(
+        &texelFetchExt_00W20D00D),
+    Rule::Get<Spec::ESSL, 100, Shader::ALL, EXT_INDEX(ARB_texture_rectangle)>(
+        &texture2DRectProj_00O30B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&radians_20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&radians_20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00S20B20B20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00S20B20B20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_10D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_10D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageStore_01J20D30E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&round_30B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&round_30B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeTextureImageUnits),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeTextureImageUnits),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_00D00D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_00D00D00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&sin_30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&sin_30B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&floor_30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&floor_30B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProj_00S30B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProj_00S30B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00Y20B20B20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00Y20B20B20B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxCombinedAtomicCounters),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxCombinedAtomicCounters),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00L20B00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00L20B00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGradOffset_00S30B20B20B20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGradOffset_00S30B20B20B20D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageStore_01A10D30E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00J20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00J20B),
+    Rule::Get<Spec::ESSL, 0, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_PointCoord),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_PointCoord),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&dFdx_20B),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&dFdx_20B),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(&dFdxExt_20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProj_00X20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProj_00X20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_10E10E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_10E10E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&max_30B30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&max_30B30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_10E10E10E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_10E10E10E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetchOffset_00S20D00D20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetchOffset_00S20D00D20D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(EXT_YUV_target)>(&texture_00N10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00L20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00L20B),
+    Rule::Get<Spec::ESSL, 310, Shader::COMPUTE, 0>(&barrier_),
+    Rule::Get<Spec::GLSL, 400, Shader::COMPUTE, 0>(&barrier_),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_geometry_shader)>(
+        &TableBase::m_gl_MaxGeometryUniformComponents),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&greaterThanEqual_20E20E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&greaterThanEqual_20E20E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&lessThan_10D10D),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&lessThan_10D10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetchOffset_00a20D00D10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetchOffset_00a20D00D10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGradOffset_00X20B10B10B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGradOffset_00X20B10B10B10D),
+    Rule::Get<Spec::ESSL, 100, Shader::ALL, 0>(&texture2DProj_00I20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&texture2DProj_00I20B),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_texture_3D)>(
+        &texture3DProjLod_00J30B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&notFunc_20F),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&notFunc_20F),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findMSB_20D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findMSB_20D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findMSB_20E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findMSB_20E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetchOffset_00I10D00D10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetchOffset_00I10D00D10D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00I10B00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00I10B00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&texelFetch_00V10D00D),
+    Rule::Get<Spec::GLSL, 150, Shader::ALL, 0>(&texelFetch_00V10D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(ANGLE_texture_multisample)>(
+        &texelFetchExt_00V10D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&outerProduct_20B20B),
+    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&outerProduct_20B20B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&atan_30B30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&atan_30B30B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&unpackSnorm4x8_00E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&unpackSnorm4x8_00E),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitCount_30E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitCount_30E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLodOffset_00R20B00B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLodOffset_00R20B00B10D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&log_20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&log_20B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&asin_30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&asin_30B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00f20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&modf_30B30B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&modf_30B30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&isnan_20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&isnan_20B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&max_00B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&max_00B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&roundEven_20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&roundEven_20B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&fwidth_00B),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&fwidth_00B),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(
+        &fwidthExt_00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGrad_00J30B20B20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGrad_00J30B20B20B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&dFdy_10B),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&dFdy_10B),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(&dFdyExt_10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&outerProduct_30B10B),
+    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&outerProduct_30B10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&floatBitsToInt_30B),
+    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&floatBitsToInt_30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProj_00J30B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProj_00J30B),
+    Rule::Get<Spec::ESSL, 310, Shader::GEOMETRY_EXT, EXT_INDEX(EXT_geometry_shader)>(
+        &BuiltInVariable::kgl_InvocationID),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_30E00E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_30E00E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&exp2_20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&exp2_20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLod_00d20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00d20B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&radians_10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&radians_10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetch_00U20D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetch_00U20D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeWorkGroupSize),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeWorkGroupSize),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_00D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_00D00D),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(EXT_shader_framebuffer_fetch)>(
+        &TableBase::m_gl_LastFragData),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(NV_shader_framebuffer_fetch)>(
+        &TableBase::m_gl_LastFragDataNV),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&ceil_30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&ceil_30B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicMin_00E00E),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicMin_00E00E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxCombinedTextureImageUnits),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxCombinedTextureImageUnits),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitCount_10E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitCount_10E),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&texture_00S20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00S20B00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00e20B00B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00e20B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&TableBase::m_gl_DepthRangeParameters),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_DepthRangeParameters),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&distance_10B10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&distance_10B10B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&reflect_20B20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&reflect_20B20B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&mod_10B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&mod_10B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&uintBitsToFloat_10E),
+    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&uintBitsToFloat_10E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00Z20B20B20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00Z20B20B20B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&equal_10F10F),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&equal_10F10F),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&cosh_00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&cosh_00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldReverse_00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldReverse_00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldReverse_00E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldReverse_00E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_20E20E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_20E20E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&matrixCompMult_70B70B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldExtract_30E00D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldExtract_30E00D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLod_00I10B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00I10B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&greaterThanEqual_10D10D),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&greaterThanEqual_10D10D),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&texture_00e30B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00e30B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLodOffset_00Y20B00B20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLodOffset_00Y20B00B20D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&log2_00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&log2_00B),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(NV_shader_framebuffer_fetch)>(
+        &BuiltInVariable::kgl_LastFragColor),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&abs_10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&abs_10D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&abs_10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&abs_10B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&acos_30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&acos_30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&tanh_10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&tanh_10B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&degrees_30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&degrees_30B),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(EXT_frag_depth)>(
+        &TableBase::m_gl_FragDepthEXT),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&dFdx_10B),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&dFdx_10B),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(&dFdxExt_10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjOffset_00I30B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjOffset_00I30B10D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldReverse_30E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldReverse_30E),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldReverse_30D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldReverse_30D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&inversesqrt_30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&inversesqrt_30B),
+    Rule::Get<Spec::ESSL, 310, Shader::COMPUTE, 0>(&BuiltInVariable::kgl_LocalInvocationID),
+    Rule::Get<Spec::GLSL, 0, Shader::COMPUTE, 0>(&BuiltInVariable::kgl_LocalInvocationID),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&clamp_00B00B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&clamp_00B00B00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00d10B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&frexp_20B20D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&frexp_20B20D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&intBitsToFloat_20D),
+    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&intBitsToFloat_20D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&fract_00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&fract_00B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_FragDepth),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_FragDepth),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&min_30E00E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&min_30E00E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&exp_20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&exp_20B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&equal_20B20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&equal_20B20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLodOffset_00X20B00B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLodOffset_00X20B00B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&acosh_00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&acosh_00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&log_10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&log_10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLodOffset_00S30B00B20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLodOffset_00S30B00B20D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&sinh_20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&sinh_20B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00L20B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00L20B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&reflect_30B30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&reflect_30B30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&outerProduct_30B20B),
+    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&outerProduct_30B20B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&texture_00U20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00U20B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00S20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00S20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&outerProduct_20B10B),
+    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&outerProduct_20B10B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&umulExtended_10E10E10E10E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&umulExtended_10E10E10E10E),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&texture_00Z20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00Z20B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGradOffset_00a20B10B10B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGradOffset_00a20B10B10B10D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&notEqual_20F20F),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&notEqual_20F20F),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&mod_30B30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&mod_30B30B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldExtract_10D00D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldExtract_10D00D00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&sign_30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&sign_30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&sign_30D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&sign_30D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&pow_00B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&pow_00B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&mod_00B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&mod_00B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&texture_00Y20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00Y20B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&notEqual_30B30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&notEqual_30B30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&roundEven_10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&roundEven_10B),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(EXT_shader_texture_lod)>(
+        &texture2DProjLodEXT_00I30B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&atanh_30B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&atanh_30B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&dFdy_20B),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&dFdy_20B),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(&dFdyExt_20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProj_00Y30B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProj_00Y30B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitCount_20D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitCount_20D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&step_00B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&step_00B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetch_00L20D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetch_00L20D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageSize_00y),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&isinf_00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&isinf_00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageSize_00z),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&distance_20B20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&distance_20B20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00U20B10B10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00U20B10B10B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&uaddCarry_30E30E30E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&uaddCarry_30E30E30E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&mod_30B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&mod_30B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&texture_00K20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00K20B00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxCombinedImageUniforms),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxCombinedImageUniforms),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(EXT_YUV_target)>(&yuv_2_rgb_20B00H),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00f20B00B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00f20B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&greaterThan_20E20E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&greaterThan_20E20E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00a20B10B10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00a20B10B10B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureOffset_00U20B10D00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureOffset_00U20B10D00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&intBitsToFloat_10D),
+    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&intBitsToFloat_10D),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&texture_00J20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00J20B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&refract_20B20B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&refract_20B20B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLod_00I30B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLod_00I30B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&refract_00B00B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&refract_00B00B00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findLSB_10D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findLSB_10D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findLSB_10E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findLSB_10E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&mix_10B10B10F),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&mix_10B10B10F),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&mix_10B10B10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&mix_10B10B10B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProj_00Y30B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProj_00Y30B00B),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_texture_3D)>(&texture3D_00J20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&transpose_D0B),
+    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&transpose_D0B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&log2_30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&log2_30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00J20B20B20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00J20B20B20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGrad_00d30B10B10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGrad_00d30B10B10B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&fract_30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&fract_30B),
+    Rule::Get<Spec::ESSL, 310, Shader::COMPUTE, 0>(&BuiltInVariable::kgl_LocalInvocationIndex),
+    Rule::Get<Spec::GLSL, 0, Shader::COMPUTE, 0>(&BuiltInVariable::kgl_LocalInvocationIndex),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00J00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00J00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGatherOffset_00I10B10D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00I10B10D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00X10B00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00X10B00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetchOffset_00U20D00D10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetchOffset_00U20D00D10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLodOffset_00Y30B00B20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLodOffset_00Y30B00B20D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00e00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00e00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&notEqual_20E20E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&notEqual_20E20E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLodOffset_00d20B00B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLodOffset_00d20B00B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&inverse_A0B),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&inverse_A0B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageStore_01E20D30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGrad_00X20B10B10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGrad_00X20B10B10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_30E30E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_30E30E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&isnan_30B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&isnan_30B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imulExtended_00D00D00D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&imulExtended_00D00D00D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::GEOMETRY_EXT, EXT_INDEX(EXT_geometry_shader)>(
+        &TableBase::m_gl_in),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&atan_20B20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&atan_20B20B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&usubBorrow_00E00E00E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&usubBorrow_00E00E00E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLodOffset_00J30B00B20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLodOffset_00J30B00B20D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&frexp_30B30D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&frexp_30B30D),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(EXT_blend_func_extended)>(
+        &TableBase::m_gl_SecondaryFragDataEXT),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&min_30E30E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&min_30E30E),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, 0>(&texture2DProj_00I30B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&texture2DProj_00I30B00B),
+    Rule::Get<Spec::ESSL, 100, Shader::ALL, EXT_INDEX(EXT_shader_texture_lod)>(
+        &textureCubeGradEXT_00K20B20B20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00I10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00I10B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&min_00B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&min_00B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::VERTEX, 0>(&BuiltInVariable::kgl_InstanceID),
+    Rule::Get<Spec::GLSL, 0, Shader::VERTEX, 0>(&BuiltInVariable::kgl_InstanceID),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(OES_texture_storage_multisample_2d_array)>(
+        &texelFetchExt_00c20D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexImageUniforms),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexImageUniforms),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&sqrt_00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&sqrt_00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&normalize_20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&normalize_20B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxFragmentAtomicCounterBuffers),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxFragmentAtomicCounterBuffers),
+    Rule::Get<Spec::ESSL, 310, Shader::COMPUTE, 0>(&BuiltInVariable::kgl_WorkGroupID),
+    Rule::Get<Spec::GLSL, 0, Shader::COMPUTE, 0>(&BuiltInVariable::kgl_WorkGroupID),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&degrees_00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&degrees_00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&inverse_F0B),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&inverse_F0B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&min_20E00E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&min_20E00E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLod_00R30B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLod_00R30B00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureSize_00P),
+    Rule::Get<Spec::GLSL, 150, Shader::ALL, 0>(&textureSize_00P),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(ANGLE_texture_multisample)>(
+        &textureSizeExt_00P),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGradOffset_00d20B10B10B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGradOffset_00d20B10B10B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLodOffset_00R30B00B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLodOffset_00R30B00B10D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&atan_00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&atan_00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicExchange_00D00D),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicExchange_00D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGatherOffset_00R10B10D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00R10B10D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageStore_00y10D30B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_geometry_shader)>(
+        &TableBase::m_gl_MaxGeometryAtomicCounters),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, 0>(&texture2D_00I10B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&texture2D_00I10B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProj_00X20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProj_00X20B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_20D20D20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_20D20D20D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&greaterThan_30E30E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&greaterThan_30E30E),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&frexp_10B10D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&frexp_10B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_10E00E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_10E00E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&smoothstep_00B00B10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&smoothstep_00B00B10B),
+    Rule::Get<Spec::ESSL, 310, Shader::COMPUTE, 0>(&BuiltInVariable::kgl_GlobalInvocationID),
+    Rule::Get<Spec::GLSL, 0, Shader::COMPUTE, 0>(&BuiltInVariable::kgl_GlobalInvocationID),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&matrixCompMult_60B60B),
+    Rule::Get<Spec::ESSL, 310, Shader::COMPUTE, 0>(&memoryBarrierShared_),
+    Rule::Get<Spec::GLSL, 430, Shader::COMPUTE, 0>(&memoryBarrierShared_),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&normalize_10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&normalize_10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&unpackSnorm2x16_00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&unpackSnorm2x16_00E),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageLoad_00z10D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&lessThan_30D30D),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&lessThan_30D30D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&atan_00B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&atan_00B00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldExtract_20D00D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldExtract_20D00D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&texture_00L20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00L20B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&notEqual_10B10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&notEqual_10B10B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageLoad_01G20D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldExtract_00E00D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldExtract_00E00D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicCompSwap_00D00D00D),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicCompSwap_00D00D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&trunc_30B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&trunc_30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&matrixCompMult_E0BE0B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&length_00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&length_00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&any_20F),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&any_20F),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&memoryBarrier_),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&memoryBarrier_),
+    Rule::Get<Spec::ESSL, 310, Shader::GEOMETRY_EXT, EXT_INDEX(EXT_geometry_shader)>(
+        &TableBase::m_gl_PerVertex),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProj_00X30B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProj_00X30B00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicMax_00D00D),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicMax_00D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::NOT_COMPUTE, EXT_INDEX(OVR_multiview)>(
+        &BuiltInVariable::kgl_ViewID_OVR),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&floor_10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&floor_10B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&sin_10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&sin_10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(EXT_YUV_target)>(&textureSize_00N00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetchOffset_00J20D00D20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetchOffset_00J20D00D20D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&tan_00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&tan_00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&mod_20B20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&mod_20B20B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageLoad_01J20D),
+    Rule::Get<Spec::ESSL, 310, Shader::COMPUTE, 0>(&BuiltInVariable::kgl_WorkGroupSize),
+    Rule::Get<Spec::GLSL, 0, Shader::COMPUTE, 0>(&BuiltInVariable::kgl_WorkGroupSize),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&asinh_30B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&asinh_30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&outerProduct_10B30B),
+    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&outerProduct_10B30B),
+    Rule::Get<Spec::ESSL, 100, Shader::ALL, 0>(&textureCube_00K20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&textureCube_00K20B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(OES_texture_storage_multisample_2d_array)>(
+        &textureSizeExt_00c),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureSize_00b),
+    Rule::Get<Spec::GLSL, 150, Shader::ALL, 0>(&textureSize_00b),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(ANGLE_texture_multisample)>(
+        &textureSizeExt_00b),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&cos_00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&cos_00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&min_20B20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&min_20B20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGradOffset_00f30B10B10B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGradOffset_00f30B10B10B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_20D20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_20D20D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProj_00I30B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProj_00I30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_10D10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_10D10D),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureOffset_00a20B10D00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureOffset_00a20B10D00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00X10B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00X10B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&pow_30B30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&pow_30B30B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00a20B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00a20B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&smoothstep_10B10B10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&smoothstep_10B10B10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(ARB_texture_rectangle)>(&textureProj_00O30B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGatherOffset_00d10B00B10D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00d10B00B10D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&refract_30B30B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&refract_30B30B00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldInsert_20E20E00D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldInsert_20E20E00D00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&floor_20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&floor_20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&equal_20E20E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&equal_20E20E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&mix_00B00B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&mix_00B00B00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageSize_01B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&greaterThanEqual_20B20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&greaterThanEqual_20B20B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&uaddCarry_00E00E00E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&uaddCarry_00E00E00E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&sin_20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&sin_20B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(OES_texture_storage_multisample_2d_array)>(
+        &textureSizeExt_00Q),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&round_20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&round_20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&matrixCompMult_90B90B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLod_00d30B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLod_00d30B00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(OES_texture_storage_multisample_2d_array)>(
+        &textureSizeExt_00W),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLod_00X20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLod_00X20B00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxCombinedAtomicCounterBuffers),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxCombinedAtomicCounterBuffers),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&isnan_00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&isnan_00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&umulExtended_30E30E30E30E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&umulExtended_30E30E30E30E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&faceforward_30B30B30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&faceforward_30B30B30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGradOffset_00Y20B20B20B20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGradOffset_00Y20B20B20B20D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_30E00E00E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_30E00E00E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&asin_00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&asin_00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&ceil_00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&ceil_00B),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_texture_3D)>(&texture3D_00J20B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&distance_00B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&distance_00B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00a20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00a20B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGatherOffset_00a20B10D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00a20B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00f30B10B10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00f30B10B10B),
+    Rule::Get<Spec::ESSL, 100, Shader::ALL, 0>(&texture2DProj_00I30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&texture2DProj_00I30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&modf_20B20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&modf_20B20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGradOffset_00I10B10B10B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGradOffset_00I10B10B10B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&notEqual_30E30E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&notEqual_30E30E),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00I10B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00I10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&lessThanEqual_10E10E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&lessThanEqual_10E10E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&inversesqrt_20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&inversesqrt_20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLodOffset_00J20B00B20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLodOffset_00J20B00B20D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&min_30D30D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&min_30D30D),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureOffset_00R10B10D00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureOffset_00R10B10D00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00e30B20B20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00e30B20B20B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicAdd_00E00E),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicAdd_00E00E),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_geometry_shader)>(
+        &TableBase::m_gl_MaxGeometryInputComponents),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findMSB_30E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findMSB_30E),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findMSB_30D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findMSB_30D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00X10B10B10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00X10B10B10B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&length_30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&length_30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&greaterThanEqual_30E30E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&greaterThanEqual_30E30E),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&fwidth_30B),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&fwidth_30B),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(
+        &fwidthExt_30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00K20B20B20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00K20B20B20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&mix_20B20B20F),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&mix_20B20B20F),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetch_00S20D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetch_00S20D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGradOffset_00U20B10B10B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGradOffset_00U20B10B10B10D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&mix_20B20B20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&mix_20B20B20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&floatBitsToInt_10B),
+    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&floatBitsToInt_10B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&max_10B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&max_10B00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGatherOffset_00L20B10D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00L20B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLod_00a20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00a20B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&any_10F),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&any_10F),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGradOffset_00d30B10B10B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGradOffset_00d30B10B10B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(EXT_YUV_target)>(&textureProj_00N30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&TableBase::m_gl_MaxProgramTexelOffset),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxProgramTexelOffset),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&exp2_30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&exp2_30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetchOffset_00L20D00D10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetchOffset_00L20D00D10D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&equal_30D30D),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&equal_30D30D),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_texture_3D)>(
+        &texture3DProj_00J30B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&packSnorm2x16_10B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&packSnorm2x16_10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&floatBitsToUint_30B),
+    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&floatBitsToUint_30B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&lessThanEqual_30D30D),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&lessThanEqual_30D30D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_geometry_shader)>(
+        &TableBase::m_gl_MaxGeometryImageUniforms),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageLoad_00y10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&asinh_00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&asinh_00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureOffset_00R10B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureOffset_00R10B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&greaterThanEqual_10E10E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&greaterThanEqual_10E10E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGradOffset_00I30B10B10B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGradOffset_00I30B10B10B10D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00Z20B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00Z20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureOffset_00X10B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureOffset_00X10B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&cosh_30B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&cosh_30B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureOffset_00d20B10D00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureOffset_00d20B10D00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00R10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00R10B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureOffset_00S20B20D00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureOffset_00S20B20D00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&usubBorrow_30E30E30E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&usubBorrow_30E30E30E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&radians_00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&radians_00B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProjOffset_00R20B10D00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProjOffset_00R20B10D00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&ldexp_30B30D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&ldexp_30B30D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&max_30B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&max_30B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&min_20D20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&min_20D20D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&step_10B10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&step_10B10B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, EXT_INDEX(EXT_blend_func_extended)>(
+        &TableBase::m_gl_MaxDualSourceDrawBuffersEXT),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&step_30B30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&step_30B30B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldReverse_10E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldReverse_10E),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldReverse_10D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldReverse_10D),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_texture_3D)>(&texture3DProj_00J30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&matrixCompMult_B0BB0B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&lessThan_20E20E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&lessThan_20E20E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&cross_20B20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&cross_20B20B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&all_10F),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&all_10F),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&clamp_20B00B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&clamp_20B00B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&tanh_20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&tanh_20B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&dFdx_00B),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&dFdx_00B),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(&dFdxExt_00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&matrixCompMult_F0BF0B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&matrixCompMult_F0BF0B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&abs_00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&abs_00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&abs_00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&abs_00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLod_00R10B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00R10B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&step_20B20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&step_20B20B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxFragmentAtomicCounters),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxFragmentAtomicCounters),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLodOffset_00U20B00B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLodOffset_00U20B00B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProj_00R20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProj_00R20B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&faceforward_20B20B20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&faceforward_20B20B20B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageSize_01E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&acos_20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&acos_20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetch_00X10D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetch_00X10D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&sinh_00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&sinh_00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageSize_01A),
+    Rule::Get<Spec::ESSL, 100, Shader::VERTEX, 0>(&texture2DLod_00I10B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::VERTEX, 0>(&texture2DLod_00I10B00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&texelFetch_00b10D00D),
+    Rule::Get<Spec::GLSL, 150, Shader::ALL, 0>(&texelFetch_00b10D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(ANGLE_texture_multisample)>(
+        &texelFetchExt_00b10D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageSize_01F),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxAtomicCounterBufferSize),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxAtomicCounterBufferSize),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&max_20B20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&max_20B20B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGatherOffset_00f20B00B10D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00f20B00B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&outerProduct_30B30B),
+    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&outerProduct_30B30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&lessThanEqual_20E20E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&lessThanEqual_20E20E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLod_00X10B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00X10B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&exp_30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&exp_30B),
+    Rule::Get<Spec::ESSL, 300, Shader::VERTEX, EXT_INDEX(ANGLE_base_vertex_base_instance)>(
+        &BuiltInVariable::kgl_BaseVertex),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageSize_01D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&step_00B30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&step_00B30B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitCount_10D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitCount_10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&equal_30E30E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&equal_30E30E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&sign_00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&sign_00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&log_00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&log_00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLod_00Z20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00Z20B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&sign_00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&sign_00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureOffset_00Y20B20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureOffset_00Y20B20D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&transpose_60B),
+    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&transpose_60B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findMSB_00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findMSB_00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_geometry_shader)>(
+        &TableBase::m_gl_MaxGeometryTotalOutputComponents),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&acosh_30B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&acosh_30B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findMSB_00E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findMSB_00E),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldExtract_20E00D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldExtract_20E00D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&uintBitsToFloat_20E),
+    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&uintBitsToFloat_20E),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&unpackUnorm4x8_00E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&unpackUnorm4x8_00E),
+    Rule::Get<Spec::ESSL, 100, Shader::ALL, 0>(&texture2DProj_00M20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetchOffset_00X10D00D10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetchOffset_00X10D00D10D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&mod_10B10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&mod_10B10B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&texture_00d20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00d20B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&notEqual_10D10D),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&notEqual_10D10D),
+    Rule::Get<Spec::ESSL, 100, Shader::ALL, 0>(&texture2DProj_00M30B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureSize_00V),
+    Rule::Get<Spec::GLSL, 150, Shader::ALL, 0>(&textureSize_00V),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(ANGLE_texture_multisample)>(
+        &textureSizeExt_00V),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&packUnorm2x16_10B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&packUnorm2x16_10B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&faceforward_00B00B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&faceforward_00B00B00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&umulExtended_20E20E20E20E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&umulExtended_20E20E20E20E),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureOffset_00X10B10D00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureOffset_00X10B10D00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&cos_30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&cos_30B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findLSB_30D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findLSB_30D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findLSB_30E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findLSB_30E),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitCount_20E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitCount_20E),
+    Rule::Get<Spec::ESSL, 310, Shader::COMPUTE, 0>(&BuiltInVariable::kgl_NumWorkGroups),
+    Rule::Get<Spec::GLSL, 0, Shader::COMPUTE, 0>(&BuiltInVariable::kgl_NumWorkGroups),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&equal_20D20D),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&equal_20D20D),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProjOffset_00Y30B20D00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProjOffset_00Y30B20D00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGatherOffset_00U20B10D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00U20B10D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&faceforward_10B10B10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&faceforward_10B10B10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00L00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00L00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeUniformComponents),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeUniformComponents),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00R10B00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00R10B00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&memoryBarrierBuffer_),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&memoryBarrierBuffer_),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00Z00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00Z00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00U20B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00U20B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldExtract_30D00D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldExtract_30D00D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&min_10D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&min_10D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageStore_01H20D30B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(OES_texture_storage_multisample_2d_array)>(
+        &texelFetchExt_00Q20D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_20E00E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_20E00E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProj_00S30B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProj_00S30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&roundEven_00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&roundEven_00B),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(EXT_shader_texture_lod)>(
+        &texture2DLodEXT_00I10B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&dFdy_30B),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&dFdy_30B),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(&dFdyExt_30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&atanh_20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&atanh_20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_10E00E00E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_10E00E00E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_20D00D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_20D00D00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&all_20F),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&all_20F),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&isinf_10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&isinf_10B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageLoad_01C20D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageSize_01J),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageSize_01H),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageSize_01I),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&packHalf2x16_10B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&packHalf2x16_10B),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, 0>(&texture2DProj_00I20B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&texture2DProj_00I20B00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findLSB_00E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findLSB_00E),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findLSB_00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findLSB_00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjOffset_00X30B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjOffset_00X30B10D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageSize_01C),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&greaterThanEqual_30B30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&greaterThanEqual_30B30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00U00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00U00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGradOffset_00R10B10B10B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGradOffset_00R10B10B10B10D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageSize_01G),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&equal_30F30F),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&equal_30F30F),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldExtract_00D00D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldExtract_00D00D00D),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(EXT_shader_texture_lod)>(
+        &texture2DProjLodEXT_00I20B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&notEqual_30F30F),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&notEqual_30F30F),
+    Rule::Get<Spec::ESSL, 0, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_FrontFacing),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_FrontFacing),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(EXT_blend_func_extended)>(
+        &BuiltInVariable::kgl_SecondaryFragColorEXT),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&inversesqrt_10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&inversesqrt_10B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageStore_01C20D30D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&acos_10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&acos_10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&abs_30D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&abs_30D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxFragmentUniformVectors),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxFragmentUniformVectors),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&fract_20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&fract_20B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&abs_30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&abs_30B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&lessThan_10B10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&lessThan_10B10B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGatherOffset_00X10B10D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00X10B10D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldInsert_10E10E00D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldInsert_10E10E00D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&packSnorm4x8_30B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&packSnorm4x8_30B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&mix_10B10B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&mix_10B10B00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageLoad_01E20D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_30D30D30D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_30D30D30D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00U20B00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00U20B00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00f00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00f00D),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, EXT_INDEX(EXT_YUV_target)>(&textureProj_00N20B00B),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, 0>(&TableBase::m_gl_FragData),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&TableBase::m_gl_FragData),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageLoad_01B20D),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProj_00d30B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProj_00d30B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_20E00E00E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_20E00E00E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00X10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00X10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProj_00d30B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProj_00d30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&mix_30B30B30F),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&mix_30B30B30F),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&determinant_F0B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&transpose_A0B),
+    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&transpose_A0B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&pow_20B20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&pow_20B20B),
+    Rule::Get<Spec::ESSL, 100, Shader::ALL, EXT_INDEX(EXT_shader_texture_lod)>(
+        &texture2DProjGradEXT_00I20B10B10B),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(ARM_shader_framebuffer_fetch)>(
+        &BuiltInVariable::kgl_LastFragColorARM),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00Z20B00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00Z20B00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00R10B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00R10B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&lessThanEqual_20D20D),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&lessThanEqual_20D20D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLod_00S20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00S20B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLod_00Y30B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLod_00Y30B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&cosh_10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&cosh_10B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&sqrt_30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&sqrt_30B),
+    Rule::Get<Spec::ESSL, 300, Shader::VERTEX, 0>(&BuiltInVariable::kgl_VertexID),
+    Rule::Get<Spec::GLSL, 0, Shader::VERTEX, 0>(&BuiltInVariable::kgl_VertexID),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&sign_10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&sign_10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(OES_EGL_image_external_essl3)>(
+        &textureProj_00M30B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&exp_00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&exp_00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&min_00E00E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&min_00E00E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_30D30D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_30D30D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&umulExtended_00E00E00E00E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&umulExtended_00E00E00E00E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexAttribs),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexAttribs),
+    Rule::Get<Spec::ESSL, 300, Shader::VERTEX, EXT_INDEX(ANGLE_base_vertex_base_instance)>(
+        &BuiltInVariable::kgl_BaseInstance),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&transpose_B0B),
+    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&transpose_B0B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&fwidth_20B),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&fwidth_20B),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(
+        &fwidthExt_20B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&smoothstep_00B00B30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&smoothstep_00B00B30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&floatBitsToInt_20B),
+    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&floatBitsToInt_20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(OES_EGL_image_external_essl3)>(
+        &textureSize_00M00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&log2_20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&log2_20B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&ldexp_10B10D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&ldexp_10B10D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&min_10B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&min_10B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&mix_30B30B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&mix_30B30B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::VERTEX, EXT_INDEX(ANGLE_base_vertex_base_instance)>(
+        &BuiltInVariable::kangle_BaseInstance),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&degrees_10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&degrees_10B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxTextureImageUnits),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxTextureImageUnits),
+    Rule::Get<Spec::ESSL, 0, Shader::VERTEX, 0>(&BuiltInVariable::kgl_Position),
+    Rule::Get<Spec::GLSL, 0, Shader::VERTEX, 0>(&BuiltInVariable::kgl_Position),
+    Rule::Get<Spec::ESSL, 310, Shader::GEOMETRY_EXT, EXT_INDEX(EXT_geometry_shader)>(
+        &TableBase::m_gl_PositionGS),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00K20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00K20B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicCompSwap_00E00E00E),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicCompSwap_00E00E00E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjOffset_00Y30B20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjOffset_00Y30B20D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&sinh_10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&sinh_10B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&atan_30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&atan_30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGradOffset_00L20B10B10B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGradOffset_00L20B10B10B10D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&ceil_10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&ceil_10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00S00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00S00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageStore_01D20D30E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&greaterThanEqual_10B10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&greaterThanEqual_10B10B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicCounterDecrement_00G),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&atomicCounterDecrement_00G),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, 0>(&textureCube_00K20B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&textureCube_00K20B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&dot_20B20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&dot_20B20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&transpose_90B),
+    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&transpose_90B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&notFunc_30F),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&notFunc_30F),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLodOffset_00I20B00B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLodOffset_00I20B00B10D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&notEqual_10F10F),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&notEqual_10F10F),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGrad_00R20B10B10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGrad_00R20B10B10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00f30B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00f30B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&smoothstep_00B00B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&smoothstep_00B00B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLodOffset_00d30B00B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLodOffset_00d30B00B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetch_00R10D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetch_00R10D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&cosh_20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&cosh_20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLodOffset_00I30B00B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLodOffset_00I30B00B10D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&normalize_30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&normalize_30B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&smoothstep_30B30B30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&smoothstep_30B30B30B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldInsert_10D10D00D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldInsert_10D10D00D00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&clamp_20B20B20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&clamp_20B20B20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00L20B10B10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00L20B10B10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00R10B10B10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00R10B10B10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGrad_00I20B10B10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGrad_00I20B10B10B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00e20B),
+    Rule::Get<Spec::ESSL, 100, Shader::ALL, 0>(&texture2D_00M10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&min_00D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&min_00D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&outerProduct_10B10B),
+    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&outerProduct_10B10B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&lessThanEqual_10D10D),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&lessThanEqual_10D10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&trunc_20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&trunc_20B),
+    Rule::Get<Spec::ESSL, 100, Shader::ALL, 0>(&TableBase::m_gl_MaxVaryingVectors),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxVaryingVectors),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProjOffset_00I30B10D00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProjOffset_00I30B10D00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00d00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00d00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&sin_00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&sin_00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexUniformVectors),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexUniformVectors),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(EXT_shader_texture_lod)>(
+        &textureCubeLodEXT_00K20B00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00T20B00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00T20B00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(EXT_YUV_target)>(&textureProj_00N20B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&uaddCarry_10E10E10E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&uaddCarry_10E10E10E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&tan_10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&tan_10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLodOffset_00L20B00B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLodOffset_00L20B00B10D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicCounterIncrement_00G),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&atomicCounterIncrement_00G),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&ldexp_20B20D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&ldexp_20B20D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&greaterThanEqual_30D30D),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&greaterThanEqual_30D30D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&notEqual_20B20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&notEqual_20B20B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageLoad_01D20D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLodOffset_00X30B00B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLodOffset_00X30B00B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&isinf_20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&isinf_20B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&cos_10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&cos_10B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&mix_30B30B30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&mix_30B30B30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00e30B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00e30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00T00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00T00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGatherOffset_00X10B10D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00X10B10D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&equal_10E10E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&equal_10E10E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&min_10E10E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&min_10E10E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGradOffset_00Y30B20B20B20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGradOffset_00Y30B20B20B20D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00T20B20B20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00T20B20B20B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&memoryBarrierImage_),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&memoryBarrierImage_),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjOffset_00J30B20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjOffset_00J30B20D),
+    Rule::Get<Spec::ESSL, 310, Shader::GEOMETRY_EXT, EXT_INDEX(EXT_geometry_shader)>(&EmitVertex_),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProjOffset_00d30B10D00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProjOffset_00d30B10D00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&round_10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&round_10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjOffset_00d30B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjOffset_00d30B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&notEqual_10E10E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&notEqual_10E10E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProj_00R30B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProj_00R30B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&matrixCompMult_50B50B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&matrixCompMult_50B50B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&equal_20F20F),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&equal_20F20F),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&TableBase::m_gl_MaxFragmentInputVectors),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxFragmentInputVectors),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&equal_30B30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&equal_30B30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLod_00U20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00U20B00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&usubBorrow_10E10E10E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&usubBorrow_10E10E10E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&equal_10B10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&equal_10B10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGradOffset_00I20B10B10B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGradOffset_00I20B10B10B10D),
+    Rule::Get<Spec::ESSL, 100, Shader::VERTEX, 0>(&texture2DProjLod_00I30B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::VERTEX, 0>(&texture2DProjLod_00I30B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&isnan_10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&isnan_10B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&uaddCarry_20E20E20E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&uaddCarry_20E20E20E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&max_10B10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&max_10B10B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicMax_00E00E),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicMax_00E00E),
+    Rule::Get<Spec::ESSL, 0, Shader::VERTEX, 0>(&BuiltInVariable::kgl_PointSize),
+    Rule::Get<Spec::GLSL, 0, Shader::VERTEX, 0>(&BuiltInVariable::kgl_PointSize),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicMin_00D00D),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicMin_00D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00X00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00X00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&greaterThan_10B10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&greaterThan_10B10B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&asin_10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&asin_10B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00d10B00B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00d10B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&trunc_10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&trunc_10B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeAtomicCounters),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeAtomicCounters),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProj_00X30B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProj_00X30B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexAtomicCounters),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexAtomicCounters),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&length_20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&length_20B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldInsert_30E30E00D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldInsert_30E30E00D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureOffset_00S20B20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureOffset_00S20B20D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjOffset_00X20B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjOffset_00X20B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_30D00D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_30D00D00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&clamp_10B00B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&clamp_10B00B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProj_00R20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProj_00R20B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageStore_01F20D30D),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProj_00I20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProj_00I20B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&greaterThan_10E10E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&greaterThan_10E10E),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProjOffset_00R30B10D00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProjOffset_00R30B10D00B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&dFdy_00B),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&dFdy_00B),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(&dFdyExt_00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&min_30D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&min_30D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&floatBitsToInt_00B),
+    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&floatBitsToInt_00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&sign_10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&sign_10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_00E00E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_00E00E),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&texture_00a20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00a20B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, EXT_INDEX(OES_EGL_image_external_essl3)>(
+        &texture_00M10B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&smoothstep_20B20B20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&smoothstep_20B20B20B),
+    Rule::Get<Spec::ESSL, 100, Shader::VERTEX, 0>(&textureCubeLod_00K20B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::VERTEX, 0>(&textureCubeLod_00K20B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureOffset_00J20B20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureOffset_00J20B20D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetch_00J20D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetch_00J20D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, EXT_INDEX(OES_EGL_image_external_essl3)>(
+        &textureProj_00M20B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&floatBitsToUint_00B),
+    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&floatBitsToUint_00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGradOffset_00R30B10B10B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGradOffset_00R30B10B10B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLod_00K20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00K20B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProjOffset_00X30B10D00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProjOffset_00X30B10D00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&cos_20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&cos_20B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&exp2_00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&exp2_00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&radians_30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&radians_30B),
+    Rule::Get<Spec::ESSL, 100, Shader::ALL, EXT_INDEX(ARB_texture_rectangle)>(
+        &texture2DRectProj_00O20B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&tan_20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&tan_20B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00T20B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00T20B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00a20B00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00a20B00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGradOffset_00J30B20B20B20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGradOffset_00J30B20B20B20D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&asinh_10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&asinh_10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGrad_00X30B10B10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGrad_00X30B10B10B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&floor_00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&floor_00B),
+    Rule::Get<Spec::ESSL, 0, Shader::VERTEX, EXT_INDEX(ANGLE_multi_draw)>(
+        &BuiltInVariable::kgl_DrawID),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicOr_00D00D),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicOr_00D00D),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_texture_3D)>(
+        &texture3DLod_00J20B00B)};
 
+// Flat array of all mangled names.
+constexpr const char *kMangledNames[] = {"textureProj(00R30B00B",
+                                         "texture(00N10B00B",
+                                         "clamp(10D00D00D",
+                                         "gl_PrimitiveID",
+                                         "texture(00R10B00B",
+                                         "modf(00B00B",
+                                         "gl_MaxAtomicCounterBindings",
+                                         "notEqual(20D20D",
+                                         "gl_MaxComputeImageUniforms",
+                                         "textureLod(00L20B00B",
+                                         "angle_BaseVertex",
+                                         "determinant(A0B",
+                                         "textureProjGrad(00I30B10B10B",
+                                         "tanh(30B",
+                                         "gl_Layer",
+                                         "textureOffset(00d20B10D",
+                                         "dFdx(30B",
+                                         "clamp(00E00E00E",
+                                         "transpose(50B",
+                                         "ldexp(00B00D",
+                                         "textureGather(00K20B00D",
+                                         "lessThanEqual(30B30B",
+                                         "greaterThanEqual(20D20D",
+                                         "min(20E20E",
+                                         "asin(20B",
+                                         "outerProduct(20B30B",
+                                         "bitfieldInsert(00D00D00D00D",
+                                         "textureProjGrad(00Y30B20B20B",
+                                         "roundEven(30B",
+                                         "acosh(20B",
+                                         "atanh(10B",
+                                         "mix(20B20B00B",
+                                         "clamp(10B10B10B",
+                                         "textureGrad(00I10B10B10B",
+                                         "textureGatherOffset(00L20B10D00D",
+                                         "bitCount(00D",
+                                         "step(00B20B",
+                                         "lessThan(30E30E",
+                                         "uintBitsToFloat(30E",
+                                         "imulExtended(30D30D30D30D",
+                                         "textureSize(00K00D",
+                                         "gl_MaxGeometryOutputVertices",
+                                         "transpose(70B",
+                                         "textureProjOffset(00S30B20D00B",
+                                         "textureProjLod(00X30B00B",
+                                         "textureSize(00Y00D",
+                                         "gl_MinProgramTexelOffset",
+                                         "texture(00d20B",
+                                         "textureProj(00J30B00B",
+                                         "atan(10B10B",
+                                         "max(20B00B",
+                                         "clamp(30B30B30B",
+                                         "EndPrimitive(",
+                                         "textureLod(00Y20B00B",
+                                         "textureLodOffset(00a20B00B10D",
+                                         "texelFetchOffset(00Y20D00D20D",
+                                         "texelFetch(00a20D00D",
+                                         "min(20D00D",
+                                         "imageLoad(01F20D",
+                                         "uintBitsToFloat(00E",
+                                         "lessThanEqual(20B20B",
+                                         "texelFetch(00N10D00D",
+                                         "atomicAdd(00D00D",
+                                         "gl_MaxGeometryOutputComponents",
+                                         "gl_MaxGeometryTextureImageUnits",
+                                         "floatBitsToUint(20B",
+                                         "bitfieldInsert(20D20D00D00D",
+                                         "gl_MaxVertexTextureImageUnits",
+                                         "texture(00Z20B",
+                                         "min(10D10D",
+                                         "degrees(20B",
+                                         "tanh(00B",
+                                         "textureProjOffset(00J30B20D00B",
+                                         "all(30F",
+                                         "abs(20D",
+                                         "abs(20B",
+                                         "inversesqrt(00B",
+                                         "matrixCompMult(D0BD0B",
+                                         "lessThanEqual(10B10B",
+                                         "bitfieldReverse(20D",
+                                         "bitfieldReverse(20E",
+                                         "textureProjGrad(00S30B20B20B",
+                                         "equal(10D10D",
+                                         "max(30D00D",
+                                         "groupMemoryBarrier(",
+                                         "mix(00B00B00F",
+                                         "textureProjGradOffset(00R20B10B10B10D",
+                                         "imageLoad(01A10D",
+                                         "intBitsToFloat(30D",
+                                         "textureProj(00I20B",
+                                         "texelFetch(00I10D00D",
+                                         "min(30B30B",
+                                         "imageStore(01I20D30D",
+                                         "gl_MaxVertexAtomicCounterBuffers",
+                                         "textureLodOffset(00S20B00B20D",
+                                         "textureGatherOffset(00R10B10D",
+                                         "acos(00B",
+                                         "fract(10B",
+                                         "transpose(E0B",
+                                         "intBitsToFloat(00D",
+                                         "textureGradOffset(00J20B20B20B20D",
+                                         "memoryBarrierAtomicCounter(",
+                                         "texture2DGradEXT(00I10B10B10B",
+                                         "bitfieldInsert(00E00E00D00D",
+                                         "atomicXor(00D00D",
+                                         "greaterThan(20B20B",
+                                         "textureLodOffset(00I10B00B10D",
+                                         "texelFetch(00Y20D00D",
+                                         "texture2DProjGradEXT(00I30B10B10B",
+                                         "textureGrad(00d20B10B10B",
+                                         "textureProjOffset(00R30B10D",
+                                         "textureOffset(00U20B10D",
+                                         "atan(10B",
+                                         "modf(10B10B",
+                                         "min(30B00B",
+                                         "determinant(50B",
+                                         "lessThan(20B20B",
+                                         "atomicAnd(00D00D",
+                                         "gl_FragColor",
+                                         "exp(10B",
+                                         "textureProjOffset(00I20B10D00B",
+                                         "step(00B10B",
+                                         "bitCount(30D",
+                                         "textureProjLod(00I20B00B",
+                                         "unpackUnorm2x16(00E",
+                                         "rgb_2_yuv(20B00H",
+                                         "sqrt(20B",
+                                         "sign(20B",
+                                         "imageStore(01B20D30B",
+                                         "sign(20D",
+                                         "atanh(00B",
+                                         "textureGradOffset(00X10B10B10B10D",
+                                         "gl_DepthRange",
+                                         "imulExtended(10D10D10D10D",
+                                         "atan(20B",
+                                         "texture(00M10B",
+                                         "gl_MaxVertexOutputVectors",
+                                         "texture(00T20B",
+                                         "log2(10B",
+                                         "min(10B10B",
+                                         "gl_MaxImageUnits",
+                                         "pow(10B10B",
+                                         "findLSB(20E",
+                                         "findLSB(20D",
+                                         "texture(00Y20B",
+                                         "packUnorm4x8(30B",
+                                         "texture(00X10B00B",
+                                         "frexp(00B00D",
+                                         "texture2D(00I10B",
+                                         "not(10F",
+                                         "texelFetch(00P10D00D",
+                                         "lessThan(10E10E",
+                                         "ceil(20B",
+                                         "textureLodOffset(00R10B00B10D",
+                                         "clamp(10D10D10D",
+                                         "texelFetch(00M10D00D",
+                                         "texture(00O10B",
+                                         "transpose(F0B",
+                                         "textureOffset(00Y20B20D00B",
+                                         "textureGradOffset(00S20B20B20B20D",
+                                         "atomicXor(00E00E",
+                                         "textureProjOffset(00R20B10D",
+                                         "gl_FragCoord",
+                                         "clamp(30E30E30E",
+                                         "textureProj(00N30B00B",
+                                         "textureSize(00R00D",
+                                         "gl_MaxFragmentImageUniforms",
+                                         "normalize(00B",
+                                         "textureOffset(00I10B10D",
+                                         "atomicExchange(00E00E",
+                                         "textureProj(00I30B00B",
+                                         "acosh(10B",
+                                         "gl_MaxCombinedShaderOutputResources",
+                                         "atomicOr(00E00E",
+                                         "min(20B00B",
+                                         "textureProj(00M30B00B",
+                                         "textureProj(00M20B",
+                                         "texture(00I10B00B",
+                                         "reflect(00B00B",
+                                         "mod(20B00B",
+                                         "lessThan(20D20D",
+                                         "reflect(10B10B",
+                                         "floatBitsToUint(10B",
+                                         "textureLod(00J20B00B",
+                                         "sqrt(10B",
+                                         "textureProjLod(00S30B00B",
+                                         "clamp(20E20E20E",
+                                         "atomicAnd(00E00E",
+                                         "max(20D00D",
+                                         "textureSize(00I00D",
+                                         "gl_MaxComputeAtomicCounterBuffers",
+                                         "gl_PrimitiveIDIn",
+                                         "texelFetchOffset(00R10D00D10D",
+                                         "isinf(30B",
+                                         "textureGatherOffset(00a20B10D00D",
+                                         "lessThan(30B30B",
+                                         "textureGatherOffset(00I10B10D",
+                                         "textureOffset(00L20B10D00B",
+                                         "textureLodOffset(00X10B00B10D",
+                                         "texture(00T20B00B",
+                                         "textureOffset(00L20B10D",
+                                         "lessThanEqual(30E30E",
+                                         "textureOffset(00J20B20D00B",
+                                         "min(10E00E",
+                                         "log(30B",
+                                         "atomicCounter(00G",
+                                         "textureProjOffset(00S30B20D",
+                                         "imageLoad(01I20D",
+                                         "round(00B",
+                                         "smoothstep(00B00B20B",
+                                         "imageLoad(01H20D",
+                                         "textureGather(00K20B",
+                                         "bitfieldInsert(30D30D00D00D",
+                                         "imageStore(01G20D30E",
+                                         "fwidth(10B",
+                                         "textureProjLod(00R20B00B",
+                                         "notEqual(30D30D",
+                                         "refract(10B10B00B",
+                                         "textureProjOffset(00I20B10D",
+                                         "greaterThan(30D30D",
+                                         "greaterThan(10D10D",
+                                         "texture(00U20B",
+                                         "textureSize(00a00D",
+                                         "bitfieldExtract(10E00D00D",
+                                         "gl_MaxDrawBuffers",
+                                         "textureGatherOffset(00U20B10D00D",
+                                         "gl_MaxComputeWorkGroupCount",
+                                         "textureProjLod(00J30B00B",
+                                         "texture2DRect(00O10B",
+                                         "imulExtended(20D20D20D20D",
+                                         "any(30F",
+                                         "distance(30B30B",
+                                         "greaterThan(20D20D",
+                                         "textureOffset(00a20B10D",
+                                         "greaterThan(30B30B",
+                                         "trunc(00B",
+                                         "sinh(30B",
+                                         "length(10B",
+                                         "findMSB(10E",
+                                         "findMSB(10D",
+                                         "dot(00B00B",
+                                         "asinh(20B",
+                                         "dot(30B30B",
+                                         "bitCount(00E",
+                                         "tan(30B",
+                                         "textureLod(00T20B00B",
+                                         "usubBorrow(20E20E20E",
+                                         "imageStore(00z10D30D",
+                                         "textureProjGrad(00R30B10B10B",
+                                         "exp2(10B",
+                                         "textureProj(00O20B",
+                                         "textureProjOffset(00X20B10D00B",
+                                         "outerProduct(10B20B",
+                                         "gl_MaxGeometryAtomicCounterBuffers",
+                                         "textureProjGradOffset(00X30B10B10B10D",
+                                         "textureOffset(00I10B10D00B",
+                                         "clamp(30B00B00B",
+                                         "inverse(50B",
+                                         "dot(10B10B",
+                                         "unpackHalf2x16(00E",
+                                         "matrixCompMult(A0BA0B",
+                                         "texture2DProjLod(00I20B00B",
+                                         "texelFetch(00W20D00D",
+                                         "texture2DRectProj(00O30B",
+                                         "radians(20B",
+                                         "textureGrad(00S20B20B20B",
+                                         "max(10D00D",
+                                         "imageStore(01J20D30E",
+                                         "round(30B",
+                                         "gl_MaxComputeTextureImageUnits",
+                                         "clamp(00D00D00D",
+                                         "sin(30B",
+                                         "floor(30B",
+                                         "textureProj(00S30B00B",
+                                         "textureGrad(00Y20B20B20B",
+                                         "gl_MaxCombinedAtomicCounters",
+                                         "textureGather(00L20B00D",
+                                         "textureProjGradOffset(00S30B20B20B20D",
+                                         "imageStore(01A10D30E",
+                                         "texture(00J20B",
+                                         "gl_PointCoord",
+                                         "dFdx(20B",
+                                         "textureProj(00X20B",
+                                         "max(10E10E",
+                                         "max(30B30B",
+                                         "clamp(10E10E10E",
+                                         "texelFetchOffset(00S20D00D20D",
+                                         "texture(00N10B",
+                                         "texture(00L20B",
+                                         "barrier(",
+                                         "gl_MaxGeometryUniformComponents",
+                                         "greaterThanEqual(20E20E",
+                                         "lessThan(10D10D",
+                                         "texelFetchOffset(00a20D00D10D",
+                                         "textureProjGradOffset(00X20B10B10B10D",
+                                         "texture2DProj(00I20B",
+                                         "texture3DProjLod(00J30B00B",
+                                         "not(20F",
+                                         "",
+                                         "findMSB(20D",
+                                         "findMSB(20E",
+                                         "texelFetchOffset(00I10D00D10D",
+                                         "textureGather(00I10B00D",
+                                         "texelFetch(00V10D00D",
+                                         "outerProduct(20B20B",
+                                         "atan(30B30B",
+                                         "unpackSnorm4x8(00E",
+                                         "bitCount(30E",
+                                         "textureProjLodOffset(00R20B00B10D",
+                                         "log(20B",
+                                         "asin(30B",
+                                         "textureGather(00f20B",
+                                         "modf(30B30B",
+                                         "isnan(20B",
+                                         "max(00B00B",
+                                         "roundEven(20B",
+                                         "fwidth(00B",
+                                         "textureProjGrad(00J30B20B20B",
+                                         "dFdy(10B",
+                                         "outerProduct(30B10B",
+                                         "floatBitsToInt(30B",
+                                         "textureProj(00J30B",
+                                         "gl_InvocationID",
+                                         "max(30E00E",
+                                         "exp2(20B",
+                                         "textureLod(00d20B00B",
+                                         "radians(10B",
+                                         "texelFetch(00U20D00D",
+                                         "gl_MaxComputeWorkGroupSize",
+                                         "max(00D00D",
+                                         "gl_LastFragData",
+                                         "ceil(30B",
+                                         "atomicMin(00E00E",
+                                         "gl_MaxCombinedTextureImageUnits",
+                                         "bitCount(10E",
+                                         "texture(00S20B00B",
+                                         "textureGather(00e20B00B",
+                                         "gl_DepthRangeParameters",
+                                         "distance(10B10B",
+                                         "reflect(20B20B",
+                                         "mod(10B00B",
+                                         "uintBitsToFloat(10E",
+                                         "textureGrad(00Z20B20B20B",
+                                         "equal(10F10F",
+                                         "cosh(00B",
+                                         "bitfieldReverse(00D",
+                                         "bitfieldReverse(00E",
+                                         "max(20E20E",
+                                         "matrixCompMult(70B70B",
+                                         "bitfieldExtract(30E00D00D",
+                                         "textureLod(00I10B00B",
+                                         "greaterThanEqual(10D10D",
+                                         "texture(00e30B00B",
+                                         "textureLodOffset(00Y20B00B20D",
+                                         "log2(00B",
+                                         "gl_LastFragColor",
+                                         "abs(10D",
+                                         "abs(10B",
+                                         "acos(30B",
+                                         "tanh(10B",
+                                         "degrees(30B",
+                                         "gl_FragDepthEXT",
+                                         "dFdx(10B",
+                                         "textureProjOffset(00I30B10D",
+                                         "bitfieldReverse(30E",
+                                         "bitfieldReverse(30D",
+                                         "inversesqrt(30B",
+                                         "gl_LocalInvocationID",
+                                         "",
+                                         "clamp(00B00B00B",
+                                         "textureGather(00d10B",
+                                         "frexp(20B20D",
+                                         "intBitsToFloat(20D",
+                                         "fract(00B",
+                                         "gl_FragDepth",
+                                         "min(30E00E",
+                                         "exp(20B",
+                                         "equal(20B20B",
+                                         "textureProjLodOffset(00X20B00B10D",
+                                         "acosh(00B",
+                                         "log(10B",
+                                         "textureProjLodOffset(00S30B00B20D",
+                                         "sinh(20B",
+                                         "textureGather(00L20B",
+                                         "reflect(30B30B",
+                                         "outerProduct(30B20B",
+                                         "texture(00U20B00B",
+                                         "texture(00S20B",
+                                         "outerProduct(20B10B",
+                                         "umulExtended(10E10E10E10E",
+                                         "texture(00Z20B00B",
+                                         "textureGradOffset(00a20B10B10B10D",
+                                         "notEqual(20F20F",
+                                         "mod(30B30B",
+                                         "bitfieldExtract(10D00D00D",
+                                         "sign(30B",
+                                         "sign(30D",
+                                         "pow(00B00B",
+                                         "mod(00B00B",
+                                         "texture(00Y20B00B",
+                                         "notEqual(30B30B",
+                                         "roundEven(10B",
+                                         "texture2DProjLodEXT(00I30B00B",
+                                         "atanh(30B",
+                                         "dFdy(20B",
+                                         "textureProj(00Y30B",
+                                         "bitCount(20D",
+                                         "step(00B00B",
+                                         "texelFetch(00L20D00D",
+                                         "imageSize(00y",
+                                         "isinf(00B",
+                                         "imageSize(00z",
+                                         "distance(20B20B",
+                                         "textureGrad(00U20B10B10B",
+                                         "uaddCarry(30E30E30E",
+                                         "mod(30B00B",
+                                         "texture(00K20B00B",
+                                         "gl_MaxCombinedImageUniforms",
+                                         "yuv_2_rgb(20B00H",
+                                         "textureGather(00f20B00B",
+                                         "greaterThan(20E20E",
+                                         "textureGrad(00a20B10B10B",
+                                         "textureOffset(00U20B10D00B",
+                                         "intBitsToFloat(10D",
+                                         "texture(00J20B00B",
+                                         "refract(20B20B00B",
+                                         "textureProjLod(00I30B00B",
+                                         "refract(00B00B00B",
+                                         "findLSB(10D",
+                                         "findLSB(10E",
+                                         "mix(10B10B10F",
+                                         "mix(10B10B10B",
+                                         "textureProj(00Y30B00B",
+                                         "texture3D(00J20B",
+                                         "transpose(D0B",
+                                         "log2(30B",
+                                         "textureGrad(00J20B20B20B",
+                                         "textureProjGrad(00d30B10B10B",
+                                         "fract(30B",
+                                         "gl_LocalInvocationIndex",
+                                         "textureSize(00J00D",
+                                         "textureGatherOffset(00I10B10D00D",
+                                         "textureGather(00X10B00D",
+                                         "texelFetchOffset(00U20D00D10D",
+                                         "textureProjLodOffset(00Y30B00B20D",
+                                         "textureSize(00e00D",
+                                         "notEqual(20E20E",
+                                         "textureLodOffset(00d20B00B10D",
+                                         "inverse(A0B",
+                                         "imageStore(01E20D30B",
+                                         "textureProjGrad(00X20B10B10B",
+                                         "max(30E30E",
+                                         "isnan(30B",
+                                         "imulExtended(00D00D00D00D",
+                                         "gl_in",
+                                         "atan(20B20B",
+                                         "usubBorrow(00E00E00E",
+                                         "textureProjLodOffset(00J30B00B20D",
+                                         "frexp(30B30D",
+                                         "gl_SecondaryFragDataEXT",
+                                         "min(30E30E",
+                                         "texture2DProj(00I30B00B",
+                                         "textureCubeGradEXT(00K20B20B20B",
+                                         "texture(00I10B",
+                                         "min(00B00B",
+                                         "gl_InstanceID",
+                                         "texelFetch(00c20D00D",
+                                         "gl_MaxVertexImageUniforms",
+                                         "sqrt(00B",
+                                         "normalize(20B",
+                                         "gl_MaxFragmentAtomicCounterBuffers",
+                                         "gl_WorkGroupID",
+                                         "degrees(00B",
+                                         "inverse(F0B",
+                                         "min(20E00E",
+                                         "textureProjLod(00R30B00B",
+                                         "textureSize(00P",
+                                         "textureGradOffset(00d20B10B10B10D",
+                                         "textureProjLodOffset(00R30B00B10D",
+                                         "atan(00B",
+                                         "atomicExchange(00D00D",
+                                         "textureGatherOffset(00R10B10D00D",
+                                         "imageStore(00y10D30B",
+                                         "gl_MaxGeometryAtomicCounters",
+                                         "texture2D(00I10B00B",
+                                         "textureProj(00X20B00B",
+                                         "clamp(20D20D20D",
+                                         "greaterThan(30E30E",
+                                         "frexp(10B10D",
+                                         "max(10E00E",
+                                         "smoothstep(00B00B10B",
+                                         "gl_GlobalInvocationID",
+                                         "matrixCompMult(60B60B",
+                                         "memoryBarrierShared(",
+                                         "normalize(10B",
+                                         "unpackSnorm2x16(00E",
+                                         "imageLoad(00z10D",
+                                         "lessThan(30D30D",
+                                         "atan(00B00B",
+                                         "bitfieldExtract(20D00D00D",
+                                         "texture(00L20B00B",
+                                         "notEqual(10B10B",
+                                         "imageLoad(01G20D",
+                                         "bitfieldExtract(00E00D00D",
+                                         "atomicCompSwap(00D00D00D",
+                                         "trunc(30B",
+                                         "matrixCompMult(E0BE0B",
+                                         "length(00B",
+                                         "any(20F",
+                                         "memoryBarrier(",
+                                         "gl_PerVertex",
+                                         "textureProj(00X30B00B",
+                                         "atomicMax(00D00D",
+                                         "gl_ViewID_OVR",
+                                         "floor(10B",
+                                         "sin(10B",
+                                         "textureSize(00N00D",
+                                         "texelFetchOffset(00J20D00D20D",
+                                         "tan(00B",
+                                         "mod(20B20B",
+                                         "imageLoad(01J20D",
+                                         "gl_WorkGroupSize",
+                                         "asinh(30B",
+                                         "outerProduct(10B30B",
+                                         "textureCube(00K20B",
+                                         "textureSize(00c",
+                                         "textureSize(00b",
+                                         "cos(00B",
+                                         "min(20B20B",
+                                         "textureGradOffset(00f30B10B10B10D",
+                                         "max(20D20D",
+                                         "textureProj(00I30B",
+                                         "max(10D10D",
+                                         "textureOffset(00a20B10D00B",
+                                         "textureGather(00X10B",
+                                         "pow(30B30B",
+                                         "textureGather(00a20B",
+                                         "smoothstep(10B10B10B",
+                                         "textureProj(00O30B",
+                                         "textureGatherOffset(00d10B00B10D",
+                                         "refract(30B30B00B",
+                                         "bitfieldInsert(20E20E00D00D",
+                                         "floor(20B",
+                                         "equal(20E20E",
+                                         "mix(00B00B00B",
+                                         "imageSize(01B",
+                                         "greaterThanEqual(20B20B",
+                                         "uaddCarry(00E00E00E",
+                                         "sin(20B",
+                                         "textureSize(00Q",
+                                         "round(20B",
+                                         "matrixCompMult(90B90B",
+                                         "textureProjLod(00d30B00B",
+                                         "textureSize(00W",
+                                         "textureProjLod(00X20B00B",
+                                         "gl_MaxCombinedAtomicCounterBuffers",
+                                         "isnan(00B",
+                                         "umulExtended(30E30E30E30E",
+                                         "faceforward(30B30B30B",
+                                         "textureGradOffset(00Y20B20B20B20D",
+                                         "clamp(30E00E00E",
+                                         "asin(00B",
+                                         "ceil(00B",
+                                         "texture3D(00J20B00B",
+                                         "distance(00B00B",
+                                         "texture(00a20B",
+                                         "textureGatherOffset(00a20B10D",
+                                         "textureGrad(00f30B10B10B",
+                                         "texture2DProj(00I30B",
+                                         "modf(20B20B",
+                                         "textureGradOffset(00I10B10B10B10D",
+                                         "notEqual(30E30E",
+                                         "textureGather(00I10B",
+                                         "lessThanEqual(10E10E",
+                                         "inversesqrt(20B",
+                                         "textureLodOffset(00J20B00B20D",
+                                         "min(30D30D",
+                                         "textureOffset(00R10B10D00B",
+                                         "textureGrad(00e30B20B20B",
+                                         "atomicAdd(00E00E",
+                                         "gl_MaxGeometryInputComponents",
+                                         "findMSB(30E",
+                                         "findMSB(30D",
+                                         "textureGrad(00X10B10B10B",
+                                         "length(30B",
+                                         "greaterThanEqual(30E30E",
+                                         "fwidth(30B",
+                                         "textureGrad(00K20B20B20B",
+                                         "mix(20B20B20F",
+                                         "texelFetch(00S20D00D",
+                                         "textureGradOffset(00U20B10B10B10D",
+                                         "mix(20B20B20B",
+                                         "floatBitsToInt(10B",
+                                         "max(10B00B",
+                                         "textureGatherOffset(00L20B10D",
+                                         "textureLod(00a20B00B",
+                                         "any(10F",
+                                         "textureProjGradOffset(00d30B10B10B10D",
+                                         "textureProj(00N30B",
+                                         "gl_MaxProgramTexelOffset",
+                                         "exp2(30B",
+                                         "texelFetchOffset(00L20D00D10D",
+                                         "equal(30D30D",
+                                         "texture3DProj(00J30B00B",
+                                         "packSnorm2x16(10B",
+                                         "floatBitsToUint(30B",
+                                         "lessThanEqual(30D30D",
+                                         "gl_MaxGeometryImageUniforms",
+                                         "imageLoad(00y10D",
+                                         "asinh(00B",
+                                         "textureOffset(00R10B10D",
+                                         "greaterThanEqual(10E10E",
+                                         "textureProjGradOffset(00I30B10B10B10D",
+                                         "textureGather(00Z20B",
+                                         "textureOffset(00X10B10D",
+                                         "cosh(30B",
+                                         "textureOffset(00d20B10D00B",
+                                         "texture(00R10B",
+                                         "textureOffset(00S20B20D00B",
+                                         "usubBorrow(30E30E30E",
+                                         "radians(00B",
+                                         "textureProjOffset(00R20B10D00B",
+                                         "ldexp(30B30D",
+                                         "max(30B00B",
+                                         "min(20D20D",
+                                         "step(10B10B",
+                                         "gl_MaxDualSourceDrawBuffersEXT",
+                                         "step(30B30B",
+                                         "bitfieldReverse(10E",
+                                         "bitfieldReverse(10D",
+                                         "texture3DProj(00J30B",
+                                         "matrixCompMult(B0BB0B",
+                                         "lessThan(20E20E",
+                                         "cross(20B20B",
+                                         "all(10F",
+                                         "clamp(20B00B00B",
+                                         "tanh(20B",
+                                         "dFdx(00B",
+                                         "matrixCompMult(F0BF0B",
+                                         "abs(00D",
+                                         "abs(00B",
+                                         "textureLod(00R10B00B",
+                                         "step(20B20B",
+                                         "gl_MaxFragmentAtomicCounters",
+                                         "textureLodOffset(00U20B00B10D",
+                                         "textureProj(00R20B00B",
+                                         "faceforward(20B20B20B",
+                                         "imageSize(01E",
+                                         "acos(20B",
+                                         "texelFetch(00X10D00D",
+                                         "sinh(00B",
+                                         "imageSize(01A",
+                                         "texture2DLod(00I10B00B",
+                                         "texelFetch(00b10D00D",
+                                         "imageSize(01F",
+                                         "gl_MaxAtomicCounterBufferSize",
+                                         "max(20B20B",
+                                         "textureGatherOffset(00f20B00B10D",
+                                         "outerProduct(30B30B",
+                                         "lessThanEqual(20E20E",
+                                         "textureLod(00X10B00B",
+                                         "exp(30B",
+                                         "gl_BaseVertex",
+                                         "imageSize(01D",
+                                         "step(00B30B",
+                                         "bitCount(10D",
+                                         "equal(30E30E",
+                                         "sign(00B",
+                                         "log(00B",
+                                         "textureLod(00Z20B00B",
+                                         "sign(00D",
+                                         "textureOffset(00Y20B20D",
+                                         "transpose(60B",
+                                         "findMSB(00D",
+                                         "gl_MaxGeometryTotalOutputComponents",
+                                         "acosh(30B",
+                                         "findMSB(00E",
+                                         "bitfieldExtract(20E00D00D",
+                                         "uintBitsToFloat(20E",
+                                         "unpackUnorm4x8(00E",
+                                         "texture2DProj(00M20B",
+                                         "texelFetchOffset(00X10D00D10D",
+                                         "mod(10B10B",
+                                         "texture(00d20B00B",
+                                         "notEqual(10D10D",
+                                         "texture2DProj(00M30B",
+                                         "textureSize(00V",
+                                         "packUnorm2x16(10B",
+                                         "faceforward(00B00B00B",
+                                         "umulExtended(20E20E20E20E",
+                                         "textureOffset(00X10B10D00B",
+                                         "cos(30B",
+                                         "findLSB(30D",
+                                         "findLSB(30E",
+                                         "bitCount(20E",
+                                         "gl_NumWorkGroups",
+                                         "equal(20D20D",
+                                         "textureProjOffset(00Y30B20D00B",
+                                         "textureGatherOffset(00U20B10D",
+                                         "faceforward(10B10B10B",
+                                         "textureSize(00L00D",
+                                         "gl_MaxComputeUniformComponents",
+                                         "textureGather(00R10B00D",
+                                         "memoryBarrierBuffer(",
+                                         "textureSize(00Z00D",
+                                         "textureGather(00U20B",
+                                         "bitfieldExtract(30D00D00D",
+                                         "min(10D00D",
+                                         "imageStore(01H20D30B",
+                                         "texelFetch(00Q20D00D",
+                                         "max(20E00E",
+                                         "textureProj(00S30B",
+                                         "roundEven(00B",
+                                         "texture2DLodEXT(00I10B00B",
+                                         "dFdy(30B",
+                                         "atanh(20B",
+                                         "clamp(10E00E00E",
+                                         "clamp(20D00D00D",
+                                         "all(20F",
+                                         "isinf(10B",
+                                         "imageLoad(01C20D",
+                                         "imageSize(01J",
+                                         "imageSize(01H",
+                                         "imageSize(01I",
+                                         "packHalf2x16(10B",
+                                         "texture2DProj(00I20B00B",
+                                         "findLSB(00E",
+                                         "findLSB(00D",
+                                         "textureProjOffset(00X30B10D",
+                                         "imageSize(01C",
+                                         "greaterThanEqual(30B30B",
+                                         "textureSize(00U00D",
+                                         "textureGradOffset(00R10B10B10B10D",
+                                         "imageSize(01G",
+                                         "equal(30F30F",
+                                         "bitfieldExtract(00D00D00D",
+                                         "texture2DProjLodEXT(00I20B00B",
+                                         "notEqual(30F30F",
+                                         "gl_FrontFacing",
+                                         "gl_SecondaryFragColorEXT",
+                                         "inversesqrt(10B",
+                                         "imageStore(01C20D30D",
+                                         "acos(10B",
+                                         "abs(30D",
+                                         "gl_MaxFragmentUniformVectors",
+                                         "fract(20B",
+                                         "abs(30B",
+                                         "lessThan(10B10B",
+                                         "textureGatherOffset(00X10B10D",
+                                         "bitfieldInsert(10E10E00D00D",
+                                         "packSnorm4x8(30B",
+                                         "mix(10B10B00B",
+                                         "imageLoad(01E20D",
+                                         "clamp(30D30D30D",
+                                         "textureGather(00U20B00D",
+                                         "textureSize(00f00D",
+                                         "textureProj(00N20B00B",
+                                         "gl_FragData",
+                                         "imageLoad(01B20D",
+                                         "textureProj(00d30B00B",
+                                         "clamp(20E00E00E",
+                                         "texture(00X10B",
+                                         "textureProj(00d30B",
+                                         "mix(30B30B30F",
+                                         "determinant(F0B",
+                                         "transpose(A0B",
+                                         "pow(20B20B",
+                                         "texture2DProjGradEXT(00I20B10B10B",
+                                         "gl_LastFragColorARM",
+                                         "textureGather(00Z20B00D",
+                                         "textureGather(00R10B",
+                                         "lessThanEqual(20D20D",
+                                         "textureLod(00S20B00B",
+                                         "textureProjLod(00Y30B00B",
+                                         "cosh(10B",
+                                         "sqrt(30B",
+                                         "gl_VertexID",
+                                         "sign(10D",
+                                         "textureProj(00M30B",
+                                         "exp(00B",
+                                         "min(00E00E",
+                                         "max(30D30D",
+                                         "umulExtended(00E00E00E00E",
+                                         "gl_MaxVertexAttribs",
+                                         "gl_BaseInstance",
+                                         "transpose(B0B",
+                                         "fwidth(20B",
+                                         "",
+                                         "smoothstep(00B00B30B",
+                                         "floatBitsToInt(20B",
+                                         "textureSize(00M00D",
+                                         "log2(20B",
+                                         "ldexp(10B10D",
+                                         "min(10B00B",
+                                         "mix(30B30B00B",
+                                         "angle_BaseInstance",
+                                         "degrees(10B",
+                                         "gl_MaxTextureImageUnits",
+                                         "gl_Position",
+                                         "texture(00K20B",
+                                         "atomicCompSwap(00E00E00E",
+                                         "textureProjOffset(00Y30B20D",
+                                         "sinh(10B",
+                                         "atan(30B",
+                                         "textureGradOffset(00L20B10B10B10D",
+                                         "ceil(10B",
+                                         "textureSize(00S00D",
+                                         "imageStore(01D20D30E",
+                                         "greaterThanEqual(10B10B",
+                                         "atomicCounterDecrement(00G",
+                                         "textureCube(00K20B00B",
+                                         "dot(20B20B",
+                                         "transpose(90B",
+                                         "not(30F",
+                                         "textureProjLodOffset(00I20B00B10D",
+                                         "notEqual(10F10F",
+                                         "textureProjGrad(00R20B10B10B",
+                                         "texture(00f30B",
+                                         "smoothstep(00B00B00B",
+                                         "textureProjLodOffset(00d30B00B10D",
+                                         "texelFetch(00R10D00D",
+                                         "cosh(20B",
+                                         "textureProjLodOffset(00I30B00B10D",
+                                         "normalize(30B",
+                                         "smoothstep(30B30B30B",
+                                         "bitfieldInsert(10D10D00D00D",
+                                         "clamp(20B20B20B",
+                                         "textureGrad(00L20B10B10B",
+                                         "textureGrad(00R10B10B10B",
+                                         "textureProjGrad(00I20B10B10B",
+                                         "textureGather(00e20B",
+                                         "texture2D(00M10B",
+                                         "min(00D00D",
+                                         "outerProduct(10B10B",
+                                         "lessThanEqual(10D10D",
+                                         "trunc(20B",
+                                         "gl_MaxVaryingVectors",
+                                         "textureProjOffset(00I30B10D00B",
+                                         "textureSize(00d00D",
+                                         "sin(00B",
+                                         "gl_MaxVertexUniformVectors",
+                                         "textureCubeLodEXT(00K20B00B",
+                                         "textureGather(00T20B00D",
+                                         "textureProj(00N20B",
+                                         "uaddCarry(10E10E10E",
+                                         "tan(10B",
+                                         "textureLodOffset(00L20B00B10D",
+                                         "atomicCounterIncrement(00G",
+                                         "ldexp(20B20D",
+                                         "greaterThanEqual(30D30D",
+                                         "notEqual(20B20B",
+                                         "imageLoad(01D20D",
+                                         "textureProjLodOffset(00X30B00B10D",
+                                         "isinf(20B",
+                                         "cos(10B",
+                                         "mix(30B30B30B",
+                                         "texture(00e30B",
+                                         "textureSize(00T00D",
+                                         "textureGatherOffset(00X10B10D00D",
+                                         "equal(10E10E",
+                                         "min(10E10E",
+                                         "textureProjGradOffset(00Y30B20B20B20D",
+                                         "textureGrad(00T20B20B20B",
+                                         "memoryBarrierImage(",
+                                         "textureProjOffset(00J30B20D",
+                                         "EmitVertex(",
+                                         "textureProjOffset(00d30B10D00B",
+                                         "round(10B",
+                                         "textureProjOffset(00d30B10D",
+                                         "notEqual(10E10E",
+                                         "textureProj(00R30B",
+                                         "matrixCompMult(50B50B",
+                                         "equal(20F20F",
+                                         "gl_MaxFragmentInputVectors",
+                                         "equal(30B30B",
+                                         "textureLod(00U20B00B",
+                                         "usubBorrow(10E10E10E",
+                                         "equal(10B10B",
+                                         "textureProjGradOffset(00I20B10B10B10D",
+                                         "texture2DProjLod(00I30B00B",
+                                         "isnan(10B",
+                                         "uaddCarry(20E20E20E",
+                                         "max(10B10B",
+                                         "atomicMax(00E00E",
+                                         "gl_PointSize",
+                                         "atomicMin(00D00D",
+                                         "textureSize(00X00D",
+                                         "greaterThan(10B10B",
+                                         "asin(10B",
+                                         "textureGather(00d10B00B",
+                                         "trunc(10B",
+                                         "gl_MaxComputeAtomicCounters",
+                                         "textureProj(00X30B",
+                                         "gl_MaxVertexAtomicCounters",
+                                         "length(20B",
+                                         "bitfieldInsert(30E30E00D00D",
+                                         "textureOffset(00S20B20D",
+                                         "textureProjOffset(00X20B10D",
+                                         "clamp(30D00D00D",
+                                         "clamp(10B00B00B",
+                                         "textureProj(00R20B",
+                                         "imageStore(01F20D30D",
+                                         "textureProj(00I20B00B",
+                                         "greaterThan(10E10E",
+                                         "textureProjOffset(00R30B10D00B",
+                                         "dFdy(00B",
+                                         "min(30D00D",
+                                         "floatBitsToInt(00B",
+                                         "sign(10B",
+                                         "max(00E00E",
+                                         "texture(00a20B00B",
+                                         "texture(00M10B00B",
+                                         "smoothstep(20B20B20B",
+                                         "textureCubeLod(00K20B00B",
+                                         "textureOffset(00J20B20D",
+                                         "texelFetch(00J20D00D",
+                                         "textureProj(00M20B00B",
+                                         "floatBitsToUint(00B",
+                                         "textureProjGradOffset(00R30B10B10B10D",
+                                         "textureLod(00K20B00B",
+                                         "textureProjOffset(00X30B10D00B",
+                                         "cos(20B",
+                                         "exp2(00B",
+                                         "radians(30B",
+                                         "texture2DRectProj(00O20B",
+                                         "tan(20B",
+                                         "textureGather(00T20B",
+                                         "textureGather(00a20B00D",
+                                         "textureProjGradOffset(00J30B20B20B20D",
+                                         "asinh(10B",
+                                         "textureProjGrad(00X30B10B10B",
+                                         "floor(00B",
+                                         "gl_DrawID",
+                                         "atomicOr(00D00D",
+                                         "texture3DLod(00J20B00B"};
+
+// Flat array of offsets from a symbol into the rules table.
+constexpr uint16_t kMangledOffsets[] = {
+    0,     // textureProj_00R30B00B
+    2,     // texture_00N10B00B
+    3,     // clamp_10D00D00D
+    5,     // gl_PrimitiveID
+    7,     // texture_00R10B00B
+    9,     // modf_00B00B
+    11,    // gl_MaxAtomicCounterBindings
+    13,    // notEqual_20D20D
+    15,    // gl_MaxComputeImageUniforms
+    17,    // textureLod_00L20B00B
+    19,    // angle_BaseVertex
+    20,    // determinant_A0B
+    21,    // textureProjGrad_00I30B10B10B
+    23,    // tanh_30B
+    25,    // gl_Layer
+    27,    // textureOffset_00d20B10D
+    29,    // dFdx_30B
+    32,    // clamp_00E00E00E
+    34,    // transpose_50B
+    36,    // ldexp_00B00D
+    38,    // textureGather_00K20B00D
+    40,    // lessThanEqual_30B30B
+    42,    // greaterThanEqual_20D20D
+    44,    // min_20E20E
+    46,    // asin_20B
+    48,    // outerProduct_20B30B
+    50,    // bitfieldInsert_00D00D00D00D
+    52,    // textureProjGrad_00Y30B20B20B
+    54,    // roundEven_30B
+    56,    // acosh_20B
+    58,    // atanh_10B
+    60,    // mix_20B20B00B
+    62,    // clamp_10B10B10B
+    64,    // textureGrad_00I10B10B10B
+    66,    // textureGatherOffset_00L20B10D00D
+    68,    // bitCount_00D
+    70,    // step_00B20B
+    72,    // lessThan_30E30E
+    74,    // uintBitsToFloat_30E
+    76,    // imulExtended_30D30D30D30D
+    78,    // textureSize_00K00D
+    80,    // gl_MaxGeometryOutputVertices
+    81,    // transpose_70B
+    83,    // textureProjOffset_00S30B20D00B
+    85,    // textureProjLod_00X30B00B
+    87,    // textureSize_00Y00D
+    89,    // gl_MinProgramTexelOffset
+    91,    // texture_00d20B
+    93,    // textureProj_00J30B00B
+    95,    // atan_10B10B
+    97,    // max_20B00B
+    99,    // clamp_30B30B30B
+    101,   // EndPrimitive_
+    102,   // textureLod_00Y20B00B
+    104,   // textureLodOffset_00a20B00B10D
+    106,   // texelFetchOffset_00Y20D00D20D
+    108,   // texelFetch_00a20D00D
+    110,   // min_20D00D
+    112,   // imageLoad_01F20D
+    113,   // uintBitsToFloat_00E
+    115,   // lessThanEqual_20B20B
+    117,   // texelFetch_00N10D00D
+    118,   // atomicAdd_00D00D
+    120,   // gl_MaxGeometryOutputComponents
+    121,   // gl_MaxGeometryTextureImageUnits
+    122,   // floatBitsToUint_20B
+    124,   // bitfieldInsert_20D20D00D00D
+    126,   // gl_MaxVertexTextureImageUnits
+    128,   // texture_00Z20B
+    130,   // min_10D10D
+    132,   // degrees_20B
+    134,   // tanh_00B
+    136,   // textureProjOffset_00J30B20D00B
+    138,   // all_30F
+    140,   // abs_20D
+    142,   // abs_20B
+    144,   // inversesqrt_00B
+    146,   // matrixCompMult_D0BD0B
+    147,   // lessThanEqual_10B10B
+    149,   // bitfieldReverse_20D
+    151,   // bitfieldReverse_20E
+    153,   // textureProjGrad_00S30B20B20B
+    155,   // equal_10D10D
+    157,   // max_30D00D
+    159,   // groupMemoryBarrier_
+    161,   // mix_00B00B00F
+    163,   // textureProjGradOffset_00R20B10B10B10D
+    165,   // imageLoad_01A10D
+    166,   // intBitsToFloat_30D
+    168,   // textureProj_00I20B
+    170,   // texelFetch_00I10D00D
+    172,   // min_30B30B
+    174,   // imageStore_01I20D30D
+    175,   // gl_MaxVertexAtomicCounterBuffers
+    177,   // textureLodOffset_00S20B00B20D
+    179,   // textureGatherOffset_00R10B10D
+    181,   // acos_00B
+    183,   // fract_10B
+    185,   // transpose_E0B
+    187,   // intBitsToFloat_00D
+    189,   // textureGradOffset_00J20B20B20B20D
+    191,   // memoryBarrierAtomicCounter_
+    193,   // texture2DGradEXT_00I10B10B10B
+    194,   // bitfieldInsert_00E00E00D00D
+    196,   // atomicXor_00D00D
+    198,   // greaterThan_20B20B
+    200,   // textureLodOffset_00I10B00B10D
+    202,   // texelFetch_00Y20D00D
+    204,   // texture2DProjGradEXT_00I30B10B10B
+    205,   // textureGrad_00d20B10B10B
+    207,   // textureProjOffset_00R30B10D
+    209,   // textureOffset_00U20B10D
+    211,   // atan_10B
+    213,   // modf_10B10B
+    215,   // min_30B00B
+    217,   // determinant_50B
+    218,   // lessThan_20B20B
+    220,   // atomicAnd_00D00D
+    222,   // gl_FragColor
+    224,   // exp_10B
+    226,   // textureProjOffset_00I20B10D00B
+    228,   // step_00B10B
+    230,   // bitCount_30D
+    232,   // textureProjLod_00I20B00B
+    234,   // unpackUnorm2x16_00E
+    236,   // rgb_2_yuv_20B00H
+    237,   // sqrt_20B
+    239,   // sign_20B
+    241,   // imageStore_01B20D30B
+    242,   // sign_20D
+    244,   // atanh_00B
+    246,   // textureGradOffset_00X10B10B10B10D
+    248,   // gl_DepthRange
+    250,   // imulExtended_10D10D10D10D
+    252,   // atan_20B
+    254,   // texture_00M10B
+    255,   // gl_MaxVertexOutputVectors
+    257,   // texture_00T20B
+    259,   // log2_10B
+    261,   // min_10B10B
+    263,   // gl_MaxImageUnits
+    265,   // pow_10B10B
+    267,   // findLSB_20E
+    269,   // findLSB_20D
+    271,   // texture_00Y20B
+    273,   // packUnorm4x8_30B
+    275,   // texture_00X10B00B
+    277,   // frexp_00B00D
+    279,   // texture2D_00I10B
+    281,   // not_10F
+    283,   // texelFetch_00P10D00D
+    286,   // lessThan_10E10E
+    288,   // ceil_20B
+    290,   // textureLodOffset_00R10B00B10D
+    292,   // clamp_10D10D10D
+    294,   // texelFetch_00M10D00D
+    295,   // texture_00O10B
+    296,   // transpose_F0B
+    298,   // textureOffset_00Y20B20D00B
+    300,   // textureGradOffset_00S20B20B20B20D
+    302,   // atomicXor_00E00E
+    304,   // textureProjOffset_00R20B10D
+    306,   // gl_FragCoord
+    308,   // clamp_30E30E30E
+    310,   // textureProj_00N30B00B
+    311,   // textureSize_00R00D
+    313,   // gl_MaxFragmentImageUniforms
+    315,   // normalize_00B
+    317,   // textureOffset_00I10B10D
+    319,   // atomicExchange_00E00E
+    321,   // textureProj_00I30B00B
+    323,   // acosh_10B
+    325,   // gl_MaxCombinedShaderOutputResources
+    327,   // atomicOr_00E00E
+    329,   // min_20B00B
+    331,   // textureProj_00M30B00B
+    332,   // textureProj_00M20B
+    333,   // texture_00I10B00B
+    335,   // reflect_00B00B
+    337,   // mod_20B00B
+    339,   // lessThan_20D20D
+    341,   // reflect_10B10B
+    343,   // floatBitsToUint_10B
+    345,   // textureLod_00J20B00B
+    347,   // sqrt_10B
+    349,   // textureProjLod_00S30B00B
+    351,   // clamp_20E20E20E
+    353,   // atomicAnd_00E00E
+    355,   // max_20D00D
+    357,   // textureSize_00I00D
+    359,   // gl_MaxComputeAtomicCounterBuffers
+    361,   // gl_PrimitiveIDIn
+    362,   // texelFetchOffset_00R10D00D10D
+    364,   // isinf_30B
+    366,   // textureGatherOffset_00a20B10D00D
+    368,   // lessThan_30B30B
+    370,   // textureGatherOffset_00I10B10D
+    372,   // textureOffset_00L20B10D00B
+    374,   // textureLodOffset_00X10B00B10D
+    376,   // texture_00T20B00B
+    378,   // textureOffset_00L20B10D
+    380,   // lessThanEqual_30E30E
+    382,   // textureOffset_00J20B20D00B
+    384,   // min_10E00E
+    386,   // log_30B
+    388,   // atomicCounter_00G
+    390,   // textureProjOffset_00S30B20D
+    392,   // imageLoad_01I20D
+    393,   // round_00B
+    395,   // smoothstep_00B00B20B
+    397,   // imageLoad_01H20D
+    398,   // textureGather_00K20B
+    400,   // bitfieldInsert_30D30D00D00D
+    402,   // imageStore_01G20D30E
+    403,   // fwidth_10B
+    406,   // textureProjLod_00R20B00B
+    408,   // notEqual_30D30D
+    410,   // refract_10B10B00B
+    412,   // textureProjOffset_00I20B10D
+    414,   // greaterThan_30D30D
+    416,   // greaterThan_10D10D
+    418,   // texture_00U20B
+    420,   // textureSize_00a00D
+    422,   // bitfieldExtract_10E00D00D
+    424,   // gl_MaxDrawBuffers
+    426,   // textureGatherOffset_00U20B10D00D
+    428,   // gl_MaxComputeWorkGroupCount
+    430,   // textureProjLod_00J30B00B
+    432,   // texture2DRect_00O10B
+    433,   // imulExtended_20D20D20D20D
+    435,   // any_30F
+    437,   // distance_30B30B
+    439,   // greaterThan_20D20D
+    441,   // textureOffset_00a20B10D
+    443,   // greaterThan_30B30B
+    445,   // trunc_00B
+    447,   // sinh_30B
+    449,   // length_10B
+    451,   // findMSB_10E
+    453,   // findMSB_10D
+    455,   // dot_00B00B
+    457,   // asinh_20B
+    459,   // dot_30B30B
+    461,   // bitCount_00E
+    463,   // tan_30B
+    465,   // textureLod_00T20B00B
+    467,   // usubBorrow_20E20E20E
+    469,   // imageStore_00z10D30D
+    470,   // textureProjGrad_00R30B10B10B
+    472,   // exp2_10B
+    474,   // textureProj_00O20B
+    475,   // textureProjOffset_00X20B10D00B
+    477,   // outerProduct_10B20B
+    479,   // gl_MaxGeometryAtomicCounterBuffers
+    480,   // textureProjGradOffset_00X30B10B10B10D
+    482,   // textureOffset_00I10B10D00B
+    484,   // clamp_30B00B00B
+    486,   // inverse_50B
+    488,   // dot_10B10B
+    490,   // unpackHalf2x16_00E
+    492,   // matrixCompMult_A0BA0B
+    494,   // texture2DProjLod_00I20B00B
+    496,   // texelFetch_00W20D00D
+    497,   // texture2DRectProj_00O30B
+    498,   // radians_20B
+    500,   // textureGrad_00S20B20B20B
+    502,   // max_10D00D
+    504,   // imageStore_01J20D30E
+    505,   // round_30B
+    507,   // gl_MaxComputeTextureImageUnits
+    509,   // clamp_00D00D00D
+    511,   // sin_30B
+    513,   // floor_30B
+    515,   // textureProj_00S30B00B
+    517,   // textureGrad_00Y20B20B20B
+    519,   // gl_MaxCombinedAtomicCounters
+    521,   // textureGather_00L20B00D
+    523,   // textureProjGradOffset_00S30B20B20B20D
+    525,   // imageStore_01A10D30E
+    526,   // texture_00J20B
+    528,   // gl_PointCoord
+    530,   // dFdx_20B
+    533,   // textureProj_00X20B
+    535,   // max_10E10E
+    537,   // max_30B30B
+    539,   // clamp_10E10E10E
+    541,   // texelFetchOffset_00S20D00D20D
+    543,   // texture_00N10B
+    544,   // texture_00L20B
+    546,   // barrier_
+    548,   // gl_MaxGeometryUniformComponents
+    549,   // greaterThanEqual_20E20E
+    551,   // lessThan_10D10D
+    553,   // texelFetchOffset_00a20D00D10D
+    555,   // textureProjGradOffset_00X20B10B10B10D
+    557,   // texture2DProj_00I20B
+    559,   // texture3DProjLod_00J30B00B
+    560,   // not_20F
+    562,   // Empty
+    562,   // findMSB_20D
+    564,   // findMSB_20E
+    566,   // texelFetchOffset_00I10D00D10D
+    568,   // textureGather_00I10B00D
+    570,   // texelFetch_00V10D00D
+    573,   // outerProduct_20B20B
+    575,   // atan_30B30B
+    577,   // unpackSnorm4x8_00E
+    579,   // bitCount_30E
+    581,   // textureProjLodOffset_00R20B00B10D
+    583,   // log_20B
+    585,   // asin_30B
+    587,   // textureGather_00f20B
+    588,   // modf_30B30B
+    590,   // isnan_20B
+    592,   // max_00B00B
+    594,   // roundEven_20B
+    596,   // fwidth_00B
+    599,   // textureProjGrad_00J30B20B20B
+    601,   // dFdy_10B
+    604,   // outerProduct_30B10B
+    606,   // floatBitsToInt_30B
+    608,   // textureProj_00J30B
+    610,   // gl_InvocationID
+    611,   // max_30E00E
+    613,   // exp2_20B
+    615,   // textureLod_00d20B00B
+    617,   // radians_10B
+    619,   // texelFetch_00U20D00D
+    621,   // gl_MaxComputeWorkGroupSize
+    623,   // max_00D00D
+    625,   // gl_LastFragData
+    627,   // ceil_30B
+    629,   // atomicMin_00E00E
+    631,   // gl_MaxCombinedTextureImageUnits
+    633,   // bitCount_10E
+    635,   // texture_00S20B00B
+    637,   // textureGather_00e20B00B
+    639,   // gl_DepthRangeParameters
+    641,   // distance_10B10B
+    643,   // reflect_20B20B
+    645,   // mod_10B00B
+    647,   // uintBitsToFloat_10E
+    649,   // textureGrad_00Z20B20B20B
+    651,   // equal_10F10F
+    653,   // cosh_00B
+    655,   // bitfieldReverse_00D
+    657,   // bitfieldReverse_00E
+    659,   // max_20E20E
+    661,   // matrixCompMult_70B70B
+    662,   // bitfieldExtract_30E00D00D
+    664,   // textureLod_00I10B00B
+    666,   // greaterThanEqual_10D10D
+    668,   // texture_00e30B00B
+    670,   // textureLodOffset_00Y20B00B20D
+    672,   // log2_00B
+    674,   // gl_LastFragColor
+    675,   // abs_10D
+    677,   // abs_10B
+    679,   // acos_30B
+    681,   // tanh_10B
+    683,   // degrees_30B
+    685,   // gl_FragDepthEXT
+    686,   // dFdx_10B
+    689,   // textureProjOffset_00I30B10D
+    691,   // bitfieldReverse_30E
+    693,   // bitfieldReverse_30D
+    695,   // inversesqrt_30B
+    697,   // gl_LocalInvocationID
+    699,   // Empty
+    699,   // clamp_00B00B00B
+    701,   // textureGather_00d10B
+    702,   // frexp_20B20D
+    704,   // intBitsToFloat_20D
+    706,   // fract_00B
+    708,   // gl_FragDepth
+    710,   // min_30E00E
+    712,   // exp_20B
+    714,   // equal_20B20B
+    716,   // textureProjLodOffset_00X20B00B10D
+    718,   // acosh_00B
+    720,   // log_10B
+    722,   // textureProjLodOffset_00S30B00B20D
+    724,   // sinh_20B
+    726,   // textureGather_00L20B
+    728,   // reflect_30B30B
+    730,   // outerProduct_30B20B
+    732,   // texture_00U20B00B
+    734,   // texture_00S20B
+    736,   // outerProduct_20B10B
+    738,   // umulExtended_10E10E10E10E
+    740,   // texture_00Z20B00B
+    742,   // textureGradOffset_00a20B10B10B10D
+    744,   // notEqual_20F20F
+    746,   // mod_30B30B
+    748,   // bitfieldExtract_10D00D00D
+    750,   // sign_30B
+    752,   // sign_30D
+    754,   // pow_00B00B
+    756,   // mod_00B00B
+    758,   // texture_00Y20B00B
+    760,   // notEqual_30B30B
+    762,   // roundEven_10B
+    764,   // texture2DProjLodEXT_00I30B00B
+    765,   // atanh_30B
+    767,   // dFdy_20B
+    770,   // textureProj_00Y30B
+    772,   // bitCount_20D
+    774,   // step_00B00B
+    776,   // texelFetch_00L20D00D
+    778,   // imageSize_00y
+    779,   // isinf_00B
+    781,   // imageSize_00z
+    782,   // distance_20B20B
+    784,   // textureGrad_00U20B10B10B
+    786,   // uaddCarry_30E30E30E
+    788,   // mod_30B00B
+    790,   // texture_00K20B00B
+    792,   // gl_MaxCombinedImageUniforms
+    794,   // yuv_2_rgb_20B00H
+    795,   // textureGather_00f20B00B
+    797,   // greaterThan_20E20E
+    799,   // textureGrad_00a20B10B10B
+    801,   // textureOffset_00U20B10D00B
+    803,   // intBitsToFloat_10D
+    805,   // texture_00J20B00B
+    807,   // refract_20B20B00B
+    809,   // textureProjLod_00I30B00B
+    811,   // refract_00B00B00B
+    813,   // findLSB_10D
+    815,   // findLSB_10E
+    817,   // mix_10B10B10F
+    819,   // mix_10B10B10B
+    821,   // textureProj_00Y30B00B
+    823,   // texture3D_00J20B
+    824,   // transpose_D0B
+    826,   // log2_30B
+    828,   // textureGrad_00J20B20B20B
+    830,   // textureProjGrad_00d30B10B10B
+    832,   // fract_30B
+    834,   // gl_LocalInvocationIndex
+    836,   // textureSize_00J00D
+    838,   // textureGatherOffset_00I10B10D00D
+    840,   // textureGather_00X10B00D
+    842,   // texelFetchOffset_00U20D00D10D
+    844,   // textureProjLodOffset_00Y30B00B20D
+    846,   // textureSize_00e00D
+    848,   // notEqual_20E20E
+    850,   // textureLodOffset_00d20B00B10D
+    852,   // inverse_A0B
+    854,   // imageStore_01E20D30B
+    855,   // textureProjGrad_00X20B10B10B
+    857,   // max_30E30E
+    859,   // isnan_30B
+    861,   // imulExtended_00D00D00D00D
+    863,   // gl_in
+    864,   // atan_20B20B
+    866,   // usubBorrow_00E00E00E
+    868,   // textureProjLodOffset_00J30B00B20D
+    870,   // frexp_30B30D
+    872,   // gl_SecondaryFragDataEXT
+    873,   // min_30E30E
+    875,   // texture2DProj_00I30B00B
+    877,   // textureCubeGradEXT_00K20B20B20B
+    878,   // texture_00I10B
+    880,   // min_00B00B
+    882,   // gl_InstanceID
+    884,   // texelFetch_00c20D00D
+    885,   // gl_MaxVertexImageUniforms
+    887,   // sqrt_00B
+    889,   // normalize_20B
+    891,   // gl_MaxFragmentAtomicCounterBuffers
+    893,   // gl_WorkGroupID
+    895,   // degrees_00B
+    897,   // inverse_F0B
+    899,   // min_20E00E
+    901,   // textureProjLod_00R30B00B
+    903,   // textureSize_00P
+    906,   // textureGradOffset_00d20B10B10B10D
+    908,   // textureProjLodOffset_00R30B00B10D
+    910,   // atan_00B
+    912,   // atomicExchange_00D00D
+    914,   // textureGatherOffset_00R10B10D00D
+    916,   // imageStore_00y10D30B
+    917,   // gl_MaxGeometryAtomicCounters
+    918,   // texture2D_00I10B00B
+    920,   // textureProj_00X20B00B
+    922,   // clamp_20D20D20D
+    924,   // greaterThan_30E30E
+    926,   // frexp_10B10D
+    928,   // max_10E00E
+    930,   // smoothstep_00B00B10B
+    932,   // gl_GlobalInvocationID
+    934,   // matrixCompMult_60B60B
+    935,   // memoryBarrierShared_
+    937,   // normalize_10B
+    939,   // unpackSnorm2x16_00E
+    941,   // imageLoad_00z10D
+    942,   // lessThan_30D30D
+    944,   // atan_00B00B
+    946,   // bitfieldExtract_20D00D00D
+    948,   // texture_00L20B00B
+    950,   // notEqual_10B10B
+    952,   // imageLoad_01G20D
+    953,   // bitfieldExtract_00E00D00D
+    955,   // atomicCompSwap_00D00D00D
+    957,   // trunc_30B
+    959,   // matrixCompMult_E0BE0B
+    960,   // length_00B
+    962,   // any_20F
+    964,   // memoryBarrier_
+    966,   // gl_PerVertex
+    967,   // textureProj_00X30B00B
+    969,   // atomicMax_00D00D
+    971,   // gl_ViewID_OVR
+    972,   // floor_10B
+    974,   // sin_10B
+    976,   // textureSize_00N00D
+    977,   // texelFetchOffset_00J20D00D20D
+    979,   // tan_00B
+    981,   // mod_20B20B
+    983,   // imageLoad_01J20D
+    984,   // gl_WorkGroupSize
+    986,   // asinh_30B
+    988,   // outerProduct_10B30B
+    990,   // textureCube_00K20B
+    992,   // textureSize_00c
+    993,   // textureSize_00b
+    996,   // cos_00B
+    998,   // min_20B20B
+    1000,  // textureGradOffset_00f30B10B10B10D
+    1002,  // max_20D20D
+    1004,  // textureProj_00I30B
+    1006,  // max_10D10D
+    1008,  // textureOffset_00a20B10D00B
+    1010,  // textureGather_00X10B
+    1012,  // pow_30B30B
+    1014,  // textureGather_00a20B
+    1016,  // smoothstep_10B10B10B
+    1018,  // textureProj_00O30B
+    1019,  // textureGatherOffset_00d10B00B10D
+    1021,  // refract_30B30B00B
+    1023,  // bitfieldInsert_20E20E00D00D
+    1025,  // floor_20B
+    1027,  // equal_20E20E
+    1029,  // mix_00B00B00B
+    1031,  // imageSize_01B
+    1032,  // greaterThanEqual_20B20B
+    1034,  // uaddCarry_00E00E00E
+    1036,  // sin_20B
+    1038,  // textureSize_00Q
+    1039,  // round_20B
+    1041,  // matrixCompMult_90B90B
+    1042,  // textureProjLod_00d30B00B
+    1044,  // textureSize_00W
+    1045,  // textureProjLod_00X20B00B
+    1047,  // gl_MaxCombinedAtomicCounterBuffers
+    1049,  // isnan_00B
+    1051,  // umulExtended_30E30E30E30E
+    1053,  // faceforward_30B30B30B
+    1055,  // textureGradOffset_00Y20B20B20B20D
+    1057,  // clamp_30E00E00E
+    1059,  // asin_00B
+    1061,  // ceil_00B
+    1063,  // texture3D_00J20B00B
+    1064,  // distance_00B00B
+    1066,  // texture_00a20B
+    1068,  // textureGatherOffset_00a20B10D
+    1070,  // textureGrad_00f30B10B10B
+    1072,  // texture2DProj_00I30B
+    1074,  // modf_20B20B
+    1076,  // textureGradOffset_00I10B10B10B10D
+    1078,  // notEqual_30E30E
+    1080,  // textureGather_00I10B
+    1082,  // lessThanEqual_10E10E
+    1084,  // inversesqrt_20B
+    1086,  // textureLodOffset_00J20B00B20D
+    1088,  // min_30D30D
+    1090,  // textureOffset_00R10B10D00B
+    1092,  // textureGrad_00e30B20B20B
+    1094,  // atomicAdd_00E00E
+    1096,  // gl_MaxGeometryInputComponents
+    1097,  // findMSB_30E
+    1099,  // findMSB_30D
+    1101,  // textureGrad_00X10B10B10B
+    1103,  // length_30B
+    1105,  // greaterThanEqual_30E30E
+    1107,  // fwidth_30B
+    1110,  // textureGrad_00K20B20B20B
+    1112,  // mix_20B20B20F
+    1114,  // texelFetch_00S20D00D
+    1116,  // textureGradOffset_00U20B10B10B10D
+    1118,  // mix_20B20B20B
+    1120,  // floatBitsToInt_10B
+    1122,  // max_10B00B
+    1124,  // textureGatherOffset_00L20B10D
+    1126,  // textureLod_00a20B00B
+    1128,  // any_10F
+    1130,  // textureProjGradOffset_00d30B10B10B10D
+    1132,  // textureProj_00N30B
+    1133,  // gl_MaxProgramTexelOffset
+    1135,  // exp2_30B
+    1137,  // texelFetchOffset_00L20D00D10D
+    1139,  // equal_30D30D
+    1141,  // texture3DProj_00J30B00B
+    1142,  // packSnorm2x16_10B
+    1144,  // floatBitsToUint_30B
+    1146,  // lessThanEqual_30D30D
+    1148,  // gl_MaxGeometryImageUniforms
+    1149,  // imageLoad_00y10D
+    1150,  // asinh_00B
+    1152,  // textureOffset_00R10B10D
+    1154,  // greaterThanEqual_10E10E
+    1156,  // textureProjGradOffset_00I30B10B10B10D
+    1158,  // textureGather_00Z20B
+    1160,  // textureOffset_00X10B10D
+    1162,  // cosh_30B
+    1164,  // textureOffset_00d20B10D00B
+    1166,  // texture_00R10B
+    1168,  // textureOffset_00S20B20D00B
+    1170,  // usubBorrow_30E30E30E
+    1172,  // radians_00B
+    1174,  // textureProjOffset_00R20B10D00B
+    1176,  // ldexp_30B30D
+    1178,  // max_30B00B
+    1180,  // min_20D20D
+    1182,  // step_10B10B
+    1184,  // gl_MaxDualSourceDrawBuffersEXT
+    1185,  // step_30B30B
+    1187,  // bitfieldReverse_10E
+    1189,  // bitfieldReverse_10D
+    1191,  // texture3DProj_00J30B
+    1192,  // matrixCompMult_B0BB0B
+    1193,  // lessThan_20E20E
+    1195,  // cross_20B20B
+    1197,  // all_10F
+    1199,  // clamp_20B00B00B
+    1201,  // tanh_20B
+    1203,  // dFdx_00B
+    1206,  // matrixCompMult_F0BF0B
+    1208,  // abs_00D
+    1210,  // abs_00B
+    1212,  // textureLod_00R10B00B
+    1214,  // step_20B20B
+    1216,  // gl_MaxFragmentAtomicCounters
+    1218,  // textureLodOffset_00U20B00B10D
+    1220,  // textureProj_00R20B00B
+    1222,  // faceforward_20B20B20B
+    1224,  // imageSize_01E
+    1225,  // acos_20B
+    1227,  // texelFetch_00X10D00D
+    1229,  // sinh_00B
+    1231,  // imageSize_01A
+    1232,  // texture2DLod_00I10B00B
+    1234,  // texelFetch_00b10D00D
+    1237,  // imageSize_01F
+    1238,  // gl_MaxAtomicCounterBufferSize
+    1240,  // max_20B20B
+    1242,  // textureGatherOffset_00f20B00B10D
+    1244,  // outerProduct_30B30B
+    1246,  // lessThanEqual_20E20E
+    1248,  // textureLod_00X10B00B
+    1250,  // exp_30B
+    1252,  // gl_BaseVertex
+    1253,  // imageSize_01D
+    1254,  // step_00B30B
+    1256,  // bitCount_10D
+    1258,  // equal_30E30E
+    1260,  // sign_00B
+    1262,  // log_00B
+    1264,  // textureLod_00Z20B00B
+    1266,  // sign_00D
+    1268,  // textureOffset_00Y20B20D
+    1270,  // transpose_60B
+    1272,  // findMSB_00D
+    1274,  // gl_MaxGeometryTotalOutputComponents
+    1275,  // acosh_30B
+    1277,  // findMSB_00E
+    1279,  // bitfieldExtract_20E00D00D
+    1281,  // uintBitsToFloat_20E
+    1283,  // unpackUnorm4x8_00E
+    1285,  // texture2DProj_00M20B
+    1286,  // texelFetchOffset_00X10D00D10D
+    1288,  // mod_10B10B
+    1290,  // texture_00d20B00B
+    1292,  // notEqual_10D10D
+    1294,  // texture2DProj_00M30B
+    1295,  // textureSize_00V
+    1298,  // packUnorm2x16_10B
+    1300,  // faceforward_00B00B00B
+    1302,  // umulExtended_20E20E20E20E
+    1304,  // textureOffset_00X10B10D00B
+    1306,  // cos_30B
+    1308,  // findLSB_30D
+    1310,  // findLSB_30E
+    1312,  // bitCount_20E
+    1314,  // gl_NumWorkGroups
+    1316,  // equal_20D20D
+    1318,  // textureProjOffset_00Y30B20D00B
+    1320,  // textureGatherOffset_00U20B10D
+    1322,  // faceforward_10B10B10B
+    1324,  // textureSize_00L00D
+    1326,  // gl_MaxComputeUniformComponents
+    1328,  // textureGather_00R10B00D
+    1330,  // memoryBarrierBuffer_
+    1332,  // textureSize_00Z00D
+    1334,  // textureGather_00U20B
+    1336,  // bitfieldExtract_30D00D00D
+    1338,  // min_10D00D
+    1340,  // imageStore_01H20D30B
+    1341,  // texelFetch_00Q20D00D
+    1342,  // max_20E00E
+    1344,  // textureProj_00S30B
+    1346,  // roundEven_00B
+    1348,  // texture2DLodEXT_00I10B00B
+    1349,  // dFdy_30B
+    1352,  // atanh_20B
+    1354,  // clamp_10E00E00E
+    1356,  // clamp_20D00D00D
+    1358,  // all_20F
+    1360,  // isinf_10B
+    1362,  // imageLoad_01C20D
+    1363,  // imageSize_01J
+    1364,  // imageSize_01H
+    1365,  // imageSize_01I
+    1366,  // packHalf2x16_10B
+    1368,  // texture2DProj_00I20B00B
+    1370,  // findLSB_00E
+    1372,  // findLSB_00D
+    1374,  // textureProjOffset_00X30B10D
+    1376,  // imageSize_01C
+    1377,  // greaterThanEqual_30B30B
+    1379,  // textureSize_00U00D
+    1381,  // textureGradOffset_00R10B10B10B10D
+    1383,  // imageSize_01G
+    1384,  // equal_30F30F
+    1386,  // bitfieldExtract_00D00D00D
+    1388,  // texture2DProjLodEXT_00I20B00B
+    1389,  // notEqual_30F30F
+    1391,  // gl_FrontFacing
+    1393,  // gl_SecondaryFragColorEXT
+    1394,  // inversesqrt_10B
+    1396,  // imageStore_01C20D30D
+    1397,  // acos_10B
+    1399,  // abs_30D
+    1401,  // gl_MaxFragmentUniformVectors
+    1403,  // fract_20B
+    1405,  // abs_30B
+    1407,  // lessThan_10B10B
+    1409,  // textureGatherOffset_00X10B10D
+    1411,  // bitfieldInsert_10E10E00D00D
+    1413,  // packSnorm4x8_30B
+    1415,  // mix_10B10B00B
+    1417,  // imageLoad_01E20D
+    1418,  // clamp_30D30D30D
+    1420,  // textureGather_00U20B00D
+    1422,  // textureSize_00f00D
+    1424,  // textureProj_00N20B00B
+    1425,  // gl_FragData
+    1427,  // imageLoad_01B20D
+    1428,  // textureProj_00d30B00B
+    1430,  // clamp_20E00E00E
+    1432,  // texture_00X10B
+    1434,  // textureProj_00d30B
+    1436,  // mix_30B30B30F
+    1438,  // determinant_F0B
+    1439,  // transpose_A0B
+    1441,  // pow_20B20B
+    1443,  // texture2DProjGradEXT_00I20B10B10B
+    1444,  // gl_LastFragColorARM
+    1445,  // textureGather_00Z20B00D
+    1447,  // textureGather_00R10B
+    1449,  // lessThanEqual_20D20D
+    1451,  // textureLod_00S20B00B
+    1453,  // textureProjLod_00Y30B00B
+    1455,  // cosh_10B
+    1457,  // sqrt_30B
+    1459,  // gl_VertexID
+    1461,  // sign_10D
+    1463,  // textureProj_00M30B
+    1464,  // exp_00B
+    1466,  // min_00E00E
+    1468,  // max_30D30D
+    1470,  // umulExtended_00E00E00E00E
+    1472,  // gl_MaxVertexAttribs
+    1474,  // gl_BaseInstance
+    1475,  // transpose_B0B
+    1477,  // fwidth_20B
+    1480,  // Empty
+    1480,  // smoothstep_00B00B30B
+    1482,  // floatBitsToInt_20B
+    1484,  // textureSize_00M00D
+    1485,  // log2_20B
+    1487,  // ldexp_10B10D
+    1489,  // min_10B00B
+    1491,  // mix_30B30B00B
+    1493,  // angle_BaseInstance
+    1494,  // degrees_10B
+    1496,  // gl_MaxTextureImageUnits
+    1498,  // gl_Position
+    1501,  // texture_00K20B
+    1503,  // atomicCompSwap_00E00E00E
+    1505,  // textureProjOffset_00Y30B20D
+    1507,  // sinh_10B
+    1509,  // atan_30B
+    1511,  // textureGradOffset_00L20B10B10B10D
+    1513,  // ceil_10B
+    1515,  // textureSize_00S00D
+    1517,  // imageStore_01D20D30E
+    1518,  // greaterThanEqual_10B10B
+    1520,  // atomicCounterDecrement_00G
+    1522,  // textureCube_00K20B00B
+    1524,  // dot_20B20B
+    1526,  // transpose_90B
+    1528,  // not_30F
+    1530,  // textureProjLodOffset_00I20B00B10D
+    1532,  // notEqual_10F10F
+    1534,  // textureProjGrad_00R20B10B10B
+    1536,  // texture_00f30B
+    1538,  // smoothstep_00B00B00B
+    1540,  // textureProjLodOffset_00d30B00B10D
+    1542,  // texelFetch_00R10D00D
+    1544,  // cosh_20B
+    1546,  // textureProjLodOffset_00I30B00B10D
+    1548,  // normalize_30B
+    1550,  // smoothstep_30B30B30B
+    1552,  // bitfieldInsert_10D10D00D00D
+    1554,  // clamp_20B20B20B
+    1556,  // textureGrad_00L20B10B10B
+    1558,  // textureGrad_00R10B10B10B
+    1560,  // textureProjGrad_00I20B10B10B
+    1562,  // textureGather_00e20B
+    1563,  // texture2D_00M10B
+    1564,  // min_00D00D
+    1566,  // outerProduct_10B10B
+    1568,  // lessThanEqual_10D10D
+    1570,  // trunc_20B
+    1572,  // gl_MaxVaryingVectors
+    1574,  // textureProjOffset_00I30B10D00B
+    1576,  // textureSize_00d00D
+    1578,  // sin_00B
+    1580,  // gl_MaxVertexUniformVectors
+    1582,  // textureCubeLodEXT_00K20B00B
+    1583,  // textureGather_00T20B00D
+    1585,  // textureProj_00N20B
+    1586,  // uaddCarry_10E10E10E
+    1588,  // tan_10B
+    1590,  // textureLodOffset_00L20B00B10D
+    1592,  // atomicCounterIncrement_00G
+    1594,  // ldexp_20B20D
+    1596,  // greaterThanEqual_30D30D
+    1598,  // notEqual_20B20B
+    1600,  // imageLoad_01D20D
+    1601,  // textureProjLodOffset_00X30B00B10D
+    1603,  // isinf_20B
+    1605,  // cos_10B
+    1607,  // mix_30B30B30B
+    1609,  // texture_00e30B
+    1611,  // textureSize_00T00D
+    1613,  // textureGatherOffset_00X10B10D00D
+    1615,  // equal_10E10E
+    1617,  // min_10E10E
+    1619,  // textureProjGradOffset_00Y30B20B20B20D
+    1621,  // textureGrad_00T20B20B20B
+    1623,  // memoryBarrierImage_
+    1625,  // textureProjOffset_00J30B20D
+    1627,  // EmitVertex_
+    1628,  // textureProjOffset_00d30B10D00B
+    1630,  // round_10B
+    1632,  // textureProjOffset_00d30B10D
+    1634,  // notEqual_10E10E
+    1636,  // textureProj_00R30B
+    1638,  // matrixCompMult_50B50B
+    1640,  // equal_20F20F
+    1642,  // gl_MaxFragmentInputVectors
+    1644,  // equal_30B30B
+    1646,  // textureLod_00U20B00B
+    1648,  // usubBorrow_10E10E10E
+    1650,  // equal_10B10B
+    1652,  // textureProjGradOffset_00I20B10B10B10D
+    1654,  // texture2DProjLod_00I30B00B
+    1656,  // isnan_10B
+    1658,  // uaddCarry_20E20E20E
+    1660,  // max_10B10B
+    1662,  // atomicMax_00E00E
+    1664,  // gl_PointSize
+    1666,  // atomicMin_00D00D
+    1668,  // textureSize_00X00D
+    1670,  // greaterThan_10B10B
+    1672,  // asin_10B
+    1674,  // textureGather_00d10B00B
+    1676,  // trunc_10B
+    1678,  // gl_MaxComputeAtomicCounters
+    1680,  // textureProj_00X30B
+    1682,  // gl_MaxVertexAtomicCounters
+    1684,  // length_20B
+    1686,  // bitfieldInsert_30E30E00D00D
+    1688,  // textureOffset_00S20B20D
+    1690,  // textureProjOffset_00X20B10D
+    1692,  // clamp_30D00D00D
+    1694,  // clamp_10B00B00B
+    1696,  // textureProj_00R20B
+    1698,  // imageStore_01F20D30D
+    1699,  // textureProj_00I20B00B
+    1701,  // greaterThan_10E10E
+    1703,  // textureProjOffset_00R30B10D00B
+    1705,  // dFdy_00B
+    1708,  // min_30D00D
+    1710,  // floatBitsToInt_00B
+    1712,  // sign_10B
+    1714,  // max_00E00E
+    1716,  // texture_00a20B00B
+    1718,  // texture_00M10B00B
+    1719,  // smoothstep_20B20B20B
+    1721,  // textureCubeLod_00K20B00B
+    1723,  // textureOffset_00J20B20D
+    1725,  // texelFetch_00J20D00D
+    1727,  // textureProj_00M20B00B
+    1728,  // floatBitsToUint_00B
+    1730,  // textureProjGradOffset_00R30B10B10B10D
+    1732,  // textureLod_00K20B00B
+    1734,  // textureProjOffset_00X30B10D00B
+    1736,  // cos_20B
+    1738,  // exp2_00B
+    1740,  // radians_30B
+    1742,  // texture2DRectProj_00O20B
+    1743,  // tan_20B
+    1745,  // textureGather_00T20B
+    1747,  // textureGather_00a20B00D
+    1749,  // textureProjGradOffset_00J30B20B20B20D
+    1751,  // asinh_10B
+    1753,  // textureProjGrad_00X30B10B10B
+    1755,  // floor_00B
+    1757,  // gl_DrawID
+    1758,  // atomicOr_00D00D
+    1760,  // texture3DLod_00J20B00B
+};
+
+using Ext = TExtension;
+
+// Flat array of all unmangled name identifiers.
 constexpr UnmangledEntry unmangled[] = {
-    UnmangledEntry(ImmutableString("all"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("textureProj"),
-                   &UnmangledBuiltIns::OES_EGL_image_external_essl3,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   -1,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("unpackUnorm4x8"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("fwidth"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   0,
-                   Shader::FRAGMENT),
-    UnmangledEntry(ImmutableString("rgb_2_yuv"),
-                   &UnmangledBuiltIns::EXT_YUV_target,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   -1,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("atomicCounterIncrement"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   420,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("yuv_2_rgb"),
-                   &UnmangledBuiltIns::EXT_YUV_target,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   -1,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("findLSB"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("textureCubeGradEXT"),
-                   &UnmangledBuiltIns::EXT_shader_texture_lod,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   100,
-                   -1,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("memoryBarrierImage"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   430,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("packSnorm4x8"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("inverse"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   140,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("textureCubeLod"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   100,
-                   0,
-                   Shader::VERTEX),
-    UnmangledEntry(ImmutableString("texture"),
-                   &UnmangledBuiltIns::OES_EGL_image_external_essl3,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   -1,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("frexp"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("degrees"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("imulExtended"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("texture2DProjGradEXT"),
-                   &UnmangledBuiltIns::EXT_shader_texture_lod,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   100,
-                   -1,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("atomicAnd"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   430,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("textureProjGradOffset"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("roundEven"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("texture2DProjLodEXT"),
-                   &UnmangledBuiltIns::EXT_shader_texture_lod,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   100,
-                   -1,
-                   Shader::FRAGMENT),
-    UnmangledEntry(ImmutableString("memoryBarrierAtomicCounter"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   430,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("ceil"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("not"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("texture2DRectProj"),
-                   &UnmangledBuiltIns::ARB_texture_rectangle,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   100,
-                   -1,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("mod"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("floatBitsToInt"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   330,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("radians"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("smoothstep"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("textureProjGrad"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("lessThan"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("dFdy"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   0,
-                   Shader::FRAGMENT),
-    UnmangledEntry(ImmutableString("modf"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("unpackSnorm4x8"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("round"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("textureOffset"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("clamp"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("findMSB"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("texture2DRect"),
-                   &UnmangledBuiltIns::ARB_texture_rectangle,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   100,
-                   -1,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("acosh"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("cosh"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("uaddCarry"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("asin"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("isnan"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("atomicMax"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   430,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("bitfieldReverse"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("dFdx"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   0,
-                   Shader::FRAGMENT),
-    UnmangledEntry(ImmutableString("memoryBarrierShared"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   430,
-                   Shader::COMPUTE),
-    UnmangledEntry(ImmutableString("texture3DLod"),
-                   &UnmangledBuiltIns::OES_texture_3D,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   100,
-                   -1,
-                   Shader::FRAGMENT),
-    UnmangledEntry(ImmutableString("textureLod"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("faceforward"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("abs"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("max"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("unpackSnorm2x16"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   420,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("log2"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("textureGrad"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("barrier"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   400,
-                   Shader::COMPUTE),
-    UnmangledEntry(ImmutableString("texture2DProj"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   100,
-                   0,
-                   Shader::FRAGMENT),
-    UnmangledEntry(ImmutableString("atomicCounterDecrement"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   420,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("lessThanEqual"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("transpose"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   120,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("step"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("sinh"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("textureProjOffset"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("trunc"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("cos"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("equal"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("texture2DLodEXT"),
-                   &UnmangledBuiltIns::EXT_shader_texture_lod,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   100,
-                   -1,
-                   Shader::FRAGMENT),
-    UnmangledEntry(ImmutableString("usubBorrow"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("texelFetchOffset"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("length"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("textureSize"),
-                   &UnmangledBuiltIns::OES_EGL_image_external_essl3,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   -1,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("acos"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("uintBitsToFloat"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   330,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("packUnorm2x16"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("unpackHalf2x16"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   420,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("matrixCompMult"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   -1,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("pow"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("atomicExchange"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   430,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("texture2DProjLod"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   100,
-                   0,
-                   Shader::VERTEX),
-    UnmangledEntry(ImmutableString("ldexp"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("floatBitsToUint"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   330,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("textureProjLod"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("textureCubeLodEXT"),
-                   &UnmangledBuiltIns::EXT_shader_texture_lod,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   100,
-                   -1,
-                   Shader::FRAGMENT),
-    UnmangledEntry(ImmutableString("imageStore"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   -1,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("textureGatherOffset"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("textureProjLodOffset"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("log"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("bitCount"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("exp2"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("atomicCompSwap"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   430,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("fract"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("EmitVertex"),
-                   &UnmangledBuiltIns::EXT_geometry_shader,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   -1,
-                   Shader::GEOMETRY_EXT),
-    UnmangledEntry(ImmutableString("determinant"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   -1,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("textureGather"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("greaterThanEqual"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("greaterThan"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("bitfieldInsert"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("texture3DProj"),
-                   &UnmangledBuiltIns::OES_texture_3D,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   100,
-                   -1,
-                   Shader::FRAGMENT),
-    UnmangledEntry(ImmutableString("packUnorm4x8"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("sign"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("inversesqrt"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("distance"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("tanh"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("texture2DGradEXT"),
-                   &UnmangledBuiltIns::EXT_shader_texture_lod,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   100,
-                   -1,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("memoryBarrier"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   420,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("atomicCounter"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   420,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("intBitsToFloat"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   330,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("bitfieldExtract"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("texture3DProjLod"),
-                   &UnmangledBuiltIns::OES_texture_3D,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   100,
-                   -1,
-                   Shader::FRAGMENT),
-    UnmangledEntry(ImmutableString("atomicAdd"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   430,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("asinh"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("texture2D"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   100,
-                   0,
-                   Shader::FRAGMENT),
-    UnmangledEntry(ImmutableString("memoryBarrierBuffer"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   430,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("tan"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("any"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("atomicXor"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   430,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("normalize"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("imageLoad"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   -1,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("floor"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("textureLodOffset"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("atanh"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("cross"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("sqrt"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("mix"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("sin"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("textureGradOffset"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("atan"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("unpackUnorm2x16"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("reflect"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("isinf"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("texture3D"),
-                   &UnmangledBuiltIns::OES_texture_3D,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   100,
-                   -1,
-                   Shader::FRAGMENT),
-    UnmangledEntry(ImmutableString("umulExtended"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("atomicOr"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   430,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("texelFetch"),
-                   &UnmangledBuiltIns::OES_EGL_image_external_essl3,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   -1,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("EndPrimitive"),
-                   &UnmangledBuiltIns::EXT_geometry_shader,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   -1,
-                   Shader::GEOMETRY_EXT),
-    UnmangledEntry(ImmutableString("notEqual"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("outerProduct"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   120,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("imageSize"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   -1,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("refract"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("min"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("textureCube"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   100,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("packSnorm2x16"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   420,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("exp"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("groupMemoryBarrier"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   430,
-                   Shader::COMPUTE),
-    UnmangledEntry(ImmutableString("atomicMin"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   430,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("packHalf2x16"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   420,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("texture2DLod"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   100,
-                   0,
-                   Shader::VERTEX),
-    UnmangledEntry(ImmutableString("dot"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL)};
+    {"all", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"textureProj", Ext::OES_EGL_image_external_essl3, Ext::UNDEFINED, 300, -1, Shader::ALL},
+    {"unpackUnorm4x8", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
+    {"fwidth", Ext::UNDEFINED, Ext::UNDEFINED, 300, 0, Shader::FRAGMENT},
+    {"rgb_2_yuv", Ext::EXT_YUV_target, Ext::UNDEFINED, 300, -1, Shader::ALL},
+    {"atomicCounterIncrement", Ext::UNDEFINED, Ext::UNDEFINED, 310, 420, Shader::ALL},
+    {"yuv_2_rgb", Ext::EXT_YUV_target, Ext::UNDEFINED, 300, -1, Shader::ALL},
+    {"findLSB", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
+    {"textureCubeGradEXT", Ext::EXT_shader_texture_lod, Ext::UNDEFINED, 100, -1, Shader::ALL},
+    {"memoryBarrierImage", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL},
+    {"packSnorm4x8", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
+    {"inverse", Ext::UNDEFINED, Ext::UNDEFINED, 300, 140, Shader::ALL},
+    {"textureCubeLod", Ext::UNDEFINED, Ext::UNDEFINED, 100, 0, Shader::VERTEX},
+    {"texture", Ext::OES_EGL_image_external_essl3, Ext::UNDEFINED, 300, -1, Shader::ALL},
+    {"frexp", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
+    {"degrees", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"imulExtended", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
+    {"texture2DProjGradEXT", Ext::EXT_shader_texture_lod, Ext::UNDEFINED, 100, -1, Shader::ALL},
+    {"atomicAnd", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL},
+    {"textureProjGradOffset", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
+    {"roundEven", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
+    {"texture2DProjLodEXT", Ext::EXT_shader_texture_lod, Ext::UNDEFINED, 100, -1, Shader::FRAGMENT},
+    {"memoryBarrierAtomicCounter", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL},
+    {"ceil", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"not", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"texture2DRectProj", Ext::ARB_texture_rectangle, Ext::UNDEFINED, 100, -1, Shader::ALL},
+    {"mod", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"floatBitsToInt", Ext::UNDEFINED, Ext::UNDEFINED, 300, 330, Shader::ALL},
+    {"radians", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"smoothstep", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"textureProjGrad", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
+    {"lessThan", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
+    {"dFdy", Ext::UNDEFINED, Ext::UNDEFINED, 300, 0, Shader::FRAGMENT},
+    {"modf", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
+    {"unpackSnorm4x8", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
+    {"round", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
+    {"textureOffset", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
+    {"clamp", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
+    {"findMSB", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
+    {"texture2DRect", Ext::ARB_texture_rectangle, Ext::UNDEFINED, 100, -1, Shader::ALL},
+    {"acosh", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
+    {"cosh", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
+    {"uaddCarry", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
+    {"asin", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"isnan", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
+    {"atomicMax", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL},
+    {"bitfieldReverse", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
+    {"dFdx", Ext::UNDEFINED, Ext::UNDEFINED, 300, 0, Shader::FRAGMENT},
+    {"memoryBarrierShared", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::COMPUTE},
+    {"texture3DLod", Ext::OES_texture_3D, Ext::UNDEFINED, 100, -1, Shader::FRAGMENT},
+    {"textureLod", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
+    {"faceforward", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"abs", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
+    {"max", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
+    {"unpackSnorm2x16", Ext::UNDEFINED, Ext::UNDEFINED, 300, 420, Shader::ALL},
+    {"log2", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"textureGrad", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
+    {"barrier", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::COMPUTE},
+    {"texture2DProj", Ext::UNDEFINED, Ext::UNDEFINED, 100, 0, Shader::FRAGMENT},
+    {"atomicCounterDecrement", Ext::UNDEFINED, Ext::UNDEFINED, 310, 420, Shader::ALL},
+    {"lessThanEqual", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
+    {"transpose", Ext::UNDEFINED, Ext::UNDEFINED, 300, 120, Shader::ALL},
+    {"step", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"sinh", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
+    {"textureProjOffset", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
+    {"trunc", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
+    {"cos", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"equal", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"texture2DLodEXT", Ext::EXT_shader_texture_lod, Ext::UNDEFINED, 100, -1, Shader::FRAGMENT},
+    {"usubBorrow", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
+    {"texelFetchOffset", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
+    {"length", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"textureSize", Ext::OES_EGL_image_external_essl3, Ext::UNDEFINED, 300, -1, Shader::ALL},
+    {"acos", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"uintBitsToFloat", Ext::UNDEFINED, Ext::UNDEFINED, 300, 330, Shader::ALL},
+    {"packUnorm2x16", Ext::UNDEFINED, Ext::UNDEFINED, 300, 400, Shader::ALL},
+    {"unpackHalf2x16", Ext::UNDEFINED, Ext::UNDEFINED, 300, 420, Shader::ALL},
+    {"matrixCompMult", Ext::UNDEFINED, Ext::UNDEFINED, 300, -1, Shader::ALL},
+    {"pow", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"texture2DProjLod", Ext::UNDEFINED, Ext::UNDEFINED, 100, 0, Shader::VERTEX},
+    {"ldexp", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
+    {"floatBitsToUint", Ext::UNDEFINED, Ext::UNDEFINED, 300, 330, Shader::ALL},
+    {"textureProjLod", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
+    {"textureCubeLodEXT", Ext::EXT_shader_texture_lod, Ext::UNDEFINED, 100, -1, Shader::FRAGMENT},
+    {"imageStore", Ext::UNDEFINED, Ext::UNDEFINED, 310, -1, Shader::ALL},
+    {"textureGatherOffset", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
+    {"textureProjLodOffset", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
+    {"log", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"bitCount", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
+    {"exp2", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"atomicCompSwap", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL},
+    {"fract", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"EmitVertex", Ext::EXT_geometry_shader, Ext::UNDEFINED, 310, -1, Shader::GEOMETRY_EXT},
+    {"determinant", Ext::UNDEFINED, Ext::UNDEFINED, 300, -1, Shader::ALL},
+    {"textureGather", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
+    {"greaterThanEqual", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
+    {"greaterThan", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
+    {"bitfieldInsert", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
+    {"texture3DProj", Ext::OES_texture_3D, Ext::UNDEFINED, 100, -1, Shader::FRAGMENT},
+    {"packUnorm4x8", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
+    {"sign", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
+    {"inversesqrt", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"distance", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"tanh", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
+    {"texture2DGradEXT", Ext::EXT_shader_texture_lod, Ext::UNDEFINED, 100, -1, Shader::ALL},
+    {"memoryBarrier", Ext::UNDEFINED, Ext::UNDEFINED, 310, 420, Shader::ALL},
+    {"atomicCounter", Ext::UNDEFINED, Ext::UNDEFINED, 310, 420, Shader::ALL},
+    {"intBitsToFloat", Ext::UNDEFINED, Ext::UNDEFINED, 300, 330, Shader::ALL},
+    {"bitfieldExtract", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
+    {"texture3DProjLod", Ext::OES_texture_3D, Ext::UNDEFINED, 100, -1, Shader::FRAGMENT},
+    {"atomicAdd", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL},
+    {"asinh", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
+    {"texture2D", Ext::UNDEFINED, Ext::UNDEFINED, 100, 0, Shader::FRAGMENT},
+    {"memoryBarrierBuffer", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL},
+    {"tan", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"any", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"atomicXor", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL},
+    {"normalize", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"imageLoad", Ext::UNDEFINED, Ext::UNDEFINED, 310, -1, Shader::ALL},
+    {"floor", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"textureLodOffset", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
+    {"atanh", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
+    {"cross", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"sqrt", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"mix", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
+    {"sin", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"atomicExchange", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL},
+    {"textureGradOffset", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
+    {"atan", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"unpackUnorm2x16", Ext::UNDEFINED, Ext::UNDEFINED, 300, 400, Shader::ALL},
+    {"reflect", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"isinf", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
+    {"texture3D", Ext::OES_texture_3D, Ext::UNDEFINED, 100, -1, Shader::FRAGMENT},
+    {"umulExtended", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
+    {"atomicOr", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL},
+    {"texelFetch", Ext::OES_EGL_image_external_essl3, Ext::UNDEFINED, 300, -1, Shader::ALL},
+    {"EndPrimitive", Ext::EXT_geometry_shader, Ext::UNDEFINED, 310, -1, Shader::GEOMETRY_EXT},
+    {"notEqual", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"outerProduct", Ext::UNDEFINED, Ext::UNDEFINED, 300, 120, Shader::ALL},
+    {"imageSize", Ext::UNDEFINED, Ext::UNDEFINED, 310, -1, Shader::ALL},
+    {"refract", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"min", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
+    {"textureCube", Ext::UNDEFINED, Ext::UNDEFINED, 100, 0, Shader::ALL},
+    {"packSnorm2x16", Ext::UNDEFINED, Ext::UNDEFINED, 300, 420, Shader::ALL},
+    {"exp", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"groupMemoryBarrier", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::COMPUTE},
+    {"atomicMin", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL},
+    {"packHalf2x16", Ext::UNDEFINED, Ext::UNDEFINED, 300, 420, Shader::ALL},
+    {"texture2DLod", Ext::UNDEFINED, Ext::UNDEFINED, 100, 0, Shader::VERTEX},
+    {"dot", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}};
 
 }  // namespace BuiltInArray
 
@@ -26379,184 +13820,181 @@
     TStructure *gl_DepthRangeParameters =
         new TStructure(BuiltInId::gl_DepthRangeParameters, BuiltInName::gl_DepthRangeParameters,
                        TExtension::UNDEFINED, fields_gl_DepthRangeParameters);
-    mVar_gl_DepthRangeParameters = gl_DepthRangeParameters;
-    TType *type_gl_DepthRange    = new TType(gl_DepthRangeParameters, false);
+    m_gl_DepthRangeParameters = gl_DepthRangeParameters;
+    TType *type_gl_DepthRange = new TType(gl_DepthRangeParameters, false);
     type_gl_DepthRange->setQualifier(EvqUniform);
     type_gl_DepthRange->realize();
-    mVar_gl_DepthRange =
-        new TVariable(BuiltInId::gl_DepthRange, BuiltInName::gl_DepthRange, SymbolType::BuiltIn,
-                      TExtension::UNDEFINED, type_gl_DepthRange);
-    mVar_gl_MaxVertexAttribs = new TVariable(
+    m_gl_DepthRange       = new TVariable(BuiltInId::gl_DepthRange, BuiltInName::gl_DepthRange,
+                                    SymbolType::BuiltIn, TExtension::UNDEFINED, type_gl_DepthRange);
+    m_gl_MaxVertexAttribs = new TVariable(
         BuiltInId::gl_MaxVertexAttribs, BuiltInName::gl_MaxVertexAttribs, SymbolType::BuiltIn,
         TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxVertexAttribs);
-        static_cast<TVariable *>(mVar_gl_MaxVertexAttribs)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxVertexAttribs)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxVertexUniformVectors =
+    m_gl_MaxVertexUniformVectors =
         new TVariable(BuiltInId::gl_MaxVertexUniformVectors,
                       BuiltInName::gl_MaxVertexUniformVectors, SymbolType::BuiltIn,
                       TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxVertexUniformVectors);
-        static_cast<TVariable *>(mVar_gl_MaxVertexUniformVectors)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxVertexUniformVectors)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxVertexTextureImageUnits =
+    m_gl_MaxVertexTextureImageUnits =
         new TVariable(BuiltInId::gl_MaxVertexTextureImageUnits,
                       BuiltInName::gl_MaxVertexTextureImageUnits, SymbolType::BuiltIn,
                       TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxVertexTextureImageUnits);
-        static_cast<TVariable *>(mVar_gl_MaxVertexTextureImageUnits)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxVertexTextureImageUnits)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxCombinedTextureImageUnits =
+    m_gl_MaxCombinedTextureImageUnits =
         new TVariable(BuiltInId::gl_MaxCombinedTextureImageUnits,
                       BuiltInName::gl_MaxCombinedTextureImageUnits, SymbolType::BuiltIn,
                       TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxCombinedTextureImageUnits);
-        static_cast<TVariable *>(mVar_gl_MaxCombinedTextureImageUnits)
-            ->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxCombinedTextureImageUnits)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxTextureImageUnits =
+    m_gl_MaxTextureImageUnits =
         new TVariable(BuiltInId::gl_MaxTextureImageUnits, BuiltInName::gl_MaxTextureImageUnits,
                       SymbolType::BuiltIn, TExtension::UNDEFINED,
                       StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxTextureImageUnits);
-        static_cast<TVariable *>(mVar_gl_MaxTextureImageUnits)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxTextureImageUnits)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxFragmentUniformVectors =
+    m_gl_MaxFragmentUniformVectors =
         new TVariable(BuiltInId::gl_MaxFragmentUniformVectors,
                       BuiltInName::gl_MaxFragmentUniformVectors, SymbolType::BuiltIn,
                       TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxFragmentUniformVectors);
-        static_cast<TVariable *>(mVar_gl_MaxFragmentUniformVectors)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxFragmentUniformVectors)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxVaryingVectors = new TVariable(
+    m_gl_MaxVaryingVectors = new TVariable(
         BuiltInId::gl_MaxVaryingVectors, BuiltInName::gl_MaxVaryingVectors, SymbolType::BuiltIn,
         TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxVaryingVectors);
-        static_cast<TVariable *>(mVar_gl_MaxVaryingVectors)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxVaryingVectors)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxDrawBuffers = new TVariable(
+    m_gl_MaxDrawBuffers = new TVariable(
         BuiltInId::gl_MaxDrawBuffers, BuiltInName::gl_MaxDrawBuffers, SymbolType::BuiltIn,
         TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxDrawBuffers);
-        static_cast<TVariable *>(mVar_gl_MaxDrawBuffers)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxDrawBuffers)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxDualSourceDrawBuffersEXT = new TVariable(
+    m_gl_MaxDualSourceDrawBuffersEXT = new TVariable(
         BuiltInId::gl_MaxDualSourceDrawBuffersEXT, BuiltInName::gl_MaxDualSourceDrawBuffersEXT,
         SymbolType::BuiltIn, TExtension::EXT_blend_func_extended,
         StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxDualSourceDrawBuffers);
-        static_cast<TVariable *>(mVar_gl_MaxDualSourceDrawBuffersEXT)
-            ->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxDualSourceDrawBuffersEXT)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxVertexOutputVectors =
+    m_gl_MaxVertexOutputVectors =
         new TVariable(BuiltInId::gl_MaxVertexOutputVectors, BuiltInName::gl_MaxVertexOutputVectors,
                       SymbolType::BuiltIn, TExtension::UNDEFINED,
                       StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxVertexOutputVectors);
-        static_cast<TVariable *>(mVar_gl_MaxVertexOutputVectors)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxVertexOutputVectors)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxFragmentInputVectors =
+    m_gl_MaxFragmentInputVectors =
         new TVariable(BuiltInId::gl_MaxFragmentInputVectors,
                       BuiltInName::gl_MaxFragmentInputVectors, SymbolType::BuiltIn,
                       TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxFragmentInputVectors);
-        static_cast<TVariable *>(mVar_gl_MaxFragmentInputVectors)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxFragmentInputVectors)->shareConstPointer(unionArray);
     }
-    mVar_gl_MinProgramTexelOffset =
+    m_gl_MinProgramTexelOffset =
         new TVariable(BuiltInId::gl_MinProgramTexelOffset, BuiltInName::gl_MinProgramTexelOffset,
                       SymbolType::BuiltIn, TExtension::UNDEFINED,
                       StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MinProgramTexelOffset);
-        static_cast<TVariable *>(mVar_gl_MinProgramTexelOffset)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MinProgramTexelOffset)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxProgramTexelOffset =
+    m_gl_MaxProgramTexelOffset =
         new TVariable(BuiltInId::gl_MaxProgramTexelOffset, BuiltInName::gl_MaxProgramTexelOffset,
                       SymbolType::BuiltIn, TExtension::UNDEFINED,
                       StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxProgramTexelOffset);
-        static_cast<TVariable *>(mVar_gl_MaxProgramTexelOffset)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxProgramTexelOffset)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxImageUnits = new TVariable(
-        BuiltInId::gl_MaxImageUnits, BuiltInName::gl_MaxImageUnits, SymbolType::BuiltIn,
-        TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
+    m_gl_MaxImageUnits = new TVariable(BuiltInId::gl_MaxImageUnits, BuiltInName::gl_MaxImageUnits,
+                                       SymbolType::BuiltIn, TExtension::UNDEFINED,
+                                       StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxImageUnits);
-        static_cast<TVariable *>(mVar_gl_MaxImageUnits)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxImageUnits)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxVertexImageUniforms =
+    m_gl_MaxVertexImageUniforms =
         new TVariable(BuiltInId::gl_MaxVertexImageUniforms, BuiltInName::gl_MaxVertexImageUniforms,
                       SymbolType::BuiltIn, TExtension::UNDEFINED,
                       StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxVertexImageUniforms);
-        static_cast<TVariable *>(mVar_gl_MaxVertexImageUniforms)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxVertexImageUniforms)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxFragmentImageUniforms =
+    m_gl_MaxFragmentImageUniforms =
         new TVariable(BuiltInId::gl_MaxFragmentImageUniforms,
                       BuiltInName::gl_MaxFragmentImageUniforms, SymbolType::BuiltIn,
                       TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxFragmentImageUniforms);
-        static_cast<TVariable *>(mVar_gl_MaxFragmentImageUniforms)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxFragmentImageUniforms)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxComputeImageUniforms =
+    m_gl_MaxComputeImageUniforms =
         new TVariable(BuiltInId::gl_MaxComputeImageUniforms,
                       BuiltInName::gl_MaxComputeImageUniforms, SymbolType::BuiltIn,
                       TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxComputeImageUniforms);
-        static_cast<TVariable *>(mVar_gl_MaxComputeImageUniforms)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxComputeImageUniforms)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxCombinedImageUniforms =
+    m_gl_MaxCombinedImageUniforms =
         new TVariable(BuiltInId::gl_MaxCombinedImageUniforms,
                       BuiltInName::gl_MaxCombinedImageUniforms, SymbolType::BuiltIn,
                       TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxCombinedImageUniforms);
-        static_cast<TVariable *>(mVar_gl_MaxCombinedImageUniforms)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxCombinedImageUniforms)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxCombinedShaderOutputResources =
+    m_gl_MaxCombinedShaderOutputResources =
         new TVariable(BuiltInId::gl_MaxCombinedShaderOutputResources,
                       BuiltInName::gl_MaxCombinedShaderOutputResources, SymbolType::BuiltIn,
                       TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxCombinedShaderOutputResources);
-        static_cast<TVariable *>(mVar_gl_MaxCombinedShaderOutputResources)
+        static_cast<TVariable *>(m_gl_MaxCombinedShaderOutputResources)
             ->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxComputeWorkGroupCount =
+    m_gl_MaxComputeWorkGroupCount =
         new TVariable(BuiltInId::gl_MaxComputeWorkGroupCount,
                       BuiltInName::gl_MaxComputeWorkGroupCount, SymbolType::BuiltIn,
                       TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpHigh, EvqConst, 3, 1>());
@@ -26566,9 +14004,9 @@
         {
             unionArray[index].setIConst(resources.MaxComputeWorkGroupCount[index]);
         }
-        static_cast<TVariable *>(mVar_gl_MaxComputeWorkGroupCount)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxComputeWorkGroupCount)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxComputeWorkGroupSize =
+    m_gl_MaxComputeWorkGroupSize =
         new TVariable(BuiltInId::gl_MaxComputeWorkGroupSize,
                       BuiltInName::gl_MaxComputeWorkGroupSize, SymbolType::BuiltIn,
                       TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpHigh, EvqConst, 3, 1>());
@@ -26578,206 +14016,200 @@
         {
             unionArray[index].setIConst(resources.MaxComputeWorkGroupSize[index]);
         }
-        static_cast<TVariable *>(mVar_gl_MaxComputeWorkGroupSize)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxComputeWorkGroupSize)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxComputeUniformComponents =
+    m_gl_MaxComputeUniformComponents =
         new TVariable(BuiltInId::gl_MaxComputeUniformComponents,
                       BuiltInName::gl_MaxComputeUniformComponents, SymbolType::BuiltIn,
                       TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxComputeUniformComponents);
-        static_cast<TVariable *>(mVar_gl_MaxComputeUniformComponents)
-            ->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxComputeUniformComponents)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxComputeTextureImageUnits =
+    m_gl_MaxComputeTextureImageUnits =
         new TVariable(BuiltInId::gl_MaxComputeTextureImageUnits,
                       BuiltInName::gl_MaxComputeTextureImageUnits, SymbolType::BuiltIn,
                       TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxComputeTextureImageUnits);
-        static_cast<TVariable *>(mVar_gl_MaxComputeTextureImageUnits)
-            ->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxComputeTextureImageUnits)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxComputeAtomicCounters =
+    m_gl_MaxComputeAtomicCounters =
         new TVariable(BuiltInId::gl_MaxComputeAtomicCounters,
                       BuiltInName::gl_MaxComputeAtomicCounters, SymbolType::BuiltIn,
                       TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxComputeAtomicCounters);
-        static_cast<TVariable *>(mVar_gl_MaxComputeAtomicCounters)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxComputeAtomicCounters)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxComputeAtomicCounterBuffers =
+    m_gl_MaxComputeAtomicCounterBuffers =
         new TVariable(BuiltInId::gl_MaxComputeAtomicCounterBuffers,
                       BuiltInName::gl_MaxComputeAtomicCounterBuffers, SymbolType::BuiltIn,
                       TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxComputeAtomicCounterBuffers);
-        static_cast<TVariable *>(mVar_gl_MaxComputeAtomicCounterBuffers)
+        static_cast<TVariable *>(m_gl_MaxComputeAtomicCounterBuffers)
             ->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxVertexAtomicCounters =
+    m_gl_MaxVertexAtomicCounters =
         new TVariable(BuiltInId::gl_MaxVertexAtomicCounters,
                       BuiltInName::gl_MaxVertexAtomicCounters, SymbolType::BuiltIn,
                       TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxVertexAtomicCounters);
-        static_cast<TVariable *>(mVar_gl_MaxVertexAtomicCounters)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxVertexAtomicCounters)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxFragmentAtomicCounters =
+    m_gl_MaxFragmentAtomicCounters =
         new TVariable(BuiltInId::gl_MaxFragmentAtomicCounters,
                       BuiltInName::gl_MaxFragmentAtomicCounters, SymbolType::BuiltIn,
                       TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxFragmentAtomicCounters);
-        static_cast<TVariable *>(mVar_gl_MaxFragmentAtomicCounters)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxFragmentAtomicCounters)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxCombinedAtomicCounters =
+    m_gl_MaxCombinedAtomicCounters =
         new TVariable(BuiltInId::gl_MaxCombinedAtomicCounters,
                       BuiltInName::gl_MaxCombinedAtomicCounters, SymbolType::BuiltIn,
                       TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxCombinedAtomicCounters);
-        static_cast<TVariable *>(mVar_gl_MaxCombinedAtomicCounters)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxCombinedAtomicCounters)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxAtomicCounterBindings =
+    m_gl_MaxAtomicCounterBindings =
         new TVariable(BuiltInId::gl_MaxAtomicCounterBindings,
                       BuiltInName::gl_MaxAtomicCounterBindings, SymbolType::BuiltIn,
                       TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxAtomicCounterBindings);
-        static_cast<TVariable *>(mVar_gl_MaxAtomicCounterBindings)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxAtomicCounterBindings)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxVertexAtomicCounterBuffers =
+    m_gl_MaxVertexAtomicCounterBuffers =
         new TVariable(BuiltInId::gl_MaxVertexAtomicCounterBuffers,
                       BuiltInName::gl_MaxVertexAtomicCounterBuffers, SymbolType::BuiltIn,
                       TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxVertexAtomicCounterBuffers);
-        static_cast<TVariable *>(mVar_gl_MaxVertexAtomicCounterBuffers)
-            ->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxVertexAtomicCounterBuffers)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxFragmentAtomicCounterBuffers =
+    m_gl_MaxFragmentAtomicCounterBuffers =
         new TVariable(BuiltInId::gl_MaxFragmentAtomicCounterBuffers,
                       BuiltInName::gl_MaxFragmentAtomicCounterBuffers, SymbolType::BuiltIn,
                       TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxFragmentAtomicCounterBuffers);
-        static_cast<TVariable *>(mVar_gl_MaxFragmentAtomicCounterBuffers)
+        static_cast<TVariable *>(m_gl_MaxFragmentAtomicCounterBuffers)
             ->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxCombinedAtomicCounterBuffers =
+    m_gl_MaxCombinedAtomicCounterBuffers =
         new TVariable(BuiltInId::gl_MaxCombinedAtomicCounterBuffers,
                       BuiltInName::gl_MaxCombinedAtomicCounterBuffers, SymbolType::BuiltIn,
                       TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxCombinedAtomicCounterBuffers);
-        static_cast<TVariable *>(mVar_gl_MaxCombinedAtomicCounterBuffers)
+        static_cast<TVariable *>(m_gl_MaxCombinedAtomicCounterBuffers)
             ->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxAtomicCounterBufferSize =
+    m_gl_MaxAtomicCounterBufferSize =
         new TVariable(BuiltInId::gl_MaxAtomicCounterBufferSize,
                       BuiltInName::gl_MaxAtomicCounterBufferSize, SymbolType::BuiltIn,
                       TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxAtomicCounterBufferSize);
-        static_cast<TVariable *>(mVar_gl_MaxAtomicCounterBufferSize)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxAtomicCounterBufferSize)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxGeometryInputComponents = new TVariable(
+    m_gl_MaxGeometryInputComponents = new TVariable(
         BuiltInId::gl_MaxGeometryInputComponents, BuiltInName::gl_MaxGeometryInputComponents,
         SymbolType::BuiltIn, TExtension::EXT_geometry_shader,
         StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxGeometryInputComponents);
-        static_cast<TVariable *>(mVar_gl_MaxGeometryInputComponents)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxGeometryInputComponents)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxGeometryOutputComponents = new TVariable(
+    m_gl_MaxGeometryOutputComponents = new TVariable(
         BuiltInId::gl_MaxGeometryOutputComponents, BuiltInName::gl_MaxGeometryOutputComponents,
         SymbolType::BuiltIn, TExtension::EXT_geometry_shader,
         StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxGeometryOutputComponents);
-        static_cast<TVariable *>(mVar_gl_MaxGeometryOutputComponents)
-            ->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxGeometryOutputComponents)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxGeometryImageUniforms = new TVariable(
+    m_gl_MaxGeometryImageUniforms = new TVariable(
         BuiltInId::gl_MaxGeometryImageUniforms, BuiltInName::gl_MaxGeometryImageUniforms,
         SymbolType::BuiltIn, TExtension::EXT_geometry_shader,
         StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxGeometryImageUniforms);
-        static_cast<TVariable *>(mVar_gl_MaxGeometryImageUniforms)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxGeometryImageUniforms)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxGeometryTextureImageUnits = new TVariable(
+    m_gl_MaxGeometryTextureImageUnits = new TVariable(
         BuiltInId::gl_MaxGeometryTextureImageUnits, BuiltInName::gl_MaxGeometryTextureImageUnits,
         SymbolType::BuiltIn, TExtension::EXT_geometry_shader,
         StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxGeometryTextureImageUnits);
-        static_cast<TVariable *>(mVar_gl_MaxGeometryTextureImageUnits)
-            ->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxGeometryTextureImageUnits)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxGeometryOutputVertices = new TVariable(
+    m_gl_MaxGeometryOutputVertices = new TVariable(
         BuiltInId::gl_MaxGeometryOutputVertices, BuiltInName::gl_MaxGeometryOutputVertices,
         SymbolType::BuiltIn, TExtension::EXT_geometry_shader,
         StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxGeometryOutputVertices);
-        static_cast<TVariable *>(mVar_gl_MaxGeometryOutputVertices)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxGeometryOutputVertices)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxGeometryTotalOutputComponents = new TVariable(
+    m_gl_MaxGeometryTotalOutputComponents = new TVariable(
         BuiltInId::gl_MaxGeometryTotalOutputComponents,
         BuiltInName::gl_MaxGeometryTotalOutputComponents, SymbolType::BuiltIn,
         TExtension::EXT_geometry_shader, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxGeometryTotalOutputComponents);
-        static_cast<TVariable *>(mVar_gl_MaxGeometryTotalOutputComponents)
+        static_cast<TVariable *>(m_gl_MaxGeometryTotalOutputComponents)
             ->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxGeometryUniformComponents = new TVariable(
+    m_gl_MaxGeometryUniformComponents = new TVariable(
         BuiltInId::gl_MaxGeometryUniformComponents, BuiltInName::gl_MaxGeometryUniformComponents,
         SymbolType::BuiltIn, TExtension::EXT_geometry_shader,
         StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxGeometryUniformComponents);
-        static_cast<TVariable *>(mVar_gl_MaxGeometryUniformComponents)
-            ->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxGeometryUniformComponents)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxGeometryAtomicCounters = new TVariable(
+    m_gl_MaxGeometryAtomicCounters = new TVariable(
         BuiltInId::gl_MaxGeometryAtomicCounters, BuiltInName::gl_MaxGeometryAtomicCounters,
         SymbolType::BuiltIn, TExtension::EXT_geometry_shader,
         StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxGeometryAtomicCounters);
-        static_cast<TVariable *>(mVar_gl_MaxGeometryAtomicCounters)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxGeometryAtomicCounters)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxGeometryAtomicCounterBuffers = new TVariable(
+    m_gl_MaxGeometryAtomicCounterBuffers = new TVariable(
         BuiltInId::gl_MaxGeometryAtomicCounterBuffers,
         BuiltInName::gl_MaxGeometryAtomicCounterBuffers, SymbolType::BuiltIn,
         TExtension::EXT_geometry_shader, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxGeometryAtomicCounterBuffers);
-        static_cast<TVariable *>(mVar_gl_MaxGeometryAtomicCounterBuffers)
+        static_cast<TVariable *>(m_gl_MaxGeometryAtomicCounterBuffers)
             ->shareConstPointer(unionArray);
     }
     TType *type_gl_FragData = new TType(EbtFloat, EbpMedium, EvqFragData, 4);
@@ -26790,31 +14222,31 @@
         type_gl_FragData->makeArray(1u);
     }
     type_gl_FragData->realize();
-    mVar_gl_FragData = new TVariable(BuiltInId::gl_FragData, BuiltInName::gl_FragData,
-                                     SymbolType::BuiltIn, TExtension::UNDEFINED, type_gl_FragData);
+    m_gl_FragData = new TVariable(BuiltInId::gl_FragData, BuiltInName::gl_FragData,
+                                  SymbolType::BuiltIn, TExtension::UNDEFINED, type_gl_FragData);
     TType *type_gl_SecondaryFragDataEXT =
         new TType(EbtFloat, EbpMedium, EvqSecondaryFragDataEXT, 4, 1);
     type_gl_SecondaryFragDataEXT->makeArray(resources.MaxDualSourceDrawBuffers);
     type_gl_SecondaryFragDataEXT->realize();
-    mVar_gl_SecondaryFragDataEXT = new TVariable(
+    m_gl_SecondaryFragDataEXT = new TVariable(
         BuiltInId::gl_SecondaryFragDataEXT, BuiltInName::gl_SecondaryFragDataEXT,
         SymbolType::BuiltIn, TExtension::EXT_blend_func_extended, type_gl_SecondaryFragDataEXT);
     TType *type_gl_FragDepthEXT = new TType(
         EbtFloat, resources.FragmentPrecisionHigh ? EbpHigh : EbpMedium, EvqFragDepthEXT, 1);
     type_gl_FragDepthEXT->realize();
-    mVar_gl_FragDepthEXT =
+    m_gl_FragDepthEXT =
         new TVariable(BuiltInId::gl_FragDepthEXT, BuiltInName::gl_FragDepthEXT, SymbolType::BuiltIn,
                       TExtension::EXT_frag_depth, type_gl_FragDepthEXT);
     TType *type_gl_LastFragData = new TType(EbtFloat, EbpMedium, EvqLastFragData, 4, 1);
     type_gl_LastFragData->makeArray(resources.MaxDrawBuffers);
     type_gl_LastFragData->realize();
-    mVar_gl_LastFragData =
+    m_gl_LastFragData =
         new TVariable(BuiltInId::gl_LastFragData, BuiltInName::gl_LastFragData, SymbolType::BuiltIn,
                       TExtension::EXT_shader_framebuffer_fetch, type_gl_LastFragData);
     TType *type_gl_LastFragDataNV = new TType(EbtFloat, EbpMedium, EvqLastFragData, 4, 1);
     type_gl_LastFragDataNV->makeArray(resources.MaxDrawBuffers);
     type_gl_LastFragDataNV->realize();
-    mVar_gl_LastFragDataNV = new TVariable(
+    m_gl_LastFragDataNV = new TVariable(
         BuiltInId::gl_LastFragDataNV, BuiltInName::gl_LastFragData, SymbolType::BuiltIn,
         TExtension::NV_shader_framebuffer_fetch, type_gl_LastFragDataNV);
     TFieldList *fields_gl_PerVertex = new TFieldList();
@@ -26824,12 +14256,12 @@
     TInterfaceBlock *gl_PerVertex =
         new TInterfaceBlock(BuiltInId::gl_PerVertex, BuiltInName::gl_PerVertex,
                             TExtension::EXT_geometry_shader, fields_gl_PerVertex);
-    mVar_gl_PerVertex = gl_PerVertex;
+    m_gl_PerVertex    = gl_PerVertex;
     TType *type_gl_in = new TType(gl_PerVertex, EvqPerVertexIn, TLayoutQualifier::Create());
     type_gl_in->makeArray(0u);
     type_gl_in->realize();
-    mVar_gl_in = new TVariable(BuiltInId::gl_in, BuiltInName::gl_in, SymbolType::BuiltIn,
-                               TExtension::EXT_geometry_shader, type_gl_in);
+    m_gl_in = new TVariable(BuiltInId::gl_in, BuiltInName::gl_in, SymbolType::BuiltIn,
+                            TExtension::EXT_geometry_shader, type_gl_in);
     TFieldList *fields_gl_PerVertexOutBlock = new TFieldList();
     fields_gl_PerVertexOutBlock->push_back(
         new TField(new TType(EbtFloat, EbpHigh, EvqPosition, 4, 1), BuiltInName::gl_Position,
@@ -26840,103 +14272,21 @@
     TType *type_gl_PositionGS = new TType(EbtFloat, EbpHigh, EvqPosition, 4);
     type_gl_PositionGS->setInterfaceBlock(gl_PerVertexOutBlock);
     type_gl_PositionGS->realize();
-    mVar_gl_PositionGS =
+    m_gl_PositionGS =
         new TVariable(BuiltInId::gl_PositionGS, BuiltInName::gl_Position, SymbolType::BuiltIn,
                       TExtension::EXT_geometry_shader, type_gl_PositionGS);
 }
 
 namespace
 {
-
-bool CheckESSLVersion(int expected, int actual)
+uint16_t GetNextRuleIndex(uint32_t nameHash)
 {
-    // Not supported
-    if (expected == -1)
-        return false;
-
-    // Only ESSL100
-    if (expected == 100)
-        return actual == 100;
-
-    return actual >= expected;
+    if (nameHash == 935 - 1)
+        return ArraySize(BuiltInArray::kRules);
+    return BuiltInArray::kMangledOffsets[nameHash + 1];
 }
-
-bool CheckGLSLVersion(int expected, int actual)
-{
-    // Not supported
-    if (expected == -1)
-        return false;
-
-    return actual >= expected;
-}
-
-bool CheckShaderType(Shader expected, GLenum actual)
-{
-    switch (expected)
-    {
-        case Shader::ALL:
-            return true;
-        case Shader::FRAGMENT:
-            return actual == GL_FRAGMENT_SHADER;
-        case Shader::VERTEX:
-            return actual == GL_VERTEX_SHADER;
-        case Shader::COMPUTE:
-            return actual == GL_COMPUTE_SHADER;
-        case Shader::GEOMETRY:
-            return actual == GL_GEOMETRY_SHADER;
-        case Shader::GEOMETRY_EXT:
-            return actual == GL_GEOMETRY_SHADER_EXT;
-        case Shader::NOT_COMPUTE:
-            return actual != GL_COMPUTE_SHADER;
-        default:
-            UNREACHABLE();
-            return false;
-    }
-}
-
 }  // namespace
 
-const TSymbol *TSymbolTable::getSymbol(SymbolEntry entry,
-                                       const ImmutableString &name,
-                                       int version) const
-{
-    if (entry.name != name)
-    {
-        return nullptr;
-    }
-    if ((entry.symbol || entry.var) && CheckShaderType(entry.shaderType, mShaderType))
-    {
-        // Non-extension symbol or variable
-        if (!IsDesktopGLSpec(mShaderSpec) && CheckESSLVersion(entry.esslVersion, version))
-        {
-            return entry.symbol ? entry.symbol : this->*(entry.var);
-        }
-        if (IsDesktopGLSpec(mShaderSpec) && CheckGLSLVersion(entry.glslVersion, version))
-        {
-            return entry.symbol ? entry.symbol : this->*(entry.var);
-        }
-    }
-    if (entry.esslExtension && mResources.*(entry.esslExtension) && !IsDesktopGLSpec(mShaderSpec) &&
-        CheckESSLVersion(entry.esslExtVersion, version) &&
-        CheckShaderType(entry.esslExtShaderType, mShaderType))
-    {
-        return entry.esslExtSymbol ? entry.esslExtSymbol : this->*(entry.esslExtVar);
-    }
-    if (entry.glslExtension && mResources.*(entry.glslExtension) && IsDesktopGLSpec(mShaderSpec) &&
-        CheckGLSLVersion(entry.glslExtVersion, version) &&
-        CheckShaderType(entry.glslExtShaderType, mShaderType))
-    {
-        return entry.glslExtSymbol ? entry.glslExtSymbol : this->*(entry.glslExtVar);
-    }
-    if (entry.esslExtension2 && mResources.*(entry.esslExtension2) &&
-        !IsDesktopGLSpec(mShaderSpec) && CheckESSLVersion(entry.esslExtVersion2, version) &&
-        CheckShaderType(entry.esslExtShaderType2, mShaderType))
-    {
-        return entry.esslExtSymbol2 ? entry.esslExtSymbol2 : this->*(entry.esslExtVar2);
-    }
-    return nullptr;
-}
-
 const TSymbol *TSymbolTable::findBuiltIn(const ImmutableString &name, int shaderVersion) const
 {
     if (name.length() > 37)
@@ -26945,42 +14295,31 @@
     uint32_t nameHash = name.mangledNameHash();
     if (nameHash >= 935)
         return nullptr;
-    return getSymbol(BuiltInArray::mangled[nameHash], name, shaderVersion);
-}
 
-const UnmangledBuiltIn *TSymbolTable::getUnmangled(UnmangledEntry entry,
-                                                   const ImmutableString &name,
-                                                   int version) const
-{
-    if (!CheckShaderType(entry.shaderType, mShaderType))
-    {
+    const char *actualName = BuiltInArray::kMangledNames[nameHash];
+    if (name != actualName)
         return nullptr;
-    }
-    if (entry.name == name)
-    {
-        if (!IsDesktopGLSpec(mShaderSpec) && CheckESSLVersion(entry.esslVersion, version))
-        {
-            return entry.esslUnmangled;
-        }
-        if (IsDesktopGLSpec(mShaderSpec) && CheckGLSLVersion(entry.glslVersion, version))
-        {
-            return entry.glslUnmangled;
-        }
-    }
-    return nullptr;
+
+    uint16_t startIndex = BuiltInArray::kMangledOffsets[nameHash];
+    uint16_t nextIndex  = GetNextRuleIndex(nameHash);
+
+    return FindMangledBuiltIn(mShaderSpec, shaderVersion, mShaderType, mResources, *this,
+                              BuiltInArray::kRules, startIndex, nextIndex);
 }
 
-const UnmangledBuiltIn *TSymbolTable::getUnmangledBuiltInForShaderVersion(
-    const ImmutableString &name,
-    int shaderVersion)
+bool TSymbolTable::isUnmangledBuiltInName(const ImmutableString &name,
+                                          int shaderVersion,
+                                          const TExtensionBehavior &extensions) const
 {
     if (name.length() > 26)
-        return nullptr;
+        return false;
 
     uint32_t nameHash = name.unmangledNameHash();
     if (nameHash >= 150)
-        return nullptr;
-    return getUnmangled(BuiltInArray::unmangled[nameHash], name, shaderVersion);
+        return false;
+
+    return BuiltInArray::unmangled[nameHash].matches(name, mShaderSpec, shaderVersion, mShaderType,
+                                                     extensions);
 }
 
 }  // namespace sh
diff --git a/Source/ThirdParty/ANGLE/src/compiler/translator/SymbolTable_autogen.cpp b/Source/ThirdParty/ANGLE/src/compiler/translator/SymbolTable_autogen.cpp
index 9a61498..5f109ce 100644
--- a/Source/ThirdParty/ANGLE/src/compiler/translator/SymbolTable_autogen.cpp
+++ b/Source/ThirdParty/ANGLE/src/compiler/translator/SymbolTable_autogen.cpp
@@ -20,6 +20,8 @@
 
 namespace sh
 {
+using Resources = ShBuiltInResources;
+using TableBase = TSymbolTableBase;
 
 // Since some of the BuiltInId declarations are used outside of constexpr expressions, we need to
 // have these definitions without an initializer. C++17 should eventually remove the need for this.
@@ -2555,1120 +2557,1078 @@
 namespace BuiltInVariable
 {
 
-constexpr const TVariable kVar_angle_BaseInstance(
+constexpr const TVariable kangle_BaseInstance(
     BuiltInId::angle_BaseInstance,
     BuiltInName::angle_BaseInstance,
     SymbolType::BuiltIn,
     TExtension::ANGLE_base_vertex_base_instance,
     StaticType::Get<EbtInt, EbpHigh, EvqBaseInstance, 1, 1>());
-constexpr const TVariable kVar_angle_BaseVertex(
+constexpr const TVariable kangle_BaseVertex(
     BuiltInId::angle_BaseVertex,
     BuiltInName::angle_BaseVertex,
     SymbolType::BuiltIn,
     TExtension::ANGLE_base_vertex_base_instance,
     StaticType::Get<EbtInt, EbpHigh, EvqBaseVertex, 1, 1>());
-constexpr const TVariable kVar_gl_BaseInstance(
+constexpr const TVariable kgl_BaseInstance(
     BuiltInId::gl_BaseInstance,
     BuiltInName::gl_BaseInstance,
     SymbolType::BuiltIn,
     TExtension::ANGLE_base_vertex_base_instance,
     StaticType::Get<EbtInt, EbpHigh, EvqBaseInstance, 1, 1>());
-constexpr const TVariable kVar_gl_BaseVertex(
-    BuiltInId::gl_BaseVertex,
-    BuiltInName::gl_BaseVertex,
-    SymbolType::BuiltIn,
-    TExtension::ANGLE_base_vertex_base_instance,
-    StaticType::Get<EbtInt, EbpHigh, EvqBaseVertex, 1, 1>());
-constexpr const TVariable kVar_gl_DrawID(BuiltInId::gl_DrawID,
-                                         BuiltInName::gl_DrawID,
+constexpr const TVariable kgl_BaseVertex(BuiltInId::gl_BaseVertex,
+                                         BuiltInName::gl_BaseVertex,
                                          SymbolType::BuiltIn,
-                                         TExtension::ANGLE_multi_draw,
-                                         StaticType::Get<EbtInt, EbpHigh, EvqDrawID, 1, 1>());
-constexpr const TVariable kVar_gl_FragColor(
-    BuiltInId::gl_FragColor,
-    BuiltInName::gl_FragColor,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtFloat, EbpMedium, EvqFragColor, 4, 1>());
-constexpr const TVariable kVar_gl_FragCoord(
-    BuiltInId::gl_FragCoord,
-    BuiltInName::gl_FragCoord,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtFloat, EbpMedium, EvqFragCoord, 4, 1>());
-constexpr const TVariable kVar_gl_FragDepth(
-    BuiltInId::gl_FragDepth,
-    BuiltInName::gl_FragDepth,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtFloat, EbpHigh, EvqFragDepth, 1, 1>());
-constexpr const TVariable kVar_gl_FrontFacing(
+                                         TExtension::ANGLE_base_vertex_base_instance,
+                                         StaticType::Get<EbtInt, EbpHigh, EvqBaseVertex, 1, 1>());
+constexpr const TVariable kgl_DrawID(BuiltInId::gl_DrawID,
+                                     BuiltInName::gl_DrawID,
+                                     SymbolType::BuiltIn,
+                                     TExtension::ANGLE_multi_draw,
+                                     StaticType::Get<EbtInt, EbpHigh, EvqDrawID, 1, 1>());
+constexpr const TVariable kgl_FragColor(BuiltInId::gl_FragColor,
+                                        BuiltInName::gl_FragColor,
+                                        SymbolType::BuiltIn,
+                                        TExtension::UNDEFINED,
+                                        StaticType::Get<EbtFloat, EbpMedium, EvqFragColor, 4, 1>());
+constexpr const TVariable kgl_FragCoord(BuiltInId::gl_FragCoord,
+                                        BuiltInName::gl_FragCoord,
+                                        SymbolType::BuiltIn,
+                                        TExtension::UNDEFINED,
+                                        StaticType::Get<EbtFloat, EbpMedium, EvqFragCoord, 4, 1>());
+constexpr const TVariable kgl_FragDepth(BuiltInId::gl_FragDepth,
+                                        BuiltInName::gl_FragDepth,
+                                        SymbolType::BuiltIn,
+                                        TExtension::UNDEFINED,
+                                        StaticType::Get<EbtFloat, EbpHigh, EvqFragDepth, 1, 1>());
+constexpr const TVariable kgl_FrontFacing(
     BuiltInId::gl_FrontFacing,
     BuiltInName::gl_FrontFacing,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtBool, EbpUndefined, EvqFrontFacing, 1, 1>());
-constexpr const TVariable kVar_gl_GlobalInvocationID(
+constexpr const TVariable kgl_GlobalInvocationID(
     BuiltInId::gl_GlobalInvocationID,
     BuiltInName::gl_GlobalInvocationID,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobalInvocationID, 3, 1>());
-constexpr const TVariable kVar_gl_InstanceID(
-    BuiltInId::gl_InstanceID,
-    BuiltInName::gl_InstanceID,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtInt, EbpHigh, EvqInstanceID, 1, 1>());
-constexpr const TVariable kVar_gl_InstanceIndex(
+constexpr const TVariable kgl_InstanceID(BuiltInId::gl_InstanceID,
+                                         BuiltInName::gl_InstanceID,
+                                         SymbolType::BuiltIn,
+                                         TExtension::UNDEFINED,
+                                         StaticType::Get<EbtInt, EbpHigh, EvqInstanceID, 1, 1>());
+constexpr const TVariable kgl_InstanceIndex(
     BuiltInId::gl_InstanceIndex,
     BuiltInName::gl_InstanceIndex,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtInt, EbpHigh, EvqInstanceID, 1, 1>());
-constexpr const TVariable kVar_gl_InvocationID(
+constexpr const TVariable kgl_InvocationID(
     BuiltInId::gl_InvocationID,
     BuiltInName::gl_InvocationID,
     SymbolType::BuiltIn,
     TExtension::EXT_geometry_shader,
     StaticType::Get<EbtInt, EbpHigh, EvqInvocationID, 1, 1>());
-constexpr const TVariable kVar_gl_LastFragColor(
+constexpr const TVariable kgl_LastFragColor(
     BuiltInId::gl_LastFragColor,
     BuiltInName::gl_LastFragColor,
     SymbolType::BuiltIn,
     TExtension::NV_shader_framebuffer_fetch,
     StaticType::Get<EbtFloat, EbpMedium, EvqLastFragColor, 4, 1>());
-constexpr const TVariable kVar_gl_LastFragColorARM(
+constexpr const TVariable kgl_LastFragColorARM(
     BuiltInId::gl_LastFragColorARM,
     BuiltInName::gl_LastFragColorARM,
     SymbolType::BuiltIn,
     TExtension::ARM_shader_framebuffer_fetch,
     StaticType::Get<EbtFloat, EbpMedium, EvqLastFragColor, 4, 1>());
-constexpr const TVariable kVar_gl_Layer(BuiltInId::gl_Layer,
-                                        BuiltInName::gl_Layer,
-                                        SymbolType::BuiltIn,
-                                        TExtension::EXT_geometry_shader,
-                                        StaticType::Get<EbtInt, EbpHigh, EvqLayer, 1, 1>());
-constexpr const TVariable kVar_gl_LayerGS(BuiltInId::gl_LayerGS,
-                                          BuiltInName::gl_Layer,
-                                          SymbolType::BuiltIn,
-                                          TExtension::EXT_geometry_shader,
-                                          StaticType::Get<EbtInt, EbpHigh, EvqLayer, 1, 1>());
-constexpr const TVariable kVar_gl_LayerVS(BuiltInId::gl_LayerVS,
-                                          BuiltInName::gl_Layer,
-                                          SymbolType::BuiltIn,
-                                          TExtension::UNDEFINED,
-                                          StaticType::Get<EbtInt, EbpHigh, EvqLayer, 1, 1>());
-constexpr const TVariable kVar_gl_LocalInvocationID(
+constexpr const TVariable kgl_Layer(BuiltInId::gl_Layer,
+                                    BuiltInName::gl_Layer,
+                                    SymbolType::BuiltIn,
+                                    TExtension::EXT_geometry_shader,
+                                    StaticType::Get<EbtInt, EbpHigh, EvqLayer, 1, 1>());
+constexpr const TVariable kgl_LayerGS(BuiltInId::gl_LayerGS,
+                                      BuiltInName::gl_Layer,
+                                      SymbolType::BuiltIn,
+                                      TExtension::EXT_geometry_shader,
+                                      StaticType::Get<EbtInt, EbpHigh, EvqLayer, 1, 1>());
+constexpr const TVariable kgl_LayerVS(BuiltInId::gl_LayerVS,
+                                      BuiltInName::gl_Layer,
+                                      SymbolType::BuiltIn,
+                                      TExtension::UNDEFINED,
+                                      StaticType::Get<EbtInt, EbpHigh, EvqLayer, 1, 1>());
+constexpr const TVariable kgl_LocalInvocationID(
     BuiltInId::gl_LocalInvocationID,
     BuiltInName::gl_LocalInvocationID,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtUInt, EbpUndefined, EvqLocalInvocationID, 3, 1>());
-constexpr const TVariable kVar_gl_LocalInvocationIndex(
+constexpr const TVariable kgl_LocalInvocationIndex(
     BuiltInId::gl_LocalInvocationIndex,
     BuiltInName::gl_LocalInvocationIndex,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtUInt, EbpUndefined, EvqLocalInvocationIndex, 1, 1>());
-constexpr const TVariable kVar_gl_NumWorkGroups(
+constexpr const TVariable kgl_NumWorkGroups(
     BuiltInId::gl_NumWorkGroups,
     BuiltInName::gl_NumWorkGroups,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtUInt, EbpUndefined, EvqNumWorkGroups, 3, 1>());
-constexpr const TVariable kVar_gl_PointCoord(
+constexpr const TVariable kgl_PointCoord(
     BuiltInId::gl_PointCoord,
     BuiltInName::gl_PointCoord,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtFloat, EbpMedium, EvqPointCoord, 2, 1>());
-constexpr const TVariable kVar_gl_PointSize(
-    BuiltInId::gl_PointSize,
-    BuiltInName::gl_PointSize,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtFloat, EbpMedium, EvqPointSize, 1, 1>());
-constexpr const TVariable kVar_gl_Position(BuiltInId::gl_Position,
-                                           BuiltInName::gl_Position,
-                                           SymbolType::BuiltIn,
-                                           TExtension::UNDEFINED,
-                                           StaticType::Get<EbtFloat, EbpHigh, EvqPosition, 4, 1>());
-constexpr const TVariable kVar_gl_PrimitiveID(
-    BuiltInId::gl_PrimitiveID,
-    BuiltInName::gl_PrimitiveID,
-    SymbolType::BuiltIn,
-    TExtension::EXT_geometry_shader,
-    StaticType::Get<EbtInt, EbpHigh, EvqPrimitiveID, 1, 1>());
-constexpr const TVariable kVar_gl_PrimitiveIDGS(
+constexpr const TVariable kgl_PointSize(BuiltInId::gl_PointSize,
+                                        BuiltInName::gl_PointSize,
+                                        SymbolType::BuiltIn,
+                                        TExtension::UNDEFINED,
+                                        StaticType::Get<EbtFloat, EbpMedium, EvqPointSize, 1, 1>());
+constexpr const TVariable kgl_Position(BuiltInId::gl_Position,
+                                       BuiltInName::gl_Position,
+                                       SymbolType::BuiltIn,
+                                       TExtension::UNDEFINED,
+                                       StaticType::Get<EbtFloat, EbpHigh, EvqPosition, 4, 1>());
+constexpr const TVariable kgl_PrimitiveID(BuiltInId::gl_PrimitiveID,
+                                          BuiltInName::gl_PrimitiveID,
+                                          SymbolType::BuiltIn,
+                                          TExtension::EXT_geometry_shader,
+                                          StaticType::Get<EbtInt, EbpHigh, EvqPrimitiveID, 1, 1>());
+constexpr const TVariable kgl_PrimitiveIDGS(
     BuiltInId::gl_PrimitiveIDGS,
     BuiltInName::gl_PrimitiveID,
     SymbolType::BuiltIn,
     TExtension::EXT_geometry_shader,
     StaticType::Get<EbtInt, EbpHigh, EvqPrimitiveID, 1, 1>());
-constexpr const TVariable kVar_gl_PrimitiveIDIn(
+constexpr const TVariable kgl_PrimitiveIDIn(
     BuiltInId::gl_PrimitiveIDIn,
     BuiltInName::gl_PrimitiveIDIn,
     SymbolType::BuiltIn,
     TExtension::EXT_geometry_shader,
     StaticType::Get<EbtInt, EbpHigh, EvqPrimitiveIDIn, 1, 1>());
-constexpr const TVariable kVar_gl_SecondaryFragColorEXT(
+constexpr const TVariable kgl_SecondaryFragColorEXT(
     BuiltInId::gl_SecondaryFragColorEXT,
     BuiltInName::gl_SecondaryFragColorEXT,
     SymbolType::BuiltIn,
     TExtension::EXT_blend_func_extended,
     StaticType::Get<EbtFloat, EbpMedium, EvqSecondaryFragColorEXT, 4, 1>());
-constexpr const TVariable kVar_gl_VertexID(BuiltInId::gl_VertexID,
-                                           BuiltInName::gl_VertexID,
-                                           SymbolType::BuiltIn,
-                                           TExtension::UNDEFINED,
-                                           StaticType::Get<EbtInt, EbpHigh, EvqVertexID, 1, 1>());
-constexpr const TVariable kVar_gl_VertexIndex(
-    BuiltInId::gl_VertexIndex,
-    BuiltInName::gl_VertexIndex,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtInt, EbpHigh, EvqVertexID, 1, 1>());
-constexpr const TVariable kVar_gl_ViewID_OVR(
-    BuiltInId::gl_ViewID_OVR,
-    BuiltInName::gl_ViewID_OVR,
-    SymbolType::BuiltIn,
-    TExtension::OVR_multiview,
-    StaticType::Get<EbtUInt, EbpHigh, EvqViewIDOVR, 1, 1>());
-constexpr const TVariable kVar_gl_ViewportIndex(
+constexpr const TVariable kgl_VertexID(BuiltInId::gl_VertexID,
+                                       BuiltInName::gl_VertexID,
+                                       SymbolType::BuiltIn,
+                                       TExtension::UNDEFINED,
+                                       StaticType::Get<EbtInt, EbpHigh, EvqVertexID, 1, 1>());
+constexpr const TVariable kgl_VertexIndex(BuiltInId::gl_VertexIndex,
+                                          BuiltInName::gl_VertexIndex,
+                                          SymbolType::BuiltIn,
+                                          TExtension::UNDEFINED,
+                                          StaticType::Get<EbtInt, EbpHigh, EvqVertexID, 1, 1>());
+constexpr const TVariable kgl_ViewID_OVR(BuiltInId::gl_ViewID_OVR,
+                                         BuiltInName::gl_ViewID_OVR,
+                                         SymbolType::BuiltIn,
+                                         TExtension::OVR_multiview,
+                                         StaticType::Get<EbtUInt, EbpHigh, EvqViewIDOVR, 1, 1>());
+constexpr const TVariable kgl_ViewportIndex(
     BuiltInId::gl_ViewportIndex,
     BuiltInName::gl_ViewportIndex,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtInt, EbpHigh, EvqViewportIndex, 1, 1>());
-constexpr const TVariable kVar_gl_WorkGroupID(
+constexpr const TVariable kgl_WorkGroupID(
     BuiltInId::gl_WorkGroupID,
     BuiltInName::gl_WorkGroupID,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtUInt, EbpUndefined, EvqWorkGroupID, 3, 1>());
-constexpr const TVariable kVar_gl_WorkGroupSize(
+constexpr const TVariable kgl_WorkGroupSize(
     BuiltInId::gl_WorkGroupSize,
     BuiltInName::gl_WorkGroupSize,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtUInt, EbpUndefined, EvqWorkGroupSize, 3, 1>());
-constexpr const TVariable kVar_pt00B(BuiltInId::pt00B,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00C(BuiltInId::pt00C,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00D(BuiltInId::pt00D,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00E(BuiltInId::pt00E,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00F(BuiltInId::pt00F,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00G(
+constexpr const TVariable kpt00B(BuiltInId::pt00B,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt00C(BuiltInId::pt00C,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt00D(BuiltInId::pt00D,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt00E(BuiltInId::pt00E,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt00F(BuiltInId::pt00F,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt00G(
     BuiltInId::pt00G,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtAtomicCounter, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00H(
+constexpr const TVariable kpt00H(
     BuiltInId::pt00H,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtYuvCscStandardEXT, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00I(
-    BuiltInId::pt00I,
-    BuiltInName::_empty,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtSampler2D, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00J(
-    BuiltInId::pt00J,
-    BuiltInName::_empty,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtSampler3D, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00K(
-    BuiltInId::pt00K,
-    BuiltInName::_empty,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtSamplerCube, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00L(
+constexpr const TVariable kpt00I(BuiltInId::pt00I,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtSampler2D, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt00J(BuiltInId::pt00J,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtSampler3D, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt00K(BuiltInId::pt00K,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtSamplerCube, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt00L(
     BuiltInId::pt00L,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtSampler2DArray, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00M(
+constexpr const TVariable kpt00M(
     BuiltInId::pt00M,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtSamplerExternalOES, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00N(
+constexpr const TVariable kpt00N(
     BuiltInId::pt00N,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtSamplerExternal2DY2YEXT, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00O(
+constexpr const TVariable kpt00O(
     BuiltInId::pt00O,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtSampler2DRect, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00P(
-    BuiltInId::pt00P,
-    BuiltInName::_empty,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtSampler2DMS, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00Q(
+constexpr const TVariable kpt00P(BuiltInId::pt00P,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtSampler2DMS, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt00Q(
     BuiltInId::pt00Q,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtSampler2DMSArray, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00R(
-    BuiltInId::pt00R,
-    BuiltInName::_empty,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtISampler2D, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00S(
-    BuiltInId::pt00S,
-    BuiltInName::_empty,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtISampler3D, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00T(
-    BuiltInId::pt00T,
-    BuiltInName::_empty,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtISamplerCube, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00U(
+constexpr const TVariable kpt00R(BuiltInId::pt00R,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtISampler2D, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt00S(BuiltInId::pt00S,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtISampler3D, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt00T(BuiltInId::pt00T,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtISamplerCube, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt00U(
     BuiltInId::pt00U,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtISampler2DArray, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00V(
-    BuiltInId::pt00V,
-    BuiltInName::_empty,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtISampler2DMS, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00W(
+constexpr const TVariable kpt00V(BuiltInId::pt00V,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtISampler2DMS, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt00W(
     BuiltInId::pt00W,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtISampler2DMSArray, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00X(
-    BuiltInId::pt00X,
-    BuiltInName::_empty,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtUSampler2D, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00Y(
-    BuiltInId::pt00Y,
-    BuiltInName::_empty,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtUSampler3D, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00Z(
-    BuiltInId::pt00Z,
-    BuiltInName::_empty,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtUSamplerCube, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00a(
+constexpr const TVariable kpt00X(BuiltInId::pt00X,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtUSampler2D, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt00Y(BuiltInId::pt00Y,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtUSampler3D, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt00Z(BuiltInId::pt00Z,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtUSamplerCube, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt00a(
     BuiltInId::pt00a,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtUSampler2DArray, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00b(
-    BuiltInId::pt00b,
-    BuiltInName::_empty,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtUSampler2DMS, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00c(
+constexpr const TVariable kpt00b(BuiltInId::pt00b,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtUSampler2DMS, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt00c(
     BuiltInId::pt00c,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtUSampler2DMSArray, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00d(
+constexpr const TVariable kpt00d(
     BuiltInId::pt00d,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtSampler2DShadow, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00e(
+constexpr const TVariable kpt00e(
     BuiltInId::pt00e,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtSamplerCubeShadow, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00f(
+constexpr const TVariable kpt00f(
     BuiltInId::pt00f,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtSampler2DArrayShadow, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00g(
-    BuiltInId::pt00g,
-    BuiltInName::_empty,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtSampler1D, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00h(
+constexpr const TVariable kpt00g(BuiltInId::pt00g,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtSampler1D, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt00h(
     BuiltInId::pt00h,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtSampler1DArray, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00i(
+constexpr const TVariable kpt00i(
     BuiltInId::pt00i,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtSampler1DArrayShadow, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00j(
+constexpr const TVariable kpt00j(
     BuiltInId::pt00j,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtSamplerBuffer, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00k(
+constexpr const TVariable kpt00k(
     BuiltInId::pt00k,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtSamplerCubeArray, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00l(
+constexpr const TVariable kpt00l(
     BuiltInId::pt00l,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtSamplerCubeArrayShadow, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00m(
+constexpr const TVariable kpt00m(
     BuiltInId::pt00m,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtSampler1DShadow, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00n(
+constexpr const TVariable kpt00n(
     BuiltInId::pt00n,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtSampler2DRectShadow, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00o(
-    BuiltInId::pt00o,
-    BuiltInName::_empty,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtISampler1D, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00p(
+constexpr const TVariable kpt00o(BuiltInId::pt00o,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtISampler1D, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt00p(
     BuiltInId::pt00p,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtISampler1DArray, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00q(
+constexpr const TVariable kpt00q(
     BuiltInId::pt00q,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtISampler2DRect, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00r(
+constexpr const TVariable kpt00r(
     BuiltInId::pt00r,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtISamplerBuffer, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00s(
+constexpr const TVariable kpt00s(
     BuiltInId::pt00s,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtISamplerCubeArray, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00t(
-    BuiltInId::pt00t,
-    BuiltInName::_empty,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtUSampler1D, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00u(
+constexpr const TVariable kpt00t(BuiltInId::pt00t,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtUSampler1D, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt00u(
     BuiltInId::pt00u,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtUSampler1DArray, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00v(
+constexpr const TVariable kpt00v(
     BuiltInId::pt00v,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtUSampler2DRect, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00w(
+constexpr const TVariable kpt00w(
     BuiltInId::pt00w,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtUSamplerBuffer, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00x(
+constexpr const TVariable kpt00x(
     BuiltInId::pt00x,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtUSamplerCubeArray, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00y(BuiltInId::pt00y,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtImage2D, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt00z(BuiltInId::pt00z,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtIImage2D, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt01A(BuiltInId::pt01A,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtUImage2D, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt01B(BuiltInId::pt01B,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtImage3D, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt01C(BuiltInId::pt01C,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtIImage3D, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt01D(BuiltInId::pt01D,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtUImage3D, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt01E(
-    BuiltInId::pt01E,
-    BuiltInName::_empty,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtImage2DArray, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt01F(
+constexpr const TVariable kpt00y(BuiltInId::pt00y,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtImage2D, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt00z(BuiltInId::pt00z,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtIImage2D, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt01A(BuiltInId::pt01A,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtUImage2D, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt01B(BuiltInId::pt01B,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtImage3D, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt01C(BuiltInId::pt01C,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtIImage3D, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt01D(BuiltInId::pt01D,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtUImage3D, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt01E(BuiltInId::pt01E,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtImage2DArray, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt01F(
     BuiltInId::pt01F,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtIImage2DArray, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt01G(
+constexpr const TVariable kpt01G(
     BuiltInId::pt01G,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtUImage2DArray, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt01H(
-    BuiltInId::pt01H,
-    BuiltInName::_empty,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtImageCube, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt01I(
-    BuiltInId::pt01I,
-    BuiltInName::_empty,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtIImageCube, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt01J(
-    BuiltInId::pt01J,
-    BuiltInName::_empty,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtUImageCube, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt01K(BuiltInId::pt01K,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtImage1D, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt01L(BuiltInId::pt01L,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtIImage1D, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt01M(BuiltInId::pt01M,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtUImage1D, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt01N(
-    BuiltInId::pt01N,
-    BuiltInName::_empty,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtImage1DArray, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt01O(
+constexpr const TVariable kpt01H(BuiltInId::pt01H,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtImageCube, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt01I(BuiltInId::pt01I,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtIImageCube, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt01J(BuiltInId::pt01J,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtUImageCube, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt01K(BuiltInId::pt01K,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtImage1D, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt01L(BuiltInId::pt01L,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtIImage1D, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt01M(BuiltInId::pt01M,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtUImage1D, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt01N(BuiltInId::pt01N,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtImage1DArray, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt01O(
     BuiltInId::pt01O,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtIImage1DArray, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt01P(
+constexpr const TVariable kpt01P(
     BuiltInId::pt01P,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtUImage1DArray, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt01Q(
-    BuiltInId::pt01Q,
-    BuiltInName::_empty,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtImage2DMS, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt01R(
-    BuiltInId::pt01R,
-    BuiltInName::_empty,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtIImage2DMS, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt01S(
-    BuiltInId::pt01S,
-    BuiltInName::_empty,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtUImage2DMS, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt01T(
+constexpr const TVariable kpt01Q(BuiltInId::pt01Q,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtImage2DMS, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt01R(BuiltInId::pt01R,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtIImage2DMS, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt01S(BuiltInId::pt01S,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtUImage2DMS, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt01T(
     BuiltInId::pt01T,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtImage2DMSArray, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt01U(
+constexpr const TVariable kpt01U(
     BuiltInId::pt01U,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtIImage2DMSArray, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt01V(
+constexpr const TVariable kpt01V(
     BuiltInId::pt01V,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtUImage2DMSArray, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt01W(
-    BuiltInId::pt01W,
-    BuiltInName::_empty,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtImage2DRect, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt01X(
-    BuiltInId::pt01X,
-    BuiltInName::_empty,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtIImage2DRect, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt01Y(
-    BuiltInId::pt01Y,
-    BuiltInName::_empty,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtUImage2DRect, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt01Z(
+constexpr const TVariable kpt01W(BuiltInId::pt01W,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtImage2DRect, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt01X(BuiltInId::pt01X,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtIImage2DRect, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt01Y(BuiltInId::pt01Y,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtUImage2DRect, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt01Z(
     BuiltInId::pt01Z,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtImageCubeArray, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt01a(
+constexpr const TVariable kpt01a(
     BuiltInId::pt01a,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtIImageCubeArray, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt01b(
+constexpr const TVariable kpt01b(
     BuiltInId::pt01b,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtUImageCubeArray, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt01c(
-    BuiltInId::pt01c,
-    BuiltInName::_empty,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtImageRect, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt01d(
-    BuiltInId::pt01d,
-    BuiltInName::_empty,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtIImageRect, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt01e(
-    BuiltInId::pt01e,
-    BuiltInName::_empty,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtUImageRect, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt01f(
-    BuiltInId::pt01f,
-    BuiltInName::_empty,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtImageBuffer, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt01g(
-    BuiltInId::pt01g,
-    BuiltInName::_empty,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtIImageBuffer, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt01h(
-    BuiltInId::pt01h,
-    BuiltInName::_empty,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtUImageBuffer, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt01i(
-    BuiltInId::pt01i,
-    BuiltInName::_empty,
-    SymbolType::BuiltIn,
-    TExtension::UNDEFINED,
-    StaticType::Get<EbtSubpassInput, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt01j(
+constexpr const TVariable kpt01c(BuiltInId::pt01c,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtImageRect, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt01d(BuiltInId::pt01d,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtIImageRect, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt01e(BuiltInId::pt01e,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtUImageRect, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt01f(BuiltInId::pt01f,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtImageBuffer, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt01g(BuiltInId::pt01g,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtIImageBuffer, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt01h(BuiltInId::pt01h,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtUImageBuffer, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt01i(BuiltInId::pt01i,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtSubpassInput, EbpUndefined, EvqGlobal, 1, 1>());
+constexpr const TVariable kpt01j(
     BuiltInId::pt01j,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtISubpassInput, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt01k(
+constexpr const TVariable kpt01k(
     BuiltInId::pt01k,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtUSubpassInput, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt01l(
+constexpr const TVariable kpt01l(
     BuiltInId::pt01l,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtSubpassInputMS, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt01m(
+constexpr const TVariable kpt01m(
     BuiltInId::pt01m,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtISubpassInputMS, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt01n(
+constexpr const TVariable kpt01n(
     BuiltInId::pt01n,
     BuiltInName::_empty,
     SymbolType::BuiltIn,
     TExtension::UNDEFINED,
     StaticType::Get<EbtUSubpassInputMS, EbpUndefined, EvqGlobal, 1, 1>());
-constexpr const TVariable kVar_pt10B(BuiltInId::pt10B,
+constexpr const TVariable kpt10B(BuiltInId::pt10B,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>());
+constexpr const TVariable kpt10C(BuiltInId::pt10C,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>());
+constexpr const TVariable kpt10D(BuiltInId::pt10D,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>());
+constexpr const TVariable kpt10E(BuiltInId::pt10E,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>());
+constexpr const TVariable kpt10F(BuiltInId::pt10F,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>());
+constexpr const TVariable kpt20B(BuiltInId::pt20B,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>());
+constexpr const TVariable kpt20C(BuiltInId::pt20C,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>());
+constexpr const TVariable kpt20D(BuiltInId::pt20D,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>());
+constexpr const TVariable kpt20E(BuiltInId::pt20E,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>());
+constexpr const TVariable kpt20F(BuiltInId::pt20F,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>());
+constexpr const TVariable kpt30B(BuiltInId::pt30B,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>());
+constexpr const TVariable kpt30C(BuiltInId::pt30C,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>());
+constexpr const TVariable kpt30D(BuiltInId::pt30D,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>());
+constexpr const TVariable kpt30E(BuiltInId::pt30E,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>());
+constexpr const TVariable kpt30F(BuiltInId::pt30F,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>());
+constexpr const TVariable kpt50B(BuiltInId::pt50B,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 2>());
+constexpr const TVariable kpt60B(BuiltInId::pt60B,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 2>());
+constexpr const TVariable kpt70B(BuiltInId::pt70B,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 2>());
+constexpr const TVariable kpt70D(BuiltInId::pt70D,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 2>());
+constexpr const TVariable kpt90B(BuiltInId::pt90B,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 3>());
+constexpr const TVariable kptA0B(BuiltInId::ptA0B,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 3>());
+constexpr const TVariable kptB0B(BuiltInId::ptB0B,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 3>());
+constexpr const TVariable kptD0B(BuiltInId::ptD0B,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 4>());
+constexpr const TVariable kptE0B(BuiltInId::ptE0B,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 4>());
+constexpr const TVariable kptF0B(BuiltInId::ptF0B,
+                                 BuiltInName::_empty,
+                                 SymbolType::BuiltIn,
+                                 TExtension::UNDEFINED,
+                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 4>());
+constexpr const TVariable kpt_io_00D(BuiltInId::pt_io_00D,
                                      BuiltInName::_empty,
                                      SymbolType::BuiltIn,
                                      TExtension::UNDEFINED,
-                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>());
-constexpr const TVariable kVar_pt10C(BuiltInId::pt10C,
+                                     StaticType::Get<EbtInt, EbpUndefined, EvqInOut, 1, 1>());
+constexpr const TVariable kpt_io_00E(BuiltInId::pt_io_00E,
                                      BuiltInName::_empty,
                                      SymbolType::BuiltIn,
                                      TExtension::UNDEFINED,
-                                     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>());
-constexpr const TVariable kVar_pt10D(BuiltInId::pt10D,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>());
-constexpr const TVariable kVar_pt10E(BuiltInId::pt10E,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>());
-constexpr const TVariable kVar_pt10F(BuiltInId::pt10F,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>());
-constexpr const TVariable kVar_pt20B(BuiltInId::pt20B,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>());
-constexpr const TVariable kVar_pt20C(BuiltInId::pt20C,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>());
-constexpr const TVariable kVar_pt20D(BuiltInId::pt20D,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>());
-constexpr const TVariable kVar_pt20E(BuiltInId::pt20E,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>());
-constexpr const TVariable kVar_pt20F(BuiltInId::pt20F,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>());
-constexpr const TVariable kVar_pt30B(BuiltInId::pt30B,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>());
-constexpr const TVariable kVar_pt30C(BuiltInId::pt30C,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>());
-constexpr const TVariable kVar_pt30D(BuiltInId::pt30D,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>());
-constexpr const TVariable kVar_pt30E(BuiltInId::pt30E,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>());
-constexpr const TVariable kVar_pt30F(BuiltInId::pt30F,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>());
-constexpr const TVariable kVar_pt50B(BuiltInId::pt50B,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 2>());
-constexpr const TVariable kVar_pt60B(BuiltInId::pt60B,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 2>());
-constexpr const TVariable kVar_pt70B(BuiltInId::pt70B,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 2>());
-constexpr const TVariable kVar_pt70D(BuiltInId::pt70D,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 2>());
-constexpr const TVariable kVar_pt90B(BuiltInId::pt90B,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 3>());
-constexpr const TVariable kVar_ptA0B(BuiltInId::ptA0B,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 3>());
-constexpr const TVariable kVar_ptB0B(BuiltInId::ptB0B,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 3>());
-constexpr const TVariable kVar_ptD0B(BuiltInId::ptD0B,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 4>());
-constexpr const TVariable kVar_ptE0B(BuiltInId::ptE0B,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 4>());
-constexpr const TVariable kVar_ptF0B(BuiltInId::ptF0B,
-                                     BuiltInName::_empty,
-                                     SymbolType::BuiltIn,
-                                     TExtension::UNDEFINED,
-                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 4>());
-constexpr const TVariable kVar_pt_io_00D(BuiltInId::pt_io_00D,
-                                         BuiltInName::_empty,
-                                         SymbolType::BuiltIn,
-                                         TExtension::UNDEFINED,
-                                         StaticType::Get<EbtInt, EbpUndefined, EvqInOut, 1, 1>());
-constexpr const TVariable kVar_pt_io_00E(BuiltInId::pt_io_00E,
-                                         BuiltInName::_empty,
-                                         SymbolType::BuiltIn,
-                                         TExtension::UNDEFINED,
-                                         StaticType::Get<EbtUInt, EbpUndefined, EvqInOut, 1, 1>());
-constexpr const TVariable kVar_pt_o_00B(BuiltInId::pt_o_00B,
-                                        BuiltInName::_empty,
-                                        SymbolType::BuiltIn,
-                                        TExtension::UNDEFINED,
-                                        StaticType::Get<EbtFloat, EbpUndefined, EvqOut, 1, 1>());
-constexpr const TVariable kVar_pt_o_00C(BuiltInId::pt_o_00C,
-                                        BuiltInName::_empty,
-                                        SymbolType::BuiltIn,
-                                        TExtension::UNDEFINED,
-                                        StaticType::Get<EbtDouble, EbpUndefined, EvqOut, 1, 1>());
-constexpr const TVariable kVar_pt_o_00D(BuiltInId::pt_o_00D,
-                                        BuiltInName::_empty,
-                                        SymbolType::BuiltIn,
-                                        TExtension::UNDEFINED,
-                                        StaticType::Get<EbtInt, EbpUndefined, EvqOut, 1, 1>());
-constexpr const TVariable kVar_pt_o_00E(BuiltInId::pt_o_00E,
-                                        BuiltInName::_empty,
-                                        SymbolType::BuiltIn,
-                                        TExtension::UNDEFINED,
-                                        StaticType::Get<EbtUInt, EbpUndefined, EvqOut, 1, 1>());
-constexpr const TVariable kVar_pt_o_10B(BuiltInId::pt_o_10B,
-                                        BuiltInName::_empty,
-                                        SymbolType::BuiltIn,
-                                        TExtension::UNDEFINED,
-                                        StaticType::Get<EbtFloat, EbpUndefined, EvqOut, 2, 1>());
-constexpr const TVariable kVar_pt_o_10C(BuiltInId::pt_o_10C,
-                                        BuiltInName::_empty,
-                                        SymbolType::BuiltIn,
-                                        TExtension::UNDEFINED,
-                                        StaticType::Get<EbtDouble, EbpUndefined, EvqOut, 2, 1>());
-constexpr const TVariable kVar_pt_o_10D(BuiltInId::pt_o_10D,
-                                        BuiltInName::_empty,
-                                        SymbolType::BuiltIn,
-                                        TExtension::UNDEFINED,
-                                        StaticType::Get<EbtInt, EbpUndefined, EvqOut, 2, 1>());
-constexpr const TVariable kVar_pt_o_10E(BuiltInId::pt_o_10E,
-                                        BuiltInName::_empty,
-                                        SymbolType::BuiltIn,
-                                        TExtension::UNDEFINED,
-                                        StaticType::Get<EbtUInt, EbpUndefined, EvqOut, 2, 1>());
-constexpr const TVariable kVar_pt_o_20B(BuiltInId::pt_o_20B,
-                                        BuiltInName::_empty,
-                                        SymbolType::BuiltIn,
-                                        TExtension::UNDEFINED,
-                                        StaticType::Get<EbtFloat, EbpUndefined, EvqOut, 3, 1>());
-constexpr const TVariable kVar_pt_o_20C(BuiltInId::pt_o_20C,
-                                        BuiltInName::_empty,
-                                        SymbolType::BuiltIn,
-                                        TExtension::UNDEFINED,
-                                        StaticType::Get<EbtDouble, EbpUndefined, EvqOut, 3, 1>());
-constexpr const TVariable kVar_pt_o_20D(BuiltInId::pt_o_20D,
-                                        BuiltInName::_empty,
-                                        SymbolType::BuiltIn,
-                                        TExtension::UNDEFINED,
-                                        StaticType::Get<EbtInt, EbpUndefined, EvqOut, 3, 1>());
-constexpr const TVariable kVar_pt_o_20E(BuiltInId::pt_o_20E,
-                                        BuiltInName::_empty,
-                                        SymbolType::BuiltIn,
-                                        TExtension::UNDEFINED,
-                                        StaticType::Get<EbtUInt, EbpUndefined, EvqOut, 3, 1>());
-constexpr const TVariable kVar_pt_o_30B(BuiltInId::pt_o_30B,
-                                        BuiltInName::_empty,
-                                        SymbolType::BuiltIn,
-                                        TExtension::UNDEFINED,
-                                        StaticType::Get<EbtFloat, EbpUndefined, EvqOut, 4, 1>());
-constexpr const TVariable kVar_pt_o_30C(BuiltInId::pt_o_30C,
-                                        BuiltInName::_empty,
-                                        SymbolType::BuiltIn,
-                                        TExtension::UNDEFINED,
-                                        StaticType::Get<EbtDouble, EbpUndefined, EvqOut, 4, 1>());
-constexpr const TVariable kVar_pt_o_30D(BuiltInId::pt_o_30D,
-                                        BuiltInName::_empty,
-                                        SymbolType::BuiltIn,
-                                        TExtension::UNDEFINED,
-                                        StaticType::Get<EbtInt, EbpUndefined, EvqOut, 4, 1>());
-constexpr const TVariable kVar_pt_o_30E(BuiltInId::pt_o_30E,
-                                        BuiltInName::_empty,
-                                        SymbolType::BuiltIn,
-                                        TExtension::UNDEFINED,
-                                        StaticType::Get<EbtUInt, EbpUndefined, EvqOut, 4, 1>());
+                                     StaticType::Get<EbtUInt, EbpUndefined, EvqInOut, 1, 1>());
+constexpr const TVariable kpt_o_00B(BuiltInId::pt_o_00B,
+                                    BuiltInName::_empty,
+                                    SymbolType::BuiltIn,
+                                    TExtension::UNDEFINED,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqOut, 1, 1>());
+constexpr const TVariable kpt_o_00C(BuiltInId::pt_o_00C,
+                                    BuiltInName::_empty,
+                                    SymbolType::BuiltIn,
+                                    TExtension::UNDEFINED,
+                                    StaticType::Get<EbtDouble, EbpUndefined, EvqOut, 1, 1>());
+constexpr const TVariable kpt_o_00D(BuiltInId::pt_o_00D,
+                                    BuiltInName::_empty,
+                                    SymbolType::BuiltIn,
+                                    TExtension::UNDEFINED,
+                                    StaticType::Get<EbtInt, EbpUndefined, EvqOut, 1, 1>());
+constexpr const TVariable kpt_o_00E(BuiltInId::pt_o_00E,
+                                    BuiltInName::_empty,
+                                    SymbolType::BuiltIn,
+                                    TExtension::UNDEFINED,
+                                    StaticType::Get<EbtUInt, EbpUndefined, EvqOut, 1, 1>());
+constexpr const TVariable kpt_o_10B(BuiltInId::pt_o_10B,
+                                    BuiltInName::_empty,
+                                    SymbolType::BuiltIn,
+                                    TExtension::UNDEFINED,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqOut, 2, 1>());
+constexpr const TVariable kpt_o_10C(BuiltInId::pt_o_10C,
+                                    BuiltInName::_empty,
+                                    SymbolType::BuiltIn,
+                                    TExtension::UNDEFINED,
+                                    StaticType::Get<EbtDouble, EbpUndefined, EvqOut, 2, 1>());
+constexpr const TVariable kpt_o_10D(BuiltInId::pt_o_10D,
+                                    BuiltInName::_empty,
+                                    SymbolType::BuiltIn,
+                                    TExtension::UNDEFINED,
+                                    StaticType::Get<EbtInt, EbpUndefined, EvqOut, 2, 1>());
+constexpr const TVariable kpt_o_10E(BuiltInId::pt_o_10E,
+                                    BuiltInName::_empty,
+                                    SymbolType::BuiltIn,
+                                    TExtension::UNDEFINED,
+                                    StaticType::Get<EbtUInt, EbpUndefined, EvqOut, 2, 1>());
+constexpr const TVariable kpt_o_20B(BuiltInId::pt_o_20B,
+                                    BuiltInName::_empty,
+                                    SymbolType::BuiltIn,
+                                    TExtension::UNDEFINED,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqOut, 3, 1>());
+constexpr const TVariable kpt_o_20C(BuiltInId::pt_o_20C,
+                                    BuiltInName::_empty,
+                                    SymbolType::BuiltIn,
+                                    TExtension::UNDEFINED,
+                                    StaticType::Get<EbtDouble, EbpUndefined, EvqOut, 3, 1>());
+constexpr const TVariable kpt_o_20D(BuiltInId::pt_o_20D,
+                                    BuiltInName::_empty,
+                                    SymbolType::BuiltIn,
+                                    TExtension::UNDEFINED,
+                                    StaticType::Get<EbtInt, EbpUndefined, EvqOut, 3, 1>());
+constexpr const TVariable kpt_o_20E(BuiltInId::pt_o_20E,
+                                    BuiltInName::_empty,
+                                    SymbolType::BuiltIn,
+                                    TExtension::UNDEFINED,
+                                    StaticType::Get<EbtUInt, EbpUndefined, EvqOut, 3, 1>());
+constexpr const TVariable kpt_o_30B(BuiltInId::pt_o_30B,
+                                    BuiltInName::_empty,
+                                    SymbolType::BuiltIn,
+                                    TExtension::UNDEFINED,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqOut, 4, 1>());
+constexpr const TVariable kpt_o_30C(BuiltInId::pt_o_30C,
+                                    BuiltInName::_empty,
+                                    SymbolType::BuiltIn,
+                                    TExtension::UNDEFINED,
+                                    StaticType::Get<EbtDouble, EbpUndefined, EvqOut, 4, 1>());
+constexpr const TVariable kpt_o_30D(BuiltInId::pt_o_30D,
+                                    BuiltInName::_empty,
+                                    SymbolType::BuiltIn,
+                                    TExtension::UNDEFINED,
+                                    StaticType::Get<EbtInt, EbpUndefined, EvqOut, 4, 1>());
+constexpr const TVariable kpt_o_30E(BuiltInId::pt_o_30E,
+                                    BuiltInName::_empty,
+                                    SymbolType::BuiltIn,
+                                    TExtension::UNDEFINED,
+                                    StaticType::Get<EbtUInt, EbpUndefined, EvqOut, 4, 1>());
 
 const TVariable *angle_BaseInstance()
 {
-    return &kVar_angle_BaseInstance;
+    return &kangle_BaseInstance;
 }
 
 const TVariable *angle_BaseVertex()
 {
-    return &kVar_angle_BaseVertex;
+    return &kangle_BaseVertex;
 }
 
 const TVariable *gl_BaseInstance()
 {
-    return &kVar_gl_BaseInstance;
+    return &kgl_BaseInstance;
 }
 
 const TVariable *gl_BaseVertex()
 {
-    return &kVar_gl_BaseVertex;
+    return &kgl_BaseVertex;
 }
 
 const TVariable *gl_DrawID()
 {
-    return &kVar_gl_DrawID;
+    return &kgl_DrawID;
 }
 
 const TVariable *gl_FragColor()
 {
-    return &kVar_gl_FragColor;
+    return &kgl_FragColor;
 }
 
 const TVariable *gl_FragCoord()
 {
-    return &kVar_gl_FragCoord;
+    return &kgl_FragCoord;
 }
 
 const TVariable *gl_FragDepth()
 {
-    return &kVar_gl_FragDepth;
+    return &kgl_FragDepth;
 }
 
 const TVariable *gl_FrontFacing()
 {
-    return &kVar_gl_FrontFacing;
+    return &kgl_FrontFacing;
 }
 
 const TVariable *gl_GlobalInvocationID()
 {
-    return &kVar_gl_GlobalInvocationID;
+    return &kgl_GlobalInvocationID;
 }
 
 const TVariable *gl_InstanceID()
 {
-    return &kVar_gl_InstanceID;
+    return &kgl_InstanceID;
 }
 
 const TVariable *gl_InstanceIndex()
 {
-    return &kVar_gl_InstanceIndex;
+    return &kgl_InstanceIndex;
 }
 
 const TVariable *gl_InvocationID()
 {
-    return &kVar_gl_InvocationID;
+    return &kgl_InvocationID;
 }
 
 const TVariable *gl_LastFragColor()
 {
-    return &kVar_gl_LastFragColor;
+    return &kgl_LastFragColor;
 }
 
 const TVariable *gl_LastFragColorARM()
 {
-    return &kVar_gl_LastFragColorARM;
+    return &kgl_LastFragColorARM;
 }
 
 const TVariable *gl_Layer()
 {
-    return &kVar_gl_Layer;
+    return &kgl_Layer;
 }
 
 const TVariable *gl_LayerGS()
 {
-    return &kVar_gl_LayerGS;
+    return &kgl_LayerGS;
 }
 
 const TVariable *gl_LayerVS()
 {
-    return &kVar_gl_LayerVS;
+    return &kgl_LayerVS;
 }
 
 const TVariable *gl_LocalInvocationID()
 {
-    return &kVar_gl_LocalInvocationID;
+    return &kgl_LocalInvocationID;
 }
 
 const TVariable *gl_LocalInvocationIndex()
 {
-    return &kVar_gl_LocalInvocationIndex;
+    return &kgl_LocalInvocationIndex;
 }
 
 const TVariable *gl_NumWorkGroups()
 {
-    return &kVar_gl_NumWorkGroups;
+    return &kgl_NumWorkGroups;
 }
 
 const TVariable *gl_PointCoord()
 {
-    return &kVar_gl_PointCoord;
+    return &kgl_PointCoord;
 }
 
 const TVariable *gl_PointSize()
 {
-    return &kVar_gl_PointSize;
+    return &kgl_PointSize;
 }
 
 const TVariable *gl_Position()
 {
-    return &kVar_gl_Position;
+    return &kgl_Position;
 }
 
 const TVariable *gl_PrimitiveID()
 {
-    return &kVar_gl_PrimitiveID;
+    return &kgl_PrimitiveID;
 }
 
 const TVariable *gl_PrimitiveIDGS()
 {
-    return &kVar_gl_PrimitiveIDGS;
+    return &kgl_PrimitiveIDGS;
 }
 
 const TVariable *gl_PrimitiveIDIn()
 {
-    return &kVar_gl_PrimitiveIDIn;
+    return &kgl_PrimitiveIDIn;
 }
 
 const TVariable *gl_SecondaryFragColorEXT()
 {
-    return &kVar_gl_SecondaryFragColorEXT;
+    return &kgl_SecondaryFragColorEXT;
 }
 
 const TVariable *gl_VertexID()
 {
-    return &kVar_gl_VertexID;
+    return &kgl_VertexID;
 }
 
 const TVariable *gl_VertexIndex()
 {
-    return &kVar_gl_VertexIndex;
+    return &kgl_VertexIndex;
 }
 
 const TVariable *gl_ViewID_OVR()
 {
-    return &kVar_gl_ViewID_OVR;
+    return &kgl_ViewID_OVR;
 }
 
 const TVariable *gl_ViewportIndex()
 {
-    return &kVar_gl_ViewportIndex;
+    return &kgl_ViewportIndex;
 }
 
 const TVariable *gl_WorkGroupID()
 {
-    return &kVar_gl_WorkGroupID;
+    return &kgl_WorkGroupID;
 }
 
 const TVariable *gl_WorkGroupSize()
 {
-    return &kVar_gl_WorkGroupSize;
+    return &kgl_WorkGroupSize;
 }
 
 }  // namespace BuiltInVariable
@@ -3677,2151 +3637,1763 @@
 {
 
 constexpr const TVariable **empty        = nullptr;
-constexpr const TVariable *p00B00B00B[3] = {
-    &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00B00B00F[3] = {
-    &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt00F};
-constexpr const TVariable *p00B00B10B[3] = {
-    &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt10B};
-constexpr const TVariable *p00B00B20B[3] = {
-    &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt20B};
-constexpr const TVariable *p00B00B30B[3] = {
-    &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt30B};
-constexpr const TVariable *p00B00D[2]    = {&BuiltInVariable::kVar_pt00B,
-                                         &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00B10B[2]    = {&BuiltInVariable::kVar_pt00B,
-                                         &BuiltInVariable::kVar_pt10B};
-constexpr const TVariable *p00B20B[2]    = {&BuiltInVariable::kVar_pt00B,
-                                         &BuiltInVariable::kVar_pt20B};
-constexpr const TVariable *p00B30B[2]    = {&BuiltInVariable::kVar_pt00B,
-                                         &BuiltInVariable::kVar_pt30B};
-constexpr const TVariable *p00B_o_00B[2] = {&BuiltInVariable::kVar_pt00B,
-                                            &BuiltInVariable::kVar_pt_o_00B};
-constexpr const TVariable *p00B_o_00D[2] = {&BuiltInVariable::kVar_pt00B,
-                                            &BuiltInVariable::kVar_pt_o_00D};
-constexpr const TVariable *p00C00C00B[3] = {
-    &BuiltInVariable::kVar_pt00C, &BuiltInVariable::kVar_pt00C, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00C00C00C[3] = {
-    &BuiltInVariable::kVar_pt00C, &BuiltInVariable::kVar_pt00C, &BuiltInVariable::kVar_pt00C};
-constexpr const TVariable *p00C00C00F[3] = {
-    &BuiltInVariable::kVar_pt00C, &BuiltInVariable::kVar_pt00C, &BuiltInVariable::kVar_pt00F};
-constexpr const TVariable *p00C00C10C[3] = {
-    &BuiltInVariable::kVar_pt00C, &BuiltInVariable::kVar_pt00C, &BuiltInVariable::kVar_pt10C};
-constexpr const TVariable *p00C00C20C[3] = {
-    &BuiltInVariable::kVar_pt00C, &BuiltInVariable::kVar_pt00C, &BuiltInVariable::kVar_pt20C};
-constexpr const TVariable *p00C00C30C[3] = {
-    &BuiltInVariable::kVar_pt00C, &BuiltInVariable::kVar_pt00C, &BuiltInVariable::kVar_pt30C};
-constexpr const TVariable *p00C00D[2]       = {&BuiltInVariable::kVar_pt00C,
-                                         &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00C10C[2]       = {&BuiltInVariable::kVar_pt00C,
-                                         &BuiltInVariable::kVar_pt10C};
-constexpr const TVariable *p00C20C[2]       = {&BuiltInVariable::kVar_pt00C,
-                                         &BuiltInVariable::kVar_pt20C};
-constexpr const TVariable *p00C30C[2]       = {&BuiltInVariable::kVar_pt00C,
-                                         &BuiltInVariable::kVar_pt30C};
-constexpr const TVariable *p00C_o_00C[2]    = {&BuiltInVariable::kVar_pt00C,
-                                            &BuiltInVariable::kVar_pt_o_00C};
-constexpr const TVariable *p00C_o_00D[2]    = {&BuiltInVariable::kVar_pt00C,
-                                            &BuiltInVariable::kVar_pt_o_00D};
-constexpr const TVariable *p00D00D00D00D[4] = {
-    &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00D00D00F[3] = {
-    &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00F};
+constexpr const TVariable *p00B00B00B[3] = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt00B,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00B00B00F[3] = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt00B,
+                                            &BuiltInVariable::kpt00F};
+constexpr const TVariable *p00B00B10B[3] = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt00B,
+                                            &BuiltInVariable::kpt10B};
+constexpr const TVariable *p00B00B20B[3] = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt00B,
+                                            &BuiltInVariable::kpt20B};
+constexpr const TVariable *p00B00B30B[3] = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt00B,
+                                            &BuiltInVariable::kpt30B};
+constexpr const TVariable *p00B00D[2]    = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00B10B[2]    = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt10B};
+constexpr const TVariable *p00B20B[2]    = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt20B};
+constexpr const TVariable *p00B30B[2]    = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt30B};
+constexpr const TVariable *p00B_o_00B[2] = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt_o_00B};
+constexpr const TVariable *p00B_o_00D[2] = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt_o_00D};
+constexpr const TVariable *p00C00C00B[3] = {&BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00C00C00C[3] = {&BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C,
+                                            &BuiltInVariable::kpt00C};
+constexpr const TVariable *p00C00C00F[3] = {&BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C,
+                                            &BuiltInVariable::kpt00F};
+constexpr const TVariable *p00C00C10C[3] = {&BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C,
+                                            &BuiltInVariable::kpt10C};
+constexpr const TVariable *p00C00C20C[3] = {&BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C,
+                                            &BuiltInVariable::kpt20C};
+constexpr const TVariable *p00C00C30C[3] = {&BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C,
+                                            &BuiltInVariable::kpt30C};
+constexpr const TVariable *p00C00D[2]    = {&BuiltInVariable::kpt00C, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00C10C[2]    = {&BuiltInVariable::kpt00C, &BuiltInVariable::kpt10C};
+constexpr const TVariable *p00C20C[2]    = {&BuiltInVariable::kpt00C, &BuiltInVariable::kpt20C};
+constexpr const TVariable *p00C30C[2]    = {&BuiltInVariable::kpt00C, &BuiltInVariable::kpt30C};
+constexpr const TVariable *p00C_o_00C[2] = {&BuiltInVariable::kpt00C, &BuiltInVariable::kpt_o_00C};
+constexpr const TVariable *p00C_o_00D[2] = {&BuiltInVariable::kpt00C, &BuiltInVariable::kpt_o_00D};
+constexpr const TVariable *p00D00D00D00D[4] = {&BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00D00D00F[3]    = {&BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D,
+                                            &BuiltInVariable::kpt00F};
 constexpr const TVariable *p00D00D_o_00D_o_00D[4] = {
-    &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt_o_00D,
-    &BuiltInVariable::kVar_pt_o_00D};
-constexpr const TVariable *p00E00D00D[3] = {
-    &BuiltInVariable::kVar_pt00E, &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00E00E00D00D[4] = {
-    &BuiltInVariable::kVar_pt00E, &BuiltInVariable::kVar_pt00E, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00E00E00E[3] = {
-    &BuiltInVariable::kVar_pt00E, &BuiltInVariable::kVar_pt00E, &BuiltInVariable::kVar_pt00E};
-constexpr const TVariable *p00E00E00F[3] = {
-    &BuiltInVariable::kVar_pt00E, &BuiltInVariable::kVar_pt00E, &BuiltInVariable::kVar_pt00F};
+    &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D, &BuiltInVariable::kpt_o_00D,
+    &BuiltInVariable::kpt_o_00D};
+constexpr const TVariable *p00E00D00D[3]    = {&BuiltInVariable::kpt00E, &BuiltInVariable::kpt00D,
+                                            &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00E00E00D00D[4] = {&BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00E00E00E[3]    = {&BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E,
+                                            &BuiltInVariable::kpt00E};
+constexpr const TVariable *p00E00E00F[3]    = {&BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E,
+                                            &BuiltInVariable::kpt00F};
 constexpr const TVariable *p00E00E_o_00E_o_00E[4] = {
-    &BuiltInVariable::kVar_pt00E, &BuiltInVariable::kVar_pt00E, &BuiltInVariable::kVar_pt_o_00E,
-    &BuiltInVariable::kVar_pt_o_00E};
-constexpr const TVariable *p00F00F00F[3] = {
-    &BuiltInVariable::kVar_pt00F, &BuiltInVariable::kVar_pt00F, &BuiltInVariable::kVar_pt00F};
-constexpr const TVariable *p00G00E00E[3] = {
-    &BuiltInVariable::kVar_pt00G, &BuiltInVariable::kVar_pt00E, &BuiltInVariable::kVar_pt00E};
-constexpr const TVariable *p00I00B00B00B[4] = {
-    &BuiltInVariable::kVar_pt00I, &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00I00D[2]       = {&BuiltInVariable::kVar_pt00I,
-                                         &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00I10B00B10D[4] = {
-    &BuiltInVariable::kVar_pt00I, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00I10B00D[3] = {
-    &BuiltInVariable::kVar_pt00I, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt00D};
+    &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E, &BuiltInVariable::kpt_o_00E,
+    &BuiltInVariable::kpt_o_00E};
+constexpr const TVariable *p00F00F00F[3]    = {&BuiltInVariable::kpt00F, &BuiltInVariable::kpt00F,
+                                            &BuiltInVariable::kpt00F};
+constexpr const TVariable *p00G00E00E[3]    = {&BuiltInVariable::kpt00G, &BuiltInVariable::kpt00E,
+                                            &BuiltInVariable::kpt00E};
+constexpr const TVariable *p00I00B00B00B[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt00B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00I00D[2]       = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00I10B00B10D[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt10B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00I10B00D[3]    = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt10B,
+                                            &BuiltInVariable::kpt00D};
 constexpr const TVariable *p00I10B10B10B10D[5] = {
-    &BuiltInVariable::kVar_pt00I, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10B,
-    &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00I10B10D00B[4] = {
-    &BuiltInVariable::kVar_pt00I, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00I10B10D00D[4] = {
-    &BuiltInVariable::kVar_pt00I, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00I10B70D00D[4] = {
-    &BuiltInVariable::kVar_pt00I, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt70D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00I10D00D10D[4] = {
-    &BuiltInVariable::kVar_pt00I, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00I20B00B10D[4] = {
-    &BuiltInVariable::kVar_pt00I, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt10D};
+    &BuiltInVariable::kpt00I, &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10B,
+    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00I10B10D00B[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt10B,
+                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00I10B10D00D[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt10B,
+                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00I10B70D00D[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt10B,
+                                               &BuiltInVariable::kpt70D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00I10D00D10D[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt10D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00I20B00B10D[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
 constexpr const TVariable *p00I20B10B10B10D[5] = {
-    &BuiltInVariable::kVar_pt00I, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt10B,
-    &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00I20B10D00B[4] = {
-    &BuiltInVariable::kVar_pt00I, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt10D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00I30B00B10D[4] = {
-    &BuiltInVariable::kVar_pt00I, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt10D};
+    &BuiltInVariable::kpt00I, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B,
+    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00I20B10D00B[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00I30B00B10D[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt30B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
 constexpr const TVariable *p00I30B10B10B10D[5] = {
-    &BuiltInVariable::kVar_pt00I, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt10B,
-    &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00I30B10D00B[4] = {
-    &BuiltInVariable::kVar_pt00I, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt10D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00J00D[2]       = {&BuiltInVariable::kVar_pt00J,
-                                         &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00J20B00B20D[4] = {
-    &BuiltInVariable::kVar_pt00J, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt20D};
+    &BuiltInVariable::kpt00I, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt10B,
+    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00I30B10D00B[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt30B,
+                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00J00D[2]       = {&BuiltInVariable::kpt00J, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00J20B00B20D[4] = {&BuiltInVariable::kpt00J, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt20D};
 constexpr const TVariable *p00J20B20B20B20D[5] = {
-    &BuiltInVariable::kVar_pt00J, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt20B,
-    &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt20D};
-constexpr const TVariable *p00J20B20D00B[4] = {
-    &BuiltInVariable::kVar_pt00J, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt20D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00J20D00D20D[4] = {
-    &BuiltInVariable::kVar_pt00J, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt20D};
-constexpr const TVariable *p00J30B00B20D[4] = {
-    &BuiltInVariable::kVar_pt00J, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt20D};
+    &BuiltInVariable::kpt00J, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B,
+    &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20D};
+constexpr const TVariable *p00J20B20D00B[4] = {&BuiltInVariable::kpt00J, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00J20D00D20D[4] = {&BuiltInVariable::kpt00J, &BuiltInVariable::kpt20D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt20D};
+constexpr const TVariable *p00J30B00B20D[4] = {&BuiltInVariable::kpt00J, &BuiltInVariable::kpt30B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt20D};
 constexpr const TVariable *p00J30B20B20B20D[5] = {
-    &BuiltInVariable::kVar_pt00J, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt20B,
-    &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt20D};
-constexpr const TVariable *p00J30B20D00B[4] = {
-    &BuiltInVariable::kVar_pt00J, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt20D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00K00D[2]    = {&BuiltInVariable::kVar_pt00K,
-                                         &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00K20B00B[3] = {
-    &BuiltInVariable::kVar_pt00K, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00K20B00D[3] = {
-    &BuiltInVariable::kVar_pt00K, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00K20B20B20B[4] = {
-    &BuiltInVariable::kVar_pt00K, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt20B,
-    &BuiltInVariable::kVar_pt20B};
-constexpr const TVariable *p00L00D[2]       = {&BuiltInVariable::kVar_pt00L,
-                                         &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00L10B[2]       = {&BuiltInVariable::kVar_pt00L,
-                                         &BuiltInVariable::kVar_pt10B};
-constexpr const TVariable *p00L20B00B10D[4] = {
-    &BuiltInVariable::kVar_pt00L, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00L20B00D[3] = {
-    &BuiltInVariable::kVar_pt00L, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00D};
+    &BuiltInVariable::kpt00J, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt20B,
+    &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20D};
+constexpr const TVariable *p00J30B20D00B[4] = {&BuiltInVariable::kpt00J, &BuiltInVariable::kpt30B,
+                                               &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00K00D[2]       = {&BuiltInVariable::kpt00K, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00K20B00B[3]    = {&BuiltInVariable::kpt00K, &BuiltInVariable::kpt20B,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00K20B00D[3]    = {&BuiltInVariable::kpt00K, &BuiltInVariable::kpt20B,
+                                            &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00K20B20B20B[4] = {&BuiltInVariable::kpt00K, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B};
+constexpr const TVariable *p00L00D[2]       = {&BuiltInVariable::kpt00L, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00L10B[2]       = {&BuiltInVariable::kpt00L, &BuiltInVariable::kpt10B};
+constexpr const TVariable *p00L20B00B10D[4] = {&BuiltInVariable::kpt00L, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00L20B00D[3]    = {&BuiltInVariable::kpt00L, &BuiltInVariable::kpt20B,
+                                            &BuiltInVariable::kpt00D};
 constexpr const TVariable *p00L20B10B10B10D[5] = {
-    &BuiltInVariable::kVar_pt00L, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt10B,
-    &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00L20B10D00B[4] = {
-    &BuiltInVariable::kVar_pt00L, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt10D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00L20B10D00D[4] = {
-    &BuiltInVariable::kVar_pt00L, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt10D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00L20B70D00D[4] = {
-    &BuiltInVariable::kVar_pt00L, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt70D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00L20D00D10D[4] = {
-    &BuiltInVariable::kVar_pt00L, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00M00D[2]    = {&BuiltInVariable::kVar_pt00M,
-                                         &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00M10B00B[3] = {
-    &BuiltInVariable::kVar_pt00M, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00M10D00D[3] = {
-    &BuiltInVariable::kVar_pt00M, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00M20B00B[3] = {
-    &BuiltInVariable::kVar_pt00M, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00M30B00B[3] = {
-    &BuiltInVariable::kVar_pt00M, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00N00D[2]    = {&BuiltInVariable::kVar_pt00N,
-                                         &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00N10B00B[3] = {
-    &BuiltInVariable::kVar_pt00N, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00N10D00D[3] = {
-    &BuiltInVariable::kVar_pt00N, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00N20B00B[3] = {
-    &BuiltInVariable::kVar_pt00N, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00N30B00B[3] = {
-    &BuiltInVariable::kVar_pt00N, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt00B};
+    &BuiltInVariable::kpt00L, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B,
+    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00L20B10D00B[4] = {&BuiltInVariable::kpt00L, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00L20B10D00D[4] = {&BuiltInVariable::kpt00L, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00L20B70D00D[4] = {&BuiltInVariable::kpt00L, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt70D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00L20D00D10D[4] = {&BuiltInVariable::kpt00L, &BuiltInVariable::kpt20D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00M00D[2]       = {&BuiltInVariable::kpt00M, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00M10B00B[3]    = {&BuiltInVariable::kpt00M, &BuiltInVariable::kpt10B,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00M10D00D[3]    = {&BuiltInVariable::kpt00M, &BuiltInVariable::kpt10D,
+                                            &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00M20B00B[3]    = {&BuiltInVariable::kpt00M, &BuiltInVariable::kpt20B,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00M30B00B[3]    = {&BuiltInVariable::kpt00M, &BuiltInVariable::kpt30B,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00N00D[2]       = {&BuiltInVariable::kpt00N, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00N10B00B[3]    = {&BuiltInVariable::kpt00N, &BuiltInVariable::kpt10B,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00N10D00D[3]    = {&BuiltInVariable::kpt00N, &BuiltInVariable::kpt10D,
+                                            &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00N20B00B[3]    = {&BuiltInVariable::kpt00N, &BuiltInVariable::kpt20B,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00N30B00B[3]    = {&BuiltInVariable::kpt00N, &BuiltInVariable::kpt30B,
+                                            &BuiltInVariable::kpt00B};
 constexpr const TVariable *p00O10B10B10B10D[5] = {
-    &BuiltInVariable::kVar_pt00O, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10B,
-    &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00O10B10D00D[4] = {
-    &BuiltInVariable::kVar_pt00O, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00O10B70D00D[4] = {
-    &BuiltInVariable::kVar_pt00O, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt70D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00O10D10D[3] = {
-    &BuiltInVariable::kVar_pt00O, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00O20B00D[3] = {
-    &BuiltInVariable::kVar_pt00O, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00D};
+    &BuiltInVariable::kpt00O, &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10B,
+    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00O10B10D00D[4] = {&BuiltInVariable::kpt00O, &BuiltInVariable::kpt10B,
+                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00O10B70D00D[4] = {&BuiltInVariable::kpt00O, &BuiltInVariable::kpt10B,
+                                               &BuiltInVariable::kpt70D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00O10D10D[3]    = {&BuiltInVariable::kpt00O, &BuiltInVariable::kpt10D,
+                                            &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00O20B00D[3]    = {&BuiltInVariable::kpt00O, &BuiltInVariable::kpt20B,
+                                            &BuiltInVariable::kpt00D};
 constexpr const TVariable *p00O20B10B10B10D[5] = {
-    &BuiltInVariable::kVar_pt00O, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt10B,
-    &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00O20B10D[3] = {
-    &BuiltInVariable::kVar_pt00O, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt10D};
+    &BuiltInVariable::kpt00O, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B,
+    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00O20B10D[3] = {&BuiltInVariable::kpt00O, &BuiltInVariable::kpt20B,
+                                            &BuiltInVariable::kpt10D};
 constexpr const TVariable *p00O30B10B10B10D[5] = {
-    &BuiltInVariable::kVar_pt00O, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt10B,
-    &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00O30B10D[3] = {
-    &BuiltInVariable::kVar_pt00O, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00P10D00D[3] = {
-    &BuiltInVariable::kVar_pt00P, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00Q20D00D[3] = {
-    &BuiltInVariable::kVar_pt00Q, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00R00B00B00B[4] = {
-    &BuiltInVariable::kVar_pt00R, &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00R00D[2]       = {&BuiltInVariable::kVar_pt00R,
-                                         &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00R10B00B10D[4] = {
-    &BuiltInVariable::kVar_pt00R, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00R10B00D[3] = {
-    &BuiltInVariable::kVar_pt00R, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt00D};
+    &BuiltInVariable::kpt00O, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt10B,
+    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00O30B10D[3]    = {&BuiltInVariable::kpt00O, &BuiltInVariable::kpt30B,
+                                            &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00P10D00D[3]    = {&BuiltInVariable::kpt00P, &BuiltInVariable::kpt10D,
+                                            &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00Q20D00D[3]    = {&BuiltInVariable::kpt00Q, &BuiltInVariable::kpt20D,
+                                            &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00R00B00B00B[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt00B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00R00D[2]       = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00R10B00B10D[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt10B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00R10B00D[3]    = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt10B,
+                                            &BuiltInVariable::kpt00D};
 constexpr const TVariable *p00R10B10B10B10D[5] = {
-    &BuiltInVariable::kVar_pt00R, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10B,
-    &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00R10B10D00B[4] = {
-    &BuiltInVariable::kVar_pt00R, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00R10B10D00D[4] = {
-    &BuiltInVariable::kVar_pt00R, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00R10B70D00D[4] = {
-    &BuiltInVariable::kVar_pt00R, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt70D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00R10D00D10D[4] = {
-    &BuiltInVariable::kVar_pt00R, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00R20B00B10D[4] = {
-    &BuiltInVariable::kVar_pt00R, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt10D};
+    &BuiltInVariable::kpt00R, &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10B,
+    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00R10B10D00B[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt10B,
+                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00R10B10D00D[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt10B,
+                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00R10B70D00D[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt10B,
+                                               &BuiltInVariable::kpt70D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00R10D00D10D[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt10D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00R20B00B10D[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
 constexpr const TVariable *p00R20B10B10B10D[5] = {
-    &BuiltInVariable::kVar_pt00R, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt10B,
-    &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00R20B10D00B[4] = {
-    &BuiltInVariable::kVar_pt00R, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt10D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00R30B00B10D[4] = {
-    &BuiltInVariable::kVar_pt00R, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt10D};
+    &BuiltInVariable::kpt00R, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B,
+    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00R20B10D00B[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00R30B00B10D[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt30B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
 constexpr const TVariable *p00R30B10B10B10D[5] = {
-    &BuiltInVariable::kVar_pt00R, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt10B,
-    &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00R30B10D00B[4] = {
-    &BuiltInVariable::kVar_pt00R, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt10D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00S00D[2]       = {&BuiltInVariable::kVar_pt00S,
-                                         &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00S20B00B20D[4] = {
-    &BuiltInVariable::kVar_pt00S, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt20D};
+    &BuiltInVariable::kpt00R, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt10B,
+    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00R30B10D00B[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt30B,
+                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00S00D[2]       = {&BuiltInVariable::kpt00S, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00S20B00B20D[4] = {&BuiltInVariable::kpt00S, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt20D};
 constexpr const TVariable *p00S20B20B20B20D[5] = {
-    &BuiltInVariable::kVar_pt00S, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt20B,
-    &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt20D};
-constexpr const TVariable *p00S20B20D00B[4] = {
-    &BuiltInVariable::kVar_pt00S, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt20D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00S20D00D20D[4] = {
-    &BuiltInVariable::kVar_pt00S, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt20D};
-constexpr const TVariable *p00S30B00B20D[4] = {
-    &BuiltInVariable::kVar_pt00S, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt20D};
+    &BuiltInVariable::kpt00S, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B,
+    &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20D};
+constexpr const TVariable *p00S20B20D00B[4] = {&BuiltInVariable::kpt00S, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00S20D00D20D[4] = {&BuiltInVariable::kpt00S, &BuiltInVariable::kpt20D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt20D};
+constexpr const TVariable *p00S30B00B20D[4] = {&BuiltInVariable::kpt00S, &BuiltInVariable::kpt30B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt20D};
 constexpr const TVariable *p00S30B20B20B20D[5] = {
-    &BuiltInVariable::kVar_pt00S, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt20B,
-    &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt20D};
-constexpr const TVariable *p00S30B20D00B[4] = {
-    &BuiltInVariable::kVar_pt00S, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt20D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00T00D[2]    = {&BuiltInVariable::kVar_pt00T,
-                                         &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00T20B00B[3] = {
-    &BuiltInVariable::kVar_pt00T, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00T20B00D[3] = {
-    &BuiltInVariable::kVar_pt00T, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00T20B20B20B[4] = {
-    &BuiltInVariable::kVar_pt00T, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt20B,
-    &BuiltInVariable::kVar_pt20B};
-constexpr const TVariable *p00U00D[2]       = {&BuiltInVariable::kVar_pt00U,
-                                         &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00U10B[2]       = {&BuiltInVariable::kVar_pt00U,
-                                         &BuiltInVariable::kVar_pt10B};
-constexpr const TVariable *p00U20B00B10D[4] = {
-    &BuiltInVariable::kVar_pt00U, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00U20B00D[3] = {
-    &BuiltInVariable::kVar_pt00U, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00D};
+    &BuiltInVariable::kpt00S, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt20B,
+    &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20D};
+constexpr const TVariable *p00S30B20D00B[4] = {&BuiltInVariable::kpt00S, &BuiltInVariable::kpt30B,
+                                               &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00T00D[2]       = {&BuiltInVariable::kpt00T, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00T20B00B[3]    = {&BuiltInVariable::kpt00T, &BuiltInVariable::kpt20B,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00T20B00D[3]    = {&BuiltInVariable::kpt00T, &BuiltInVariable::kpt20B,
+                                            &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00T20B20B20B[4] = {&BuiltInVariable::kpt00T, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B};
+constexpr const TVariable *p00U00D[2]       = {&BuiltInVariable::kpt00U, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00U10B[2]       = {&BuiltInVariable::kpt00U, &BuiltInVariable::kpt10B};
+constexpr const TVariable *p00U20B00B10D[4] = {&BuiltInVariable::kpt00U, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00U20B00D[3]    = {&BuiltInVariable::kpt00U, &BuiltInVariable::kpt20B,
+                                            &BuiltInVariable::kpt00D};
 constexpr const TVariable *p00U20B10B10B10D[5] = {
-    &BuiltInVariable::kVar_pt00U, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt10B,
-    &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00U20B10D00B[4] = {
-    &BuiltInVariable::kVar_pt00U, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt10D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00U20B10D00D[4] = {
-    &BuiltInVariable::kVar_pt00U, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt10D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00U20B70D00D[4] = {
-    &BuiltInVariable::kVar_pt00U, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt70D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00U20D00D10D[4] = {
-    &BuiltInVariable::kVar_pt00U, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00V10D00D[3] = {
-    &BuiltInVariable::kVar_pt00V, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00W20D00D[3] = {
-    &BuiltInVariable::kVar_pt00W, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00X00B00B00B[4] = {
-    &BuiltInVariable::kVar_pt00X, &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00X00D[2]       = {&BuiltInVariable::kVar_pt00X,
-                                         &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00X10B00B10D[4] = {
-    &BuiltInVariable::kVar_pt00X, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00X10B00D[3] = {
-    &BuiltInVariable::kVar_pt00X, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt00D};
+    &BuiltInVariable::kpt00U, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B,
+    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00U20B10D00B[4] = {&BuiltInVariable::kpt00U, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00U20B10D00D[4] = {&BuiltInVariable::kpt00U, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00U20B70D00D[4] = {&BuiltInVariable::kpt00U, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt70D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00U20D00D10D[4] = {&BuiltInVariable::kpt00U, &BuiltInVariable::kpt20D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00V10D00D[3]    = {&BuiltInVariable::kpt00V, &BuiltInVariable::kpt10D,
+                                            &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00W20D00D[3]    = {&BuiltInVariable::kpt00W, &BuiltInVariable::kpt20D,
+                                            &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00X00B00B00B[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt00B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00X00D[2]       = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00X10B00B10D[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt10B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00X10B00D[3]    = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt10B,
+                                            &BuiltInVariable::kpt00D};
 constexpr const TVariable *p00X10B10B10B10D[5] = {
-    &BuiltInVariable::kVar_pt00X, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10B,
-    &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00X10B10D00B[4] = {
-    &BuiltInVariable::kVar_pt00X, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00X10B10D00D[4] = {
-    &BuiltInVariable::kVar_pt00X, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00X10B70D00D[4] = {
-    &BuiltInVariable::kVar_pt00X, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt70D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00X10D00D10D[4] = {
-    &BuiltInVariable::kVar_pt00X, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00X20B00B10D[4] = {
-    &BuiltInVariable::kVar_pt00X, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt10D};
+    &BuiltInVariable::kpt00X, &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10B,
+    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00X10B10D00B[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt10B,
+                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00X10B10D00D[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt10B,
+                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00X10B70D00D[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt10B,
+                                               &BuiltInVariable::kpt70D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00X10D00D10D[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt10D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00X20B00B10D[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
 constexpr const TVariable *p00X20B10B10B10D[5] = {
-    &BuiltInVariable::kVar_pt00X, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt10B,
-    &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00X20B10D00B[4] = {
-    &BuiltInVariable::kVar_pt00X, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt10D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00X30B00B10D[4] = {
-    &BuiltInVariable::kVar_pt00X, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt10D};
+    &BuiltInVariable::kpt00X, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B,
+    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00X20B10D00B[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00X30B00B10D[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt30B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
 constexpr const TVariable *p00X30B10B10B10D[5] = {
-    &BuiltInVariable::kVar_pt00X, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt10B,
-    &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00X30B10D00B[4] = {
-    &BuiltInVariable::kVar_pt00X, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt10D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00Y00D[2]       = {&BuiltInVariable::kVar_pt00Y,
-                                         &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00Y20B00B20D[4] = {
-    &BuiltInVariable::kVar_pt00Y, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt20D};
+    &BuiltInVariable::kpt00X, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt10B,
+    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00X30B10D00B[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt30B,
+                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00Y00D[2]       = {&BuiltInVariable::kpt00Y, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00Y20B00B20D[4] = {&BuiltInVariable::kpt00Y, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt20D};
 constexpr const TVariable *p00Y20B20B20B20D[5] = {
-    &BuiltInVariable::kVar_pt00Y, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt20B,
-    &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt20D};
-constexpr const TVariable *p00Y20B20D00B[4] = {
-    &BuiltInVariable::kVar_pt00Y, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt20D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00Y20D00D20D[4] = {
-    &BuiltInVariable::kVar_pt00Y, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt20D};
-constexpr const TVariable *p00Y30B00B20D[4] = {
-    &BuiltInVariable::kVar_pt00Y, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt20D};
+    &BuiltInVariable::kpt00Y, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B,
+    &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20D};
+constexpr const TVariable *p00Y20B20D00B[4] = {&BuiltInVariable::kpt00Y, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00Y20D00D20D[4] = {&BuiltInVariable::kpt00Y, &BuiltInVariable::kpt20D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt20D};
+constexpr const TVariable *p00Y30B00B20D[4] = {&BuiltInVariable::kpt00Y, &BuiltInVariable::kpt30B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt20D};
 constexpr const TVariable *p00Y30B20B20B20D[5] = {
-    &BuiltInVariable::kVar_pt00Y, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt20B,
-    &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt20D};
-constexpr const TVariable *p00Y30B20D00B[4] = {
-    &BuiltInVariable::kVar_pt00Y, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt20D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00Z00D[2]    = {&BuiltInVariable::kVar_pt00Z,
-                                         &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00Z20B00B[3] = {
-    &BuiltInVariable::kVar_pt00Z, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00Z20B00D[3] = {
-    &BuiltInVariable::kVar_pt00Z, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00Z20B20B20B[4] = {
-    &BuiltInVariable::kVar_pt00Z, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt20B,
-    &BuiltInVariable::kVar_pt20B};
-constexpr const TVariable *p00a00D[2]       = {&BuiltInVariable::kVar_pt00a,
-                                         &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00a10B[2]       = {&BuiltInVariable::kVar_pt00a,
-                                         &BuiltInVariable::kVar_pt10B};
-constexpr const TVariable *p00a20B00B10D[4] = {
-    &BuiltInVariable::kVar_pt00a, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00a20B00D[3] = {
-    &BuiltInVariable::kVar_pt00a, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00D};
+    &BuiltInVariable::kpt00Y, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt20B,
+    &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20D};
+constexpr const TVariable *p00Y30B20D00B[4] = {&BuiltInVariable::kpt00Y, &BuiltInVariable::kpt30B,
+                                               &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00Z00D[2]       = {&BuiltInVariable::kpt00Z, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00Z20B00B[3]    = {&BuiltInVariable::kpt00Z, &BuiltInVariable::kpt20B,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00Z20B00D[3]    = {&BuiltInVariable::kpt00Z, &BuiltInVariable::kpt20B,
+                                            &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00Z20B20B20B[4] = {&BuiltInVariable::kpt00Z, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B};
+constexpr const TVariable *p00a00D[2]       = {&BuiltInVariable::kpt00a, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00a10B[2]       = {&BuiltInVariable::kpt00a, &BuiltInVariable::kpt10B};
+constexpr const TVariable *p00a20B00B10D[4] = {&BuiltInVariable::kpt00a, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00a20B00D[3]    = {&BuiltInVariable::kpt00a, &BuiltInVariable::kpt20B,
+                                            &BuiltInVariable::kpt00D};
 constexpr const TVariable *p00a20B10B10B10D[5] = {
-    &BuiltInVariable::kVar_pt00a, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt10B,
-    &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00a20B10D00B[4] = {
-    &BuiltInVariable::kVar_pt00a, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt10D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00a20B10D00D[4] = {
-    &BuiltInVariable::kVar_pt00a, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt10D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00a20B70D00D[4] = {
-    &BuiltInVariable::kVar_pt00a, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt70D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00a20D00D10D[4] = {
-    &BuiltInVariable::kVar_pt00a, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00b10D00D[3] = {
-    &BuiltInVariable::kVar_pt00b, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00c20D00D[3] = {
-    &BuiltInVariable::kVar_pt00c, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00d00D[2]       = {&BuiltInVariable::kVar_pt00d,
-                                         &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00d10B00B10D[4] = {
-    &BuiltInVariable::kVar_pt00d, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00d10B00B70D[4] = {
-    &BuiltInVariable::kVar_pt00d, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt70D};
-constexpr const TVariable *p00d20B00B10D[4] = {
-    &BuiltInVariable::kVar_pt00d, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt10D};
+    &BuiltInVariable::kpt00a, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B,
+    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00a20B10D00B[4] = {&BuiltInVariable::kpt00a, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00a20B10D00D[4] = {&BuiltInVariable::kpt00a, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00a20B70D00D[4] = {&BuiltInVariable::kpt00a, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt70D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00a20D00D10D[4] = {&BuiltInVariable::kpt00a, &BuiltInVariable::kpt20D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00b10D00D[3]    = {&BuiltInVariable::kpt00b, &BuiltInVariable::kpt10D,
+                                            &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00c20D00D[3]    = {&BuiltInVariable::kpt00c, &BuiltInVariable::kpt20D,
+                                            &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00d00D[2]       = {&BuiltInVariable::kpt00d, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00d10B00B10D[4] = {&BuiltInVariable::kpt00d, &BuiltInVariable::kpt10B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00d10B00B70D[4] = {&BuiltInVariable::kpt00d, &BuiltInVariable::kpt10B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt70D};
+constexpr const TVariable *p00d20B00B10D[4] = {&BuiltInVariable::kpt00d, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
 constexpr const TVariable *p00d20B10B10B10D[5] = {
-    &BuiltInVariable::kVar_pt00d, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt10B,
-    &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00d20B10D00B[4] = {
-    &BuiltInVariable::kVar_pt00d, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt10D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00d30B00B10D[4] = {
-    &BuiltInVariable::kVar_pt00d, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt10D};
+    &BuiltInVariable::kpt00d, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B,
+    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00d20B10D00B[4] = {&BuiltInVariable::kpt00d, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00d30B00B10D[4] = {&BuiltInVariable::kpt00d, &BuiltInVariable::kpt30B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
 constexpr const TVariable *p00d30B10B10B10D[5] = {
-    &BuiltInVariable::kVar_pt00d, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt10B,
-    &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00d30B10D00B[4] = {
-    &BuiltInVariable::kVar_pt00d, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt10D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00e00D[2]    = {&BuiltInVariable::kVar_pt00e,
-                                         &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00e20B00B[3] = {
-    &BuiltInVariable::kVar_pt00e, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00e30B00B[3] = {
-    &BuiltInVariable::kVar_pt00e, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00e30B20B20B[4] = {
-    &BuiltInVariable::kVar_pt00e, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt20B,
-    &BuiltInVariable::kVar_pt20B};
-constexpr const TVariable *p00f00D[2]       = {&BuiltInVariable::kVar_pt00f,
-                                         &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00f10B[2]       = {&BuiltInVariable::kVar_pt00f,
-                                         &BuiltInVariable::kVar_pt10B};
-constexpr const TVariable *p00f20B00B10D[4] = {
-    &BuiltInVariable::kVar_pt00f, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00f20B00B70D[4] = {
-    &BuiltInVariable::kVar_pt00f, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt70D};
-constexpr const TVariable *p00f30B00B[3] = {
-    &BuiltInVariable::kVar_pt00f, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt00B};
+    &BuiltInVariable::kpt00d, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt10B,
+    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00d30B10D00B[4] = {&BuiltInVariable::kpt00d, &BuiltInVariable::kpt30B,
+                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00e00D[2]       = {&BuiltInVariable::kpt00e, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00e20B00B[3]    = {&BuiltInVariable::kpt00e, &BuiltInVariable::kpt20B,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00e30B00B[3]    = {&BuiltInVariable::kpt00e, &BuiltInVariable::kpt30B,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00e30B20B20B[4] = {&BuiltInVariable::kpt00e, &BuiltInVariable::kpt30B,
+                                               &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B};
+constexpr const TVariable *p00f00D[2]       = {&BuiltInVariable::kpt00f, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00f10B[2]       = {&BuiltInVariable::kpt00f, &BuiltInVariable::kpt10B};
+constexpr const TVariable *p00f20B00B10D[4] = {&BuiltInVariable::kpt00f, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00f20B00B70D[4] = {&BuiltInVariable::kpt00f, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt70D};
+constexpr const TVariable *p00f30B00B[3]    = {&BuiltInVariable::kpt00f, &BuiltInVariable::kpt30B,
+                                            &BuiltInVariable::kpt00B};
 constexpr const TVariable *p00f30B10B10B10D[5] = {
-    &BuiltInVariable::kVar_pt00f, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt10B,
-    &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00f30B10D[3] = {
-    &BuiltInVariable::kVar_pt00f, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt10D};
+    &BuiltInVariable::kpt00f, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt10B,
+    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00f30B10D[3] = {&BuiltInVariable::kpt00f, &BuiltInVariable::kpt30B,
+                                            &BuiltInVariable::kpt10D};
 constexpr const TVariable *p00g00B00B00B00D[5] = {
-    &BuiltInVariable::kVar_pt00g, &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00g00B00B00D[4] = {
-    &BuiltInVariable::kVar_pt00g, &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00g00B00D00B[4] = {
-    &BuiltInVariable::kVar_pt00g, &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00g00D00D00D[4] = {
-    &BuiltInVariable::kVar_pt00g, &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D};
+    &BuiltInVariable::kpt00g, &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00B,
+    &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00g00B00B00D[4] = {&BuiltInVariable::kpt00g, &BuiltInVariable::kpt00B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00g00B00D00B[4] = {&BuiltInVariable::kpt00g, &BuiltInVariable::kpt00B,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00g00D00D00D[4] = {&BuiltInVariable::kpt00g, &BuiltInVariable::kpt00D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
 constexpr const TVariable *p00g10B00B00B00D[5] = {
-    &BuiltInVariable::kVar_pt00g, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00g10B00B00D[4] = {
-    &BuiltInVariable::kVar_pt00g, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00g10B00D00B[4] = {
-    &BuiltInVariable::kVar_pt00g, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00B};
+    &BuiltInVariable::kpt00g, &BuiltInVariable::kpt10B, &BuiltInVariable::kpt00B,
+    &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00g10B00B00D[4] = {&BuiltInVariable::kpt00g, &BuiltInVariable::kpt10B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00g10B00D00B[4] = {&BuiltInVariable::kpt00g, &BuiltInVariable::kpt10B,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B};
 constexpr const TVariable *p00g30B00B00B00D[5] = {
-    &BuiltInVariable::kVar_pt00g, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00g30B00B00D[4] = {
-    &BuiltInVariable::kVar_pt00g, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00g30B00D00B[4] = {
-    &BuiltInVariable::kVar_pt00g, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00h00B[2]          = {&BuiltInVariable::kVar_pt00h,
-                                         &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00h00D[2]          = {&BuiltInVariable::kVar_pt00h,
-                                         &BuiltInVariable::kVar_pt00D};
+    &BuiltInVariable::kpt00g, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt00B,
+    &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00g30B00B00D[4] = {&BuiltInVariable::kpt00g, &BuiltInVariable::kpt30B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00g30B00D00B[4] = {&BuiltInVariable::kpt00g, &BuiltInVariable::kpt30B,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00h00B[2]       = {&BuiltInVariable::kpt00h, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00h00D[2]       = {&BuiltInVariable::kpt00h, &BuiltInVariable::kpt00D};
 constexpr const TVariable *p00h10B00B00B00D[5] = {
-    &BuiltInVariable::kVar_pt00h, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00h10B00B00D[4] = {
-    &BuiltInVariable::kVar_pt00h, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00h10B00D00B[4] = {
-    &BuiltInVariable::kVar_pt00h, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00h10D00D00D[4] = {
-    &BuiltInVariable::kVar_pt00h, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00h20B00B[3] = {
-    &BuiltInVariable::kVar_pt00h, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00i00B[2]          = {&BuiltInVariable::kVar_pt00i,
-                                         &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00i00D[2]          = {&BuiltInVariable::kVar_pt00i,
-                                         &BuiltInVariable::kVar_pt00D};
+    &BuiltInVariable::kpt00h, &BuiltInVariable::kpt10B, &BuiltInVariable::kpt00B,
+    &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00h10B00B00D[4] = {&BuiltInVariable::kpt00h, &BuiltInVariable::kpt10B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00h10B00D00B[4] = {&BuiltInVariable::kpt00h, &BuiltInVariable::kpt10B,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00h10D00D00D[4] = {&BuiltInVariable::kpt00h, &BuiltInVariable::kpt10D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00h20B00B[3]    = {&BuiltInVariable::kpt00h, &BuiltInVariable::kpt20B,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00i00B[2]       = {&BuiltInVariable::kpt00i, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00i00D[2]       = {&BuiltInVariable::kpt00i, &BuiltInVariable::kpt00D};
 constexpr const TVariable *p00i20B00B00B00D[5] = {
-    &BuiltInVariable::kVar_pt00i, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00i20B00B00D[4] = {
-    &BuiltInVariable::kVar_pt00i, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00i20B00D00B[4] = {
-    &BuiltInVariable::kVar_pt00i, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00j00D[2]    = {&BuiltInVariable::kVar_pt00j,
-                                         &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00k00D[2]    = {&BuiltInVariable::kVar_pt00k,
-                                         &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00k20B[2]    = {&BuiltInVariable::kVar_pt00k,
-                                         &BuiltInVariable::kVar_pt20B};
-constexpr const TVariable *p00k30B00B[3] = {
-    &BuiltInVariable::kVar_pt00k, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00k30B00D[3] = {
-    &BuiltInVariable::kVar_pt00k, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00k30B20B20B[4] = {
-    &BuiltInVariable::kVar_pt00k, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt20B,
-    &BuiltInVariable::kVar_pt20B};
-constexpr const TVariable *p00l00D[2]    = {&BuiltInVariable::kVar_pt00l,
-                                         &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00l20B[2]    = {&BuiltInVariable::kVar_pt00l,
-                                         &BuiltInVariable::kVar_pt20B};
-constexpr const TVariable *p00l30B00B[3] = {
-    &BuiltInVariable::kVar_pt00l, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00m00B[2]          = {&BuiltInVariable::kVar_pt00m,
-                                         &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00m00D[2]          = {&BuiltInVariable::kVar_pt00m,
-                                         &BuiltInVariable::kVar_pt00D};
+    &BuiltInVariable::kpt00i, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt00B,
+    &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00i20B00B00D[4] = {&BuiltInVariable::kpt00i, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00i20B00D00B[4] = {&BuiltInVariable::kpt00i, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00j00D[2]       = {&BuiltInVariable::kpt00j, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00k00D[2]       = {&BuiltInVariable::kpt00k, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00k20B[2]       = {&BuiltInVariable::kpt00k, &BuiltInVariable::kpt20B};
+constexpr const TVariable *p00k30B00B[3]    = {&BuiltInVariable::kpt00k, &BuiltInVariable::kpt30B,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00k30B00D[3]    = {&BuiltInVariable::kpt00k, &BuiltInVariable::kpt30B,
+                                            &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00k30B20B20B[4] = {&BuiltInVariable::kpt00k, &BuiltInVariable::kpt30B,
+                                               &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B};
+constexpr const TVariable *p00l00D[2]       = {&BuiltInVariable::kpt00l, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00l20B[2]       = {&BuiltInVariable::kpt00l, &BuiltInVariable::kpt20B};
+constexpr const TVariable *p00l30B00B[3]    = {&BuiltInVariable::kpt00l, &BuiltInVariable::kpt30B,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00m00B[2]       = {&BuiltInVariable::kpt00m, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00m00D[2]       = {&BuiltInVariable::kpt00m, &BuiltInVariable::kpt00D};
 constexpr const TVariable *p00m20B00B00B00D[5] = {
-    &BuiltInVariable::kVar_pt00m, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00m20B00B00D[4] = {
-    &BuiltInVariable::kVar_pt00m, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00m20B00D00B[4] = {
-    &BuiltInVariable::kVar_pt00m, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00B};
+    &BuiltInVariable::kpt00m, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt00B,
+    &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00m20B00B00D[4] = {&BuiltInVariable::kpt00m, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00m20B00D00B[4] = {&BuiltInVariable::kpt00m, &BuiltInVariable::kpt20B,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B};
 constexpr const TVariable *p00m30B00B00B00D[5] = {
-    &BuiltInVariable::kVar_pt00m, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00m30B00B00D[4] = {
-    &BuiltInVariable::kVar_pt00m, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00m30B00D00B[4] = {
-    &BuiltInVariable::kVar_pt00m, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00n10B00B10D[4] = {
-    &BuiltInVariable::kVar_pt00n, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00n10B00B70D[4] = {
-    &BuiltInVariable::kVar_pt00n, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt70D};
+    &BuiltInVariable::kpt00m, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt00B,
+    &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00m30B00B00D[4] = {&BuiltInVariable::kpt00m, &BuiltInVariable::kpt30B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00m30B00D00B[4] = {&BuiltInVariable::kpt00m, &BuiltInVariable::kpt30B,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00n10B00B10D[4] = {&BuiltInVariable::kpt00n, &BuiltInVariable::kpt10B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00n10B00B70D[4] = {&BuiltInVariable::kpt00n, &BuiltInVariable::kpt10B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt70D};
 constexpr const TVariable *p00n20B10B10B10D[5] = {
-    &BuiltInVariable::kVar_pt00n, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt10B,
-    &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00n20B10D[3] = {
-    &BuiltInVariable::kVar_pt00n, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt10D};
+    &BuiltInVariable::kpt00n, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B,
+    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00n20B10D[3] = {&BuiltInVariable::kpt00n, &BuiltInVariable::kpt20B,
+                                            &BuiltInVariable::kpt10D};
 constexpr const TVariable *p00n30B10B10B10D[5] = {
-    &BuiltInVariable::kVar_pt00n, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt10B,
-    &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00n30B10D[3] = {
-    &BuiltInVariable::kVar_pt00n, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt10D};
+    &BuiltInVariable::kpt00n, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt10B,
+    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00n30B10D[3] = {&BuiltInVariable::kpt00n, &BuiltInVariable::kpt30B,
+                                            &BuiltInVariable::kpt10D};
 constexpr const TVariable *p00o00B00B00B00D[5] = {
-    &BuiltInVariable::kVar_pt00o, &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00o00B00B00D[4] = {
-    &BuiltInVariable::kVar_pt00o, &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00o00B00D00B[4] = {
-    &BuiltInVariable::kVar_pt00o, &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00o00D00D00D[4] = {
-    &BuiltInVariable::kVar_pt00o, &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D};
+    &BuiltInVariable::kpt00o, &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00B,
+    &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00o00B00B00D[4] = {&BuiltInVariable::kpt00o, &BuiltInVariable::kpt00B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00o00B00D00B[4] = {&BuiltInVariable::kpt00o, &BuiltInVariable::kpt00B,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00o00D00D00D[4] = {&BuiltInVariable::kpt00o, &BuiltInVariable::kpt00D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
 constexpr const TVariable *p00o10B00B00B00D[5] = {
-    &BuiltInVariable::kVar_pt00o, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00o10B00B00D[4] = {
-    &BuiltInVariable::kVar_pt00o, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00o10B00D00B[4] = {
-    &BuiltInVariable::kVar_pt00o, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00B};
+    &BuiltInVariable::kpt00o, &BuiltInVariable::kpt10B, &BuiltInVariable::kpt00B,
+    &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00o10B00B00D[4] = {&BuiltInVariable::kpt00o, &BuiltInVariable::kpt10B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00o10B00D00B[4] = {&BuiltInVariable::kpt00o, &BuiltInVariable::kpt10B,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B};
 constexpr const TVariable *p00o30B00B00B00D[5] = {
-    &BuiltInVariable::kVar_pt00o, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00o30B00B00D[4] = {
-    &BuiltInVariable::kVar_pt00o, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00o30B00D00B[4] = {
-    &BuiltInVariable::kVar_pt00o, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00p00B[2]          = {&BuiltInVariable::kVar_pt00p,
-                                         &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00p00D[2]          = {&BuiltInVariable::kVar_pt00p,
-                                         &BuiltInVariable::kVar_pt00D};
+    &BuiltInVariable::kpt00o, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt00B,
+    &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00o30B00B00D[4] = {&BuiltInVariable::kpt00o, &BuiltInVariable::kpt30B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00o30B00D00B[4] = {&BuiltInVariable::kpt00o, &BuiltInVariable::kpt30B,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00p00B[2]       = {&BuiltInVariable::kpt00p, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00p00D[2]       = {&BuiltInVariable::kpt00p, &BuiltInVariable::kpt00D};
 constexpr const TVariable *p00p10B00B00B00D[5] = {
-    &BuiltInVariable::kVar_pt00p, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00p10B00B00D[4] = {
-    &BuiltInVariable::kVar_pt00p, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00p10B00D00B[4] = {
-    &BuiltInVariable::kVar_pt00p, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00p10D00D00D[4] = {
-    &BuiltInVariable::kVar_pt00p, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00p20B00B[3] = {
-    &BuiltInVariable::kVar_pt00p, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00B};
+    &BuiltInVariable::kpt00p, &BuiltInVariable::kpt10B, &BuiltInVariable::kpt00B,
+    &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00p10B00B00D[4] = {&BuiltInVariable::kpt00p, &BuiltInVariable::kpt10B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00p10B00D00B[4] = {&BuiltInVariable::kpt00p, &BuiltInVariable::kpt10B,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00p10D00D00D[4] = {&BuiltInVariable::kpt00p, &BuiltInVariable::kpt10D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00p20B00B[3]    = {&BuiltInVariable::kpt00p, &BuiltInVariable::kpt20B,
+                                            &BuiltInVariable::kpt00B};
 constexpr const TVariable *p00q10B10B10B10D[5] = {
-    &BuiltInVariable::kVar_pt00q, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10B,
-    &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00q10B10D00D[4] = {
-    &BuiltInVariable::kVar_pt00q, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00q10B70D00D[4] = {
-    &BuiltInVariable::kVar_pt00q, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt70D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00q10D10D[3] = {
-    &BuiltInVariable::kVar_pt00q, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00q20B00D[3] = {
-    &BuiltInVariable::kVar_pt00q, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00D};
+    &BuiltInVariable::kpt00q, &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10B,
+    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00q10B10D00D[4] = {&BuiltInVariable::kpt00q, &BuiltInVariable::kpt10B,
+                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00q10B70D00D[4] = {&BuiltInVariable::kpt00q, &BuiltInVariable::kpt10B,
+                                               &BuiltInVariable::kpt70D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00q10D10D[3]    = {&BuiltInVariable::kpt00q, &BuiltInVariable::kpt10D,
+                                            &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00q20B00D[3]    = {&BuiltInVariable::kpt00q, &BuiltInVariable::kpt20B,
+                                            &BuiltInVariable::kpt00D};
 constexpr const TVariable *p00q20B10B10B10D[5] = {
-    &BuiltInVariable::kVar_pt00q, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt10B,
-    &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00q20B10D[3] = {
-    &BuiltInVariable::kVar_pt00q, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt10D};
+    &BuiltInVariable::kpt00q, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B,
+    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00q20B10D[3] = {&BuiltInVariable::kpt00q, &BuiltInVariable::kpt20B,
+                                            &BuiltInVariable::kpt10D};
 constexpr const TVariable *p00q30B10B10B10D[5] = {
-    &BuiltInVariable::kVar_pt00q, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt10B,
-    &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00q30B10D[3] = {
-    &BuiltInVariable::kVar_pt00q, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00r00D[2]    = {&BuiltInVariable::kVar_pt00r,
-                                         &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00s00D[2]    = {&BuiltInVariable::kVar_pt00s,
-                                         &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00s20B[2]    = {&BuiltInVariable::kVar_pt00s,
-                                         &BuiltInVariable::kVar_pt20B};
-constexpr const TVariable *p00s30B00B[3] = {
-    &BuiltInVariable::kVar_pt00s, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00s30B00D[3] = {
-    &BuiltInVariable::kVar_pt00s, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00s30B20B20B[4] = {
-    &BuiltInVariable::kVar_pt00s, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt20B,
-    &BuiltInVariable::kVar_pt20B};
+    &BuiltInVariable::kpt00q, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt10B,
+    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00q30B10D[3]    = {&BuiltInVariable::kpt00q, &BuiltInVariable::kpt30B,
+                                            &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00r00D[2]       = {&BuiltInVariable::kpt00r, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00s00D[2]       = {&BuiltInVariable::kpt00s, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00s20B[2]       = {&BuiltInVariable::kpt00s, &BuiltInVariable::kpt20B};
+constexpr const TVariable *p00s30B00B[3]    = {&BuiltInVariable::kpt00s, &BuiltInVariable::kpt30B,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00s30B00D[3]    = {&BuiltInVariable::kpt00s, &BuiltInVariable::kpt30B,
+                                            &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00s30B20B20B[4] = {&BuiltInVariable::kpt00s, &BuiltInVariable::kpt30B,
+                                               &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B};
 constexpr const TVariable *p00t00B00B00B00D[5] = {
-    &BuiltInVariable::kVar_pt00t, &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00t00B00B00D[4] = {
-    &BuiltInVariable::kVar_pt00t, &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00t00B00D00B[4] = {
-    &BuiltInVariable::kVar_pt00t, &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00t00D00D00D[4] = {
-    &BuiltInVariable::kVar_pt00t, &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D};
+    &BuiltInVariable::kpt00t, &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00B,
+    &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00t00B00B00D[4] = {&BuiltInVariable::kpt00t, &BuiltInVariable::kpt00B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00t00B00D00B[4] = {&BuiltInVariable::kpt00t, &BuiltInVariable::kpt00B,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00t00D00D00D[4] = {&BuiltInVariable::kpt00t, &BuiltInVariable::kpt00D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
 constexpr const TVariable *p00t10B00B00B00D[5] = {
-    &BuiltInVariable::kVar_pt00t, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00t10B00B00D[4] = {
-    &BuiltInVariable::kVar_pt00t, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00t10B00D00B[4] = {
-    &BuiltInVariable::kVar_pt00t, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00B};
+    &BuiltInVariable::kpt00t, &BuiltInVariable::kpt10B, &BuiltInVariable::kpt00B,
+    &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00t10B00B00D[4] = {&BuiltInVariable::kpt00t, &BuiltInVariable::kpt10B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00t10B00D00B[4] = {&BuiltInVariable::kpt00t, &BuiltInVariable::kpt10B,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B};
 constexpr const TVariable *p00t30B00B00B00D[5] = {
-    &BuiltInVariable::kVar_pt00t, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00t30B00B00D[4] = {
-    &BuiltInVariable::kVar_pt00t, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00t30B00D00B[4] = {
-    &BuiltInVariable::kVar_pt00t, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00u00B[2]          = {&BuiltInVariable::kVar_pt00u,
-                                         &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00u00D[2]          = {&BuiltInVariable::kVar_pt00u,
-                                         &BuiltInVariable::kVar_pt00D};
+    &BuiltInVariable::kpt00t, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt00B,
+    &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00t30B00B00D[4] = {&BuiltInVariable::kpt00t, &BuiltInVariable::kpt30B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00t30B00D00B[4] = {&BuiltInVariable::kpt00t, &BuiltInVariable::kpt30B,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00u00B[2]       = {&BuiltInVariable::kpt00u, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00u00D[2]       = {&BuiltInVariable::kpt00u, &BuiltInVariable::kpt00D};
 constexpr const TVariable *p00u10B00B00B00D[5] = {
-    &BuiltInVariable::kVar_pt00u, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00u10B00B00D[4] = {
-    &BuiltInVariable::kVar_pt00u, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt00B,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00u10B00D00B[4] = {
-    &BuiltInVariable::kVar_pt00u, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00u10D00D00D[4] = {
-    &BuiltInVariable::kVar_pt00u, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00u20B00B[3] = {
-    &BuiltInVariable::kVar_pt00u, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00B};
+    &BuiltInVariable::kpt00u, &BuiltInVariable::kpt10B, &BuiltInVariable::kpt00B,
+    &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00u10B00B00D[4] = {&BuiltInVariable::kpt00u, &BuiltInVariable::kpt10B,
+                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00u10B00D00B[4] = {&BuiltInVariable::kpt00u, &BuiltInVariable::kpt10B,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00u10D00D00D[4] = {&BuiltInVariable::kpt00u, &BuiltInVariable::kpt10D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00u20B00B[3]    = {&BuiltInVariable::kpt00u, &BuiltInVariable::kpt20B,
+                                            &BuiltInVariable::kpt00B};
 constexpr const TVariable *p00v10B10B10B10D[5] = {
-    &BuiltInVariable::kVar_pt00v, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10B,
-    &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00v10B10D00D[4] = {
-    &BuiltInVariable::kVar_pt00v, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00v10B70D00D[4] = {
-    &BuiltInVariable::kVar_pt00v, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt70D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00v10D10D[3] = {
-    &BuiltInVariable::kVar_pt00v, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00v20B00D[3] = {
-    &BuiltInVariable::kVar_pt00v, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00D};
+    &BuiltInVariable::kpt00v, &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10B,
+    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00v10B10D00D[4] = {&BuiltInVariable::kpt00v, &BuiltInVariable::kpt10B,
+                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00v10B70D00D[4] = {&BuiltInVariable::kpt00v, &BuiltInVariable::kpt10B,
+                                               &BuiltInVariable::kpt70D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00v10D10D[3]    = {&BuiltInVariable::kpt00v, &BuiltInVariable::kpt10D,
+                                            &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00v20B00D[3]    = {&BuiltInVariable::kpt00v, &BuiltInVariable::kpt20B,
+                                            &BuiltInVariable::kpt00D};
 constexpr const TVariable *p00v20B10B10B10D[5] = {
-    &BuiltInVariable::kVar_pt00v, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt10B,
-    &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00v20B10D[3] = {
-    &BuiltInVariable::kVar_pt00v, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt10D};
+    &BuiltInVariable::kpt00v, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B,
+    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00v20B10D[3] = {&BuiltInVariable::kpt00v, &BuiltInVariable::kpt20B,
+                                            &BuiltInVariable::kpt10D};
 constexpr const TVariable *p00v30B10B10B10D[5] = {
-    &BuiltInVariable::kVar_pt00v, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt10B,
-    &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00v30B10D[3] = {
-    &BuiltInVariable::kVar_pt00v, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p00w00D[2]    = {&BuiltInVariable::kVar_pt00w,
-                                         &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00x00D[2]    = {&BuiltInVariable::kVar_pt00x,
-                                         &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00x20B[2]    = {&BuiltInVariable::kVar_pt00x,
-                                         &BuiltInVariable::kVar_pt20B};
-constexpr const TVariable *p00x30B00B[3] = {
-    &BuiltInVariable::kVar_pt00x, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00x30B00D[3] = {
-    &BuiltInVariable::kVar_pt00x, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00x30B20B20B[4] = {
-    &BuiltInVariable::kVar_pt00x, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt20B,
-    &BuiltInVariable::kVar_pt20B};
-constexpr const TVariable *p00y10D00B[3] = {
-    &BuiltInVariable::kVar_pt00y, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00y10D00D00D[4] = {
-    &BuiltInVariable::kVar_pt00y, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00y10D00E00E[4] = {
-    &BuiltInVariable::kVar_pt00y, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00E,
-    &BuiltInVariable::kVar_pt00E};
-constexpr const TVariable *p00y10D30B[3] = {
-    &BuiltInVariable::kVar_pt00y, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt30B};
-constexpr const TVariable *p00z10D00B[3] = {
-    &BuiltInVariable::kVar_pt00z, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p00z10D00D00D[4] = {
-    &BuiltInVariable::kVar_pt00z, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p00z10D00E00E[4] = {
-    &BuiltInVariable::kVar_pt00z, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00E,
-    &BuiltInVariable::kVar_pt00E};
-constexpr const TVariable *p00z10D30D[3] = {
-    &BuiltInVariable::kVar_pt00z, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt30D};
-constexpr const TVariable *p01A10D00B[3] = {
-    &BuiltInVariable::kVar_pt01A, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p01A10D00D00D[4] = {
-    &BuiltInVariable::kVar_pt01A, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p01A10D00E00E[4] = {
-    &BuiltInVariable::kVar_pt01A, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00E,
-    &BuiltInVariable::kVar_pt00E};
-constexpr const TVariable *p01A10D30E[3] = {
-    &BuiltInVariable::kVar_pt01A, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt30E};
-constexpr const TVariable *p01B20D00B[3] = {
-    &BuiltInVariable::kVar_pt01B, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p01B20D00D00D[4] = {
-    &BuiltInVariable::kVar_pt01B, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p01B20D00E00E[4] = {
-    &BuiltInVariable::kVar_pt01B, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00E,
-    &BuiltInVariable::kVar_pt00E};
-constexpr const TVariable *p01B20D30B[3] = {
-    &BuiltInVariable::kVar_pt01B, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt30B};
-constexpr const TVariable *p01C20D00B[3] = {
-    &BuiltInVariable::kVar_pt01C, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p01C20D00D00D[4] = {
-    &BuiltInVariable::kVar_pt01C, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p01C20D00E00E[4] = {
-    &BuiltInVariable::kVar_pt01C, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00E,
-    &BuiltInVariable::kVar_pt00E};
-constexpr const TVariable *p01C20D30D[3] = {
-    &BuiltInVariable::kVar_pt01C, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt30D};
-constexpr const TVariable *p01D20D00B[3] = {
-    &BuiltInVariable::kVar_pt01D, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p01D20D00D00D[4] = {
-    &BuiltInVariable::kVar_pt01D, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p01D20D00E00E[4] = {
-    &BuiltInVariable::kVar_pt01D, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00E,
-    &BuiltInVariable::kVar_pt00E};
-constexpr const TVariable *p01D20D30E[3] = {
-    &BuiltInVariable::kVar_pt01D, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt30E};
-constexpr const TVariable *p01E20D00B[3] = {
-    &BuiltInVariable::kVar_pt01E, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p01E20D00D00D[4] = {
-    &BuiltInVariable::kVar_pt01E, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p01E20D00E00E[4] = {
-    &BuiltInVariable::kVar_pt01E, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00E,
-    &BuiltInVariable::kVar_pt00E};
-constexpr const TVariable *p01E20D30B[3] = {
-    &BuiltInVariable::kVar_pt01E, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt30B};
-constexpr const TVariable *p01F20D00B[3] = {
-    &BuiltInVariable::kVar_pt01F, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p01F20D00D00D[4] = {
-    &BuiltInVariable::kVar_pt01F, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p01F20D00E00E[4] = {
-    &BuiltInVariable::kVar_pt01F, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00E,
-    &BuiltInVariable::kVar_pt00E};
-constexpr const TVariable *p01F20D30D[3] = {
-    &BuiltInVariable::kVar_pt01F, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt30D};
-constexpr const TVariable *p01G20D00B[3] = {
-    &BuiltInVariable::kVar_pt01G, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p01G20D00D00D[4] = {
-    &BuiltInVariable::kVar_pt01G, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p01G20D00E00E[4] = {
-    &BuiltInVariable::kVar_pt01G, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00E,
-    &BuiltInVariable::kVar_pt00E};
-constexpr const TVariable *p01G20D30E[3] = {
-    &BuiltInVariable::kVar_pt01G, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt30E};
-constexpr const TVariable *p01H20D00B[3] = {
-    &BuiltInVariable::kVar_pt01H, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p01H20D00D00D[4] = {
-    &BuiltInVariable::kVar_pt01H, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p01H20D00E00E[4] = {
-    &BuiltInVariable::kVar_pt01H, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00E,
-    &BuiltInVariable::kVar_pt00E};
-constexpr const TVariable *p01H20D30B[3] = {
-    &BuiltInVariable::kVar_pt01H, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt30B};
-constexpr const TVariable *p01I20D00B[3] = {
-    &BuiltInVariable::kVar_pt01I, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p01I20D00D00D[4] = {
-    &BuiltInVariable::kVar_pt01I, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p01I20D00E00E[4] = {
-    &BuiltInVariable::kVar_pt01I, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00E,
-    &BuiltInVariable::kVar_pt00E};
-constexpr const TVariable *p01I20D30D[3] = {
-    &BuiltInVariable::kVar_pt01I, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt30D};
-constexpr const TVariable *p01J20D00B[3] = {
-    &BuiltInVariable::kVar_pt01J, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p01J20D00D00D[4] = {
-    &BuiltInVariable::kVar_pt01J, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p01J20D00E00E[4] = {
-    &BuiltInVariable::kVar_pt01J, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00E,
-    &BuiltInVariable::kVar_pt00E};
-constexpr const TVariable *p01J20D30E[3] = {
-    &BuiltInVariable::kVar_pt01J, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt30E};
-constexpr const TVariable *p01K00D00B[3] = {
-    &BuiltInVariable::kVar_pt01K, &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p01K00D00D00D[4] = {
-    &BuiltInVariable::kVar_pt01K, &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p01K00D00E00E[4] = {
-    &BuiltInVariable::kVar_pt01K, &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00E,
-    &BuiltInVariable::kVar_pt00E};
-constexpr const TVariable *p01K00D30B[3] = {
-    &BuiltInVariable::kVar_pt01K, &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt30B};
-constexpr const TVariable *p01L00D00B[3] = {
-    &BuiltInVariable::kVar_pt01L, &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p01L00D00D00D[4] = {
-    &BuiltInVariable::kVar_pt01L, &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p01L00D00E00E[4] = {
-    &BuiltInVariable::kVar_pt01L, &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00E,
-    &BuiltInVariable::kVar_pt00E};
-constexpr const TVariable *p01L00D30D[3] = {
-    &BuiltInVariable::kVar_pt01L, &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt30D};
-constexpr const TVariable *p01M00D00B[3] = {
-    &BuiltInVariable::kVar_pt01M, &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p01M00D00D00D[4] = {
-    &BuiltInVariable::kVar_pt01M, &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p01M00D00E00E[4] = {
-    &BuiltInVariable::kVar_pt01M, &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00E,
-    &BuiltInVariable::kVar_pt00E};
-constexpr const TVariable *p01M00D30E[3] = {
-    &BuiltInVariable::kVar_pt01M, &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt30E};
-constexpr const TVariable *p01N10D00B[3] = {
-    &BuiltInVariable::kVar_pt01N, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p01N10D00D00D[4] = {
-    &BuiltInVariable::kVar_pt01N, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p01N10D00E00E[4] = {
-    &BuiltInVariable::kVar_pt01N, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00E,
-    &BuiltInVariable::kVar_pt00E};
-constexpr const TVariable *p01N10D30B[3] = {
-    &BuiltInVariable::kVar_pt01N, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt30B};
-constexpr const TVariable *p01O10D00B[3] = {
-    &BuiltInVariable::kVar_pt01O, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p01O10D00D00D[4] = {
-    &BuiltInVariable::kVar_pt01O, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p01O10D00E00E[4] = {
-    &BuiltInVariable::kVar_pt01O, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00E,
-    &BuiltInVariable::kVar_pt00E};
-constexpr const TVariable *p01O10D30D[3] = {
-    &BuiltInVariable::kVar_pt01O, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt30D};
-constexpr const TVariable *p01P10D00B[3] = {
-    &BuiltInVariable::kVar_pt01P, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p01P10D00D00D[4] = {
-    &BuiltInVariable::kVar_pt01P, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p01P10D00E00E[4] = {
-    &BuiltInVariable::kVar_pt01P, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00E,
-    &BuiltInVariable::kVar_pt00E};
-constexpr const TVariable *p01P10D30E[3] = {
-    &BuiltInVariable::kVar_pt01P, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt30E};
-constexpr const TVariable *p01Q10D00D00B[4] = {
-    &BuiltInVariable::kVar_pt01Q, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00B};
+    &BuiltInVariable::kpt00v, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt10B,
+    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00v30B10D[3]    = {&BuiltInVariable::kpt00v, &BuiltInVariable::kpt30B,
+                                            &BuiltInVariable::kpt10D};
+constexpr const TVariable *p00w00D[2]       = {&BuiltInVariable::kpt00w, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00x00D[2]       = {&BuiltInVariable::kpt00x, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00x20B[2]       = {&BuiltInVariable::kpt00x, &BuiltInVariable::kpt20B};
+constexpr const TVariable *p00x30B00B[3]    = {&BuiltInVariable::kpt00x, &BuiltInVariable::kpt30B,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00x30B00D[3]    = {&BuiltInVariable::kpt00x, &BuiltInVariable::kpt30B,
+                                            &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00x30B20B20B[4] = {&BuiltInVariable::kpt00x, &BuiltInVariable::kpt30B,
+                                               &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B};
+constexpr const TVariable *p00y10D00B[3]    = {&BuiltInVariable::kpt00y, &BuiltInVariable::kpt10D,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00y10D00D00D[4] = {&BuiltInVariable::kpt00y, &BuiltInVariable::kpt10D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00y10D00E00E[4] = {&BuiltInVariable::kpt00y, &BuiltInVariable::kpt10D,
+                                               &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E};
+constexpr const TVariable *p00y10D30B[3]    = {&BuiltInVariable::kpt00y, &BuiltInVariable::kpt10D,
+                                            &BuiltInVariable::kpt30B};
+constexpr const TVariable *p00z10D00B[3]    = {&BuiltInVariable::kpt00z, &BuiltInVariable::kpt10D,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p00z10D00D00D[4] = {&BuiltInVariable::kpt00z, &BuiltInVariable::kpt10D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p00z10D00E00E[4] = {&BuiltInVariable::kpt00z, &BuiltInVariable::kpt10D,
+                                               &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E};
+constexpr const TVariable *p00z10D30D[3]    = {&BuiltInVariable::kpt00z, &BuiltInVariable::kpt10D,
+                                            &BuiltInVariable::kpt30D};
+constexpr const TVariable *p01A10D00B[3]    = {&BuiltInVariable::kpt01A, &BuiltInVariable::kpt10D,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p01A10D00D00D[4] = {&BuiltInVariable::kpt01A, &BuiltInVariable::kpt10D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p01A10D00E00E[4] = {&BuiltInVariable::kpt01A, &BuiltInVariable::kpt10D,
+                                               &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E};
+constexpr const TVariable *p01A10D30E[3]    = {&BuiltInVariable::kpt01A, &BuiltInVariable::kpt10D,
+                                            &BuiltInVariable::kpt30E};
+constexpr const TVariable *p01B20D00B[3]    = {&BuiltInVariable::kpt01B, &BuiltInVariable::kpt20D,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p01B20D00D00D[4] = {&BuiltInVariable::kpt01B, &BuiltInVariable::kpt20D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p01B20D00E00E[4] = {&BuiltInVariable::kpt01B, &BuiltInVariable::kpt20D,
+                                               &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E};
+constexpr const TVariable *p01B20D30B[3]    = {&BuiltInVariable::kpt01B, &BuiltInVariable::kpt20D,
+                                            &BuiltInVariable::kpt30B};
+constexpr const TVariable *p01C20D00B[3]    = {&BuiltInVariable::kpt01C, &BuiltInVariable::kpt20D,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p01C20D00D00D[4] = {&BuiltInVariable::kpt01C, &BuiltInVariable::kpt20D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p01C20D00E00E[4] = {&BuiltInVariable::kpt01C, &BuiltInVariable::kpt20D,
+                                               &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E};
+constexpr const TVariable *p01C20D30D[3]    = {&BuiltInVariable::kpt01C, &BuiltInVariable::kpt20D,
+                                            &BuiltInVariable::kpt30D};
+constexpr const TVariable *p01D20D00B[3]    = {&BuiltInVariable::kpt01D, &BuiltInVariable::kpt20D,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p01D20D00D00D[4] = {&BuiltInVariable::kpt01D, &BuiltInVariable::kpt20D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p01D20D00E00E[4] = {&BuiltInVariable::kpt01D, &BuiltInVariable::kpt20D,
+                                               &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E};
+constexpr const TVariable *p01D20D30E[3]    = {&BuiltInVariable::kpt01D, &BuiltInVariable::kpt20D,
+                                            &BuiltInVariable::kpt30E};
+constexpr const TVariable *p01E20D00B[3]    = {&BuiltInVariable::kpt01E, &BuiltInVariable::kpt20D,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p01E20D00D00D[4] = {&BuiltInVariable::kpt01E, &BuiltInVariable::kpt20D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p01E20D00E00E[4] = {&BuiltInVariable::kpt01E, &BuiltInVariable::kpt20D,
+                                               &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E};
+constexpr const TVariable *p01E20D30B[3]    = {&BuiltInVariable::kpt01E, &BuiltInVariable::kpt20D,
+                                            &BuiltInVariable::kpt30B};
+constexpr const TVariable *p01F20D00B[3]    = {&BuiltInVariable::kpt01F, &BuiltInVariable::kpt20D,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p01F20D00D00D[4] = {&BuiltInVariable::kpt01F, &BuiltInVariable::kpt20D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p01F20D00E00E[4] = {&BuiltInVariable::kpt01F, &BuiltInVariable::kpt20D,
+                                               &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E};
+constexpr const TVariable *p01F20D30D[3]    = {&BuiltInVariable::kpt01F, &BuiltInVariable::kpt20D,
+                                            &BuiltInVariable::kpt30D};
+constexpr const TVariable *p01G20D00B[3]    = {&BuiltInVariable::kpt01G, &BuiltInVariable::kpt20D,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p01G20D00D00D[4] = {&BuiltInVariable::kpt01G, &BuiltInVariable::kpt20D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p01G20D00E00E[4] = {&BuiltInVariable::kpt01G, &BuiltInVariable::kpt20D,
+                                               &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E};
+constexpr const TVariable *p01G20D30E[3]    = {&BuiltInVariable::kpt01G, &BuiltInVariable::kpt20D,
+                                            &BuiltInVariable::kpt30E};
+constexpr const TVariable *p01H20D00B[3]    = {&BuiltInVariable::kpt01H, &BuiltInVariable::kpt20D,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p01H20D00D00D[4] = {&BuiltInVariable::kpt01H, &BuiltInVariable::kpt20D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p01H20D00E00E[4] = {&BuiltInVariable::kpt01H, &BuiltInVariable::kpt20D,
+                                               &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E};
+constexpr const TVariable *p01H20D30B[3]    = {&BuiltInVariable::kpt01H, &BuiltInVariable::kpt20D,
+                                            &BuiltInVariable::kpt30B};
+constexpr const TVariable *p01I20D00B[3]    = {&BuiltInVariable::kpt01I, &BuiltInVariable::kpt20D,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p01I20D00D00D[4] = {&BuiltInVariable::kpt01I, &BuiltInVariable::kpt20D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p01I20D00E00E[4] = {&BuiltInVariable::kpt01I, &BuiltInVariable::kpt20D,
+                                               &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E};
+constexpr const TVariable *p01I20D30D[3]    = {&BuiltInVariable::kpt01I, &BuiltInVariable::kpt20D,
+                                            &BuiltInVariable::kpt30D};
+constexpr const TVariable *p01J20D00B[3]    = {&BuiltInVariable::kpt01J, &BuiltInVariable::kpt20D,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p01J20D00D00D[4] = {&BuiltInVariable::kpt01J, &BuiltInVariable::kpt20D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p01J20D00E00E[4] = {&BuiltInVariable::kpt01J, &BuiltInVariable::kpt20D,
+                                               &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E};
+constexpr const TVariable *p01J20D30E[3]    = {&BuiltInVariable::kpt01J, &BuiltInVariable::kpt20D,
+                                            &BuiltInVariable::kpt30E};
+constexpr const TVariable *p01K00D00B[3]    = {&BuiltInVariable::kpt01K, &BuiltInVariable::kpt00D,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p01K00D00D00D[4] = {&BuiltInVariable::kpt01K, &BuiltInVariable::kpt00D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p01K00D00E00E[4] = {&BuiltInVariable::kpt01K, &BuiltInVariable::kpt00D,
+                                               &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E};
+constexpr const TVariable *p01K00D30B[3]    = {&BuiltInVariable::kpt01K, &BuiltInVariable::kpt00D,
+                                            &BuiltInVariable::kpt30B};
+constexpr const TVariable *p01L00D00B[3]    = {&BuiltInVariable::kpt01L, &BuiltInVariable::kpt00D,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p01L00D00D00D[4] = {&BuiltInVariable::kpt01L, &BuiltInVariable::kpt00D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p01L00D00E00E[4] = {&BuiltInVariable::kpt01L, &BuiltInVariable::kpt00D,
+                                               &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E};
+constexpr const TVariable *p01L00D30D[3]    = {&BuiltInVariable::kpt01L, &BuiltInVariable::kpt00D,
+                                            &BuiltInVariable::kpt30D};
+constexpr const TVariable *p01M00D00B[3]    = {&BuiltInVariable::kpt01M, &BuiltInVariable::kpt00D,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p01M00D00D00D[4] = {&BuiltInVariable::kpt01M, &BuiltInVariable::kpt00D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p01M00D00E00E[4] = {&BuiltInVariable::kpt01M, &BuiltInVariable::kpt00D,
+                                               &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E};
+constexpr const TVariable *p01M00D30E[3]    = {&BuiltInVariable::kpt01M, &BuiltInVariable::kpt00D,
+                                            &BuiltInVariable::kpt30E};
+constexpr const TVariable *p01N10D00B[3]    = {&BuiltInVariable::kpt01N, &BuiltInVariable::kpt10D,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p01N10D00D00D[4] = {&BuiltInVariable::kpt01N, &BuiltInVariable::kpt10D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p01N10D00E00E[4] = {&BuiltInVariable::kpt01N, &BuiltInVariable::kpt10D,
+                                               &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E};
+constexpr const TVariable *p01N10D30B[3]    = {&BuiltInVariable::kpt01N, &BuiltInVariable::kpt10D,
+                                            &BuiltInVariable::kpt30B};
+constexpr const TVariable *p01O10D00B[3]    = {&BuiltInVariable::kpt01O, &BuiltInVariable::kpt10D,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p01O10D00D00D[4] = {&BuiltInVariable::kpt01O, &BuiltInVariable::kpt10D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p01O10D00E00E[4] = {&BuiltInVariable::kpt01O, &BuiltInVariable::kpt10D,
+                                               &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E};
+constexpr const TVariable *p01O10D30D[3]    = {&BuiltInVariable::kpt01O, &BuiltInVariable::kpt10D,
+                                            &BuiltInVariable::kpt30D};
+constexpr const TVariable *p01P10D00B[3]    = {&BuiltInVariable::kpt01P, &BuiltInVariable::kpt10D,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p01P10D00D00D[4] = {&BuiltInVariable::kpt01P, &BuiltInVariable::kpt10D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p01P10D00E00E[4] = {&BuiltInVariable::kpt01P, &BuiltInVariable::kpt10D,
+                                               &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E};
+constexpr const TVariable *p01P10D30E[3]    = {&BuiltInVariable::kpt01P, &BuiltInVariable::kpt10D,
+                                            &BuiltInVariable::kpt30E};
+constexpr const TVariable *p01Q10D00D00B[4] = {&BuiltInVariable::kpt01Q, &BuiltInVariable::kpt10D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B};
 constexpr const TVariable *p01Q10D00D00D00D[5] = {
-    &BuiltInVariable::kVar_pt01Q, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00D};
+    &BuiltInVariable::kpt01Q, &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D,
+    &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
 constexpr const TVariable *p01Q10D00D00E00E[5] = {
-    &BuiltInVariable::kVar_pt01Q, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00E, &BuiltInVariable::kVar_pt00E};
-constexpr const TVariable *p01Q10D00D30B[4] = {
-    &BuiltInVariable::kVar_pt01Q, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt30B};
-constexpr const TVariable *p01R10D00D00B[4] = {
-    &BuiltInVariable::kVar_pt01R, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00B};
+    &BuiltInVariable::kpt01Q, &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D,
+    &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E};
+constexpr const TVariable *p01Q10D00D30B[4] = {&BuiltInVariable::kpt01Q, &BuiltInVariable::kpt10D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt30B};
+constexpr const TVariable *p01R10D00D00B[4] = {&BuiltInVariable::kpt01R, &BuiltInVariable::kpt10D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B};
 constexpr const TVariable *p01R10D00D00D00D[5] = {
-    &BuiltInVariable::kVar_pt01R, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00D};
+    &BuiltInVariable::kpt01R, &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D,
+    &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
 constexpr const TVariable *p01R10D00D00E00E[5] = {
-    &BuiltInVariable::kVar_pt01R, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00E, &BuiltInVariable::kVar_pt00E};
-constexpr const TVariable *p01R10D00D30D[4] = {
-    &BuiltInVariable::kVar_pt01R, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt30D};
-constexpr const TVariable *p01S10D00D00B[4] = {
-    &BuiltInVariable::kVar_pt01S, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00B};
+    &BuiltInVariable::kpt01R, &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D,
+    &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E};
+constexpr const TVariable *p01R10D00D30D[4] = {&BuiltInVariable::kpt01R, &BuiltInVariable::kpt10D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt30D};
+constexpr const TVariable *p01S10D00D00B[4] = {&BuiltInVariable::kpt01S, &BuiltInVariable::kpt10D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B};
 constexpr const TVariable *p01S10D00D00D00D[5] = {
-    &BuiltInVariable::kVar_pt01S, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00D};
+    &BuiltInVariable::kpt01S, &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D,
+    &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
 constexpr const TVariable *p01S10D00D00E00E[5] = {
-    &BuiltInVariable::kVar_pt01S, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00E, &BuiltInVariable::kVar_pt00E};
-constexpr const TVariable *p01S10D00D30E[4] = {
-    &BuiltInVariable::kVar_pt01S, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt30E};
-constexpr const TVariable *p01T20D00D00B[4] = {
-    &BuiltInVariable::kVar_pt01T, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00B};
+    &BuiltInVariable::kpt01S, &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D,
+    &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E};
+constexpr const TVariable *p01S10D00D30E[4] = {&BuiltInVariable::kpt01S, &BuiltInVariable::kpt10D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt30E};
+constexpr const TVariable *p01T20D00D00B[4] = {&BuiltInVariable::kpt01T, &BuiltInVariable::kpt20D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B};
 constexpr const TVariable *p01T20D00D00D00D[5] = {
-    &BuiltInVariable::kVar_pt01T, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00D};
+    &BuiltInVariable::kpt01T, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00D,
+    &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
 constexpr const TVariable *p01T20D00D00E00E[5] = {
-    &BuiltInVariable::kVar_pt01T, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00E, &BuiltInVariable::kVar_pt00E};
-constexpr const TVariable *p01T20D00D30B[4] = {
-    &BuiltInVariable::kVar_pt01T, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt30B};
-constexpr const TVariable *p01U20D00D00B[4] = {
-    &BuiltInVariable::kVar_pt01U, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00B};
+    &BuiltInVariable::kpt01T, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00D,
+    &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E};
+constexpr const TVariable *p01T20D00D30B[4] = {&BuiltInVariable::kpt01T, &BuiltInVariable::kpt20D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt30B};
+constexpr const TVariable *p01U20D00D00B[4] = {&BuiltInVariable::kpt01U, &BuiltInVariable::kpt20D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B};
 constexpr const TVariable *p01U20D00D00D00D[5] = {
-    &BuiltInVariable::kVar_pt01U, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00D};
+    &BuiltInVariable::kpt01U, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00D,
+    &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
 constexpr const TVariable *p01U20D00D00E00E[5] = {
-    &BuiltInVariable::kVar_pt01U, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00E, &BuiltInVariable::kVar_pt00E};
-constexpr const TVariable *p01U20D00D30D[4] = {
-    &BuiltInVariable::kVar_pt01U, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt30D};
-constexpr const TVariable *p01V20D00D00B[4] = {
-    &BuiltInVariable::kVar_pt01V, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00B};
+    &BuiltInVariable::kpt01U, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00D,
+    &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E};
+constexpr const TVariable *p01U20D00D30D[4] = {&BuiltInVariable::kpt01U, &BuiltInVariable::kpt20D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt30D};
+constexpr const TVariable *p01V20D00D00B[4] = {&BuiltInVariable::kpt01V, &BuiltInVariable::kpt20D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B};
 constexpr const TVariable *p01V20D00D00D00D[5] = {
-    &BuiltInVariable::kVar_pt01V, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00D};
+    &BuiltInVariable::kpt01V, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00D,
+    &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
 constexpr const TVariable *p01V20D00D00E00E[5] = {
-    &BuiltInVariable::kVar_pt01V, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00E, &BuiltInVariable::kVar_pt00E};
-constexpr const TVariable *p01V20D00D30E[4] = {
-    &BuiltInVariable::kVar_pt01V, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt30E};
-constexpr const TVariable *p01W10D00B[3] = {
-    &BuiltInVariable::kVar_pt01W, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p01W10D00D00D[4] = {
-    &BuiltInVariable::kVar_pt01W, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p01W10D00E00E[4] = {
-    &BuiltInVariable::kVar_pt01W, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00E,
-    &BuiltInVariable::kVar_pt00E};
-constexpr const TVariable *p01W10D30B[3] = {
-    &BuiltInVariable::kVar_pt01W, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt30B};
-constexpr const TVariable *p01X10D00B[3] = {
-    &BuiltInVariable::kVar_pt01X, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p01X10D00D00D[4] = {
-    &BuiltInVariable::kVar_pt01X, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p01X10D00E00E[4] = {
-    &BuiltInVariable::kVar_pt01X, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00E,
-    &BuiltInVariable::kVar_pt00E};
-constexpr const TVariable *p01X10D30D[3] = {
-    &BuiltInVariable::kVar_pt01X, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt30D};
-constexpr const TVariable *p01Y10D00B[3] = {
-    &BuiltInVariable::kVar_pt01Y, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p01Y10D00D00D[4] = {
-    &BuiltInVariable::kVar_pt01Y, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p01Y10D00E00E[4] = {
-    &BuiltInVariable::kVar_pt01Y, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00E,
-    &BuiltInVariable::kVar_pt00E};
-constexpr const TVariable *p01Y10D30E[3] = {
-    &BuiltInVariable::kVar_pt01Y, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt30E};
-constexpr const TVariable *p01Z20D00B[3] = {
-    &BuiltInVariable::kVar_pt01Z, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p01Z20D00D00D[4] = {
-    &BuiltInVariable::kVar_pt01Z, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p01Z20D00E00E[4] = {
-    &BuiltInVariable::kVar_pt01Z, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00E,
-    &BuiltInVariable::kVar_pt00E};
-constexpr const TVariable *p01Z20D30B[3] = {
-    &BuiltInVariable::kVar_pt01Z, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt30B};
-constexpr const TVariable *p01a20D00B[3] = {
-    &BuiltInVariable::kVar_pt01a, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p01a20D00D00D[4] = {
-    &BuiltInVariable::kVar_pt01a, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p01a20D00E00E[4] = {
-    &BuiltInVariable::kVar_pt01a, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00E,
-    &BuiltInVariable::kVar_pt00E};
-constexpr const TVariable *p01a20D30D[3] = {
-    &BuiltInVariable::kVar_pt01a, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt30D};
-constexpr const TVariable *p01b20D00B[3] = {
-    &BuiltInVariable::kVar_pt01b, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p01b20D00D00D[4] = {
-    &BuiltInVariable::kVar_pt01b, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p01b20D00E00E[4] = {
-    &BuiltInVariable::kVar_pt01b, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00E,
-    &BuiltInVariable::kVar_pt00E};
-constexpr const TVariable *p01b20D30E[3] = {
-    &BuiltInVariable::kVar_pt01b, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt30E};
-constexpr const TVariable *p01c[1]       = {&BuiltInVariable::kVar_pt01c};
-constexpr const TVariable *p01d[1]       = {&BuiltInVariable::kVar_pt01d};
-constexpr const TVariable *p01e[1]       = {&BuiltInVariable::kVar_pt01e};
-constexpr const TVariable *p01f00D00B[3] = {
-    &BuiltInVariable::kVar_pt01f, &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p01f00D00D00D[4] = {
-    &BuiltInVariable::kVar_pt01f, &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p01f00D00E00E[4] = {
-    &BuiltInVariable::kVar_pt01f, &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00E,
-    &BuiltInVariable::kVar_pt00E};
-constexpr const TVariable *p01f00D30B[3] = {
-    &BuiltInVariable::kVar_pt01f, &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt30B};
-constexpr const TVariable *p01g00D00B[3] = {
-    &BuiltInVariable::kVar_pt01g, &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p01g00D00D00D[4] = {
-    &BuiltInVariable::kVar_pt01g, &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p01g00D00E00E[4] = {
-    &BuiltInVariable::kVar_pt01g, &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00E,
-    &BuiltInVariable::kVar_pt00E};
-constexpr const TVariable *p01g00D30D[3] = {
-    &BuiltInVariable::kVar_pt01g, &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt30D};
-constexpr const TVariable *p01h00D00B[3] = {
-    &BuiltInVariable::kVar_pt01h, &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p01h00D00D00D[4] = {
-    &BuiltInVariable::kVar_pt01h, &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p01h00D00E00E[4] = {
-    &BuiltInVariable::kVar_pt01h, &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00E,
-    &BuiltInVariable::kVar_pt00E};
-constexpr const TVariable *p01h00D30E[3] = {
-    &BuiltInVariable::kVar_pt01h, &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt30E};
-constexpr const TVariable *p01i[1]       = {&BuiltInVariable::kVar_pt01i};
-constexpr const TVariable *p01j[1]       = {&BuiltInVariable::kVar_pt01j};
-constexpr const TVariable *p01k[1]       = {&BuiltInVariable::kVar_pt01k};
-constexpr const TVariable *p01l00D[2]    = {&BuiltInVariable::kVar_pt01l,
-                                         &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p01m00D[2]    = {&BuiltInVariable::kVar_pt01m,
-                                         &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p01n00D[2]    = {&BuiltInVariable::kVar_pt01n,
-                                         &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p10B00B00B[3] = {
-    &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p10B00D[2]    = {&BuiltInVariable::kVar_pt10B,
-                                         &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p10B10B00B[3] = {
-    &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p10B10B10B[3] = {
-    &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10B};
-constexpr const TVariable *p10B10B10F[3] = {
-    &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10B, &BuiltInVariable::kVar_pt10F};
-constexpr const TVariable *p10B10D[2]    = {&BuiltInVariable::kVar_pt10B,
-                                         &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p10B20B[2]    = {&BuiltInVariable::kVar_pt10B,
-                                         &BuiltInVariable::kVar_pt20B};
-constexpr const TVariable *p10B30B[2]    = {&BuiltInVariable::kVar_pt10B,
-                                         &BuiltInVariable::kVar_pt30B};
-constexpr const TVariable *p10B_o_10B[2] = {&BuiltInVariable::kVar_pt10B,
-                                            &BuiltInVariable::kVar_pt_o_10B};
-constexpr const TVariable *p10B_o_10D[2] = {&BuiltInVariable::kVar_pt10B,
-                                            &BuiltInVariable::kVar_pt_o_10D};
-constexpr const TVariable *p10C00C00C[3] = {
-    &BuiltInVariable::kVar_pt10C, &BuiltInVariable::kVar_pt00C, &BuiltInVariable::kVar_pt00C};
-constexpr const TVariable *p10C10C00B[3] = {
-    &BuiltInVariable::kVar_pt10C, &BuiltInVariable::kVar_pt10C, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p10C10C00C[3] = {
-    &BuiltInVariable::kVar_pt10C, &BuiltInVariable::kVar_pt10C, &BuiltInVariable::kVar_pt00C};
-constexpr const TVariable *p10C10C10C[3] = {
-    &BuiltInVariable::kVar_pt10C, &BuiltInVariable::kVar_pt10C, &BuiltInVariable::kVar_pt10C};
-constexpr const TVariable *p10C10C10F[3] = {
-    &BuiltInVariable::kVar_pt10C, &BuiltInVariable::kVar_pt10C, &BuiltInVariable::kVar_pt10F};
-constexpr const TVariable *p10C10D[2]    = {&BuiltInVariable::kVar_pt10C,
-                                         &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p10C_o_10C[2] = {&BuiltInVariable::kVar_pt10C,
-                                            &BuiltInVariable::kVar_pt_o_10C};
-constexpr const TVariable *p10C_o_10D[2] = {&BuiltInVariable::kVar_pt10C,
-                                            &BuiltInVariable::kVar_pt_o_10D};
-constexpr const TVariable *p10D00D00D[3] = {
-    &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p10D10D00D00D[4] = {
-    &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p10D10D10D[3] = {
-    &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt10D};
-constexpr const TVariable *p10D10D10F[3] = {
-    &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt10F};
+    &BuiltInVariable::kpt01V, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00D,
+    &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E};
+constexpr const TVariable *p01V20D00D30E[4] = {&BuiltInVariable::kpt01V, &BuiltInVariable::kpt20D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt30E};
+constexpr const TVariable *p01W10D00B[3]    = {&BuiltInVariable::kpt01W, &BuiltInVariable::kpt10D,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p01W10D00D00D[4] = {&BuiltInVariable::kpt01W, &BuiltInVariable::kpt10D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p01W10D00E00E[4] = {&BuiltInVariable::kpt01W, &BuiltInVariable::kpt10D,
+                                               &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E};
+constexpr const TVariable *p01W10D30B[3]    = {&BuiltInVariable::kpt01W, &BuiltInVariable::kpt10D,
+                                            &BuiltInVariable::kpt30B};
+constexpr const TVariable *p01X10D00B[3]    = {&BuiltInVariable::kpt01X, &BuiltInVariable::kpt10D,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p01X10D00D00D[4] = {&BuiltInVariable::kpt01X, &BuiltInVariable::kpt10D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p01X10D00E00E[4] = {&BuiltInVariable::kpt01X, &BuiltInVariable::kpt10D,
+                                               &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E};
+constexpr const TVariable *p01X10D30D[3]    = {&BuiltInVariable::kpt01X, &BuiltInVariable::kpt10D,
+                                            &BuiltInVariable::kpt30D};
+constexpr const TVariable *p01Y10D00B[3]    = {&BuiltInVariable::kpt01Y, &BuiltInVariable::kpt10D,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p01Y10D00D00D[4] = {&BuiltInVariable::kpt01Y, &BuiltInVariable::kpt10D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p01Y10D00E00E[4] = {&BuiltInVariable::kpt01Y, &BuiltInVariable::kpt10D,
+                                               &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E};
+constexpr const TVariable *p01Y10D30E[3]    = {&BuiltInVariable::kpt01Y, &BuiltInVariable::kpt10D,
+                                            &BuiltInVariable::kpt30E};
+constexpr const TVariable *p01Z20D00B[3]    = {&BuiltInVariable::kpt01Z, &BuiltInVariable::kpt20D,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p01Z20D00D00D[4] = {&BuiltInVariable::kpt01Z, &BuiltInVariable::kpt20D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p01Z20D00E00E[4] = {&BuiltInVariable::kpt01Z, &BuiltInVariable::kpt20D,
+                                               &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E};
+constexpr const TVariable *p01Z20D30B[3]    = {&BuiltInVariable::kpt01Z, &BuiltInVariable::kpt20D,
+                                            &BuiltInVariable::kpt30B};
+constexpr const TVariable *p01a20D00B[3]    = {&BuiltInVariable::kpt01a, &BuiltInVariable::kpt20D,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p01a20D00D00D[4] = {&BuiltInVariable::kpt01a, &BuiltInVariable::kpt20D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p01a20D00E00E[4] = {&BuiltInVariable::kpt01a, &BuiltInVariable::kpt20D,
+                                               &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E};
+constexpr const TVariable *p01a20D30D[3]    = {&BuiltInVariable::kpt01a, &BuiltInVariable::kpt20D,
+                                            &BuiltInVariable::kpt30D};
+constexpr const TVariable *p01b20D00B[3]    = {&BuiltInVariable::kpt01b, &BuiltInVariable::kpt20D,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p01b20D00D00D[4] = {&BuiltInVariable::kpt01b, &BuiltInVariable::kpt20D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p01b20D00E00E[4] = {&BuiltInVariable::kpt01b, &BuiltInVariable::kpt20D,
+                                               &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E};
+constexpr const TVariable *p01b20D30E[3]    = {&BuiltInVariable::kpt01b, &BuiltInVariable::kpt20D,
+                                            &BuiltInVariable::kpt30E};
+constexpr const TVariable *p01c[1]          = {&BuiltInVariable::kpt01c};
+constexpr const TVariable *p01d[1]          = {&BuiltInVariable::kpt01d};
+constexpr const TVariable *p01e[1]          = {&BuiltInVariable::kpt01e};
+constexpr const TVariable *p01f00D00B[3]    = {&BuiltInVariable::kpt01f, &BuiltInVariable::kpt00D,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p01f00D00D00D[4] = {&BuiltInVariable::kpt01f, &BuiltInVariable::kpt00D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p01f00D00E00E[4] = {&BuiltInVariable::kpt01f, &BuiltInVariable::kpt00D,
+                                               &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E};
+constexpr const TVariable *p01f00D30B[3]    = {&BuiltInVariable::kpt01f, &BuiltInVariable::kpt00D,
+                                            &BuiltInVariable::kpt30B};
+constexpr const TVariable *p01g00D00B[3]    = {&BuiltInVariable::kpt01g, &BuiltInVariable::kpt00D,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p01g00D00D00D[4] = {&BuiltInVariable::kpt01g, &BuiltInVariable::kpt00D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p01g00D00E00E[4] = {&BuiltInVariable::kpt01g, &BuiltInVariable::kpt00D,
+                                               &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E};
+constexpr const TVariable *p01g00D30D[3]    = {&BuiltInVariable::kpt01g, &BuiltInVariable::kpt00D,
+                                            &BuiltInVariable::kpt30D};
+constexpr const TVariable *p01h00D00B[3]    = {&BuiltInVariable::kpt01h, &BuiltInVariable::kpt00D,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p01h00D00D00D[4] = {&BuiltInVariable::kpt01h, &BuiltInVariable::kpt00D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p01h00D00E00E[4] = {&BuiltInVariable::kpt01h, &BuiltInVariable::kpt00D,
+                                               &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E};
+constexpr const TVariable *p01h00D30E[3]    = {&BuiltInVariable::kpt01h, &BuiltInVariable::kpt00D,
+                                            &BuiltInVariable::kpt30E};
+constexpr const TVariable *p01i[1]          = {&BuiltInVariable::kpt01i};
+constexpr const TVariable *p01j[1]          = {&BuiltInVariable::kpt01j};
+constexpr const TVariable *p01k[1]          = {&BuiltInVariable::kpt01k};
+constexpr const TVariable *p01l00D[2]       = {&BuiltInVariable::kpt01l, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p01m00D[2]       = {&BuiltInVariable::kpt01m, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p01n00D[2]       = {&BuiltInVariable::kpt01n, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p10B00B00B[3]    = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt00B,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p10B00D[2]       = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p10B10B00B[3]    = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt10B,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p10B10B10B[3]    = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt10B,
+                                            &BuiltInVariable::kpt10B};
+constexpr const TVariable *p10B10B10F[3]    = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt10B,
+                                            &BuiltInVariable::kpt10F};
+constexpr const TVariable *p10B10D[2]       = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p10B20B[2]       = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt20B};
+constexpr const TVariable *p10B30B[2]       = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt30B};
+constexpr const TVariable *p10B_o_10B[2] = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt_o_10B};
+constexpr const TVariable *p10B_o_10D[2] = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt_o_10D};
+constexpr const TVariable *p10C00C00C[3] = {&BuiltInVariable::kpt10C, &BuiltInVariable::kpt00C,
+                                            &BuiltInVariable::kpt00C};
+constexpr const TVariable *p10C10C00B[3] = {&BuiltInVariable::kpt10C, &BuiltInVariable::kpt10C,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p10C10C00C[3] = {&BuiltInVariable::kpt10C, &BuiltInVariable::kpt10C,
+                                            &BuiltInVariable::kpt00C};
+constexpr const TVariable *p10C10C10C[3] = {&BuiltInVariable::kpt10C, &BuiltInVariable::kpt10C,
+                                            &BuiltInVariable::kpt10C};
+constexpr const TVariable *p10C10C10F[3] = {&BuiltInVariable::kpt10C, &BuiltInVariable::kpt10C,
+                                            &BuiltInVariable::kpt10F};
+constexpr const TVariable *p10C10D[2]    = {&BuiltInVariable::kpt10C, &BuiltInVariable::kpt10D};
+constexpr const TVariable *p10C_o_10C[2] = {&BuiltInVariable::kpt10C, &BuiltInVariable::kpt_o_10C};
+constexpr const TVariable *p10C_o_10D[2] = {&BuiltInVariable::kpt10C, &BuiltInVariable::kpt_o_10D};
+constexpr const TVariable *p10D00D00D[3] = {&BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D,
+                                            &BuiltInVariable::kpt00D};
+constexpr const TVariable *p10D10D00D00D[4] = {&BuiltInVariable::kpt10D, &BuiltInVariable::kpt10D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p10D10D10D[3]    = {&BuiltInVariable::kpt10D, &BuiltInVariable::kpt10D,
+                                            &BuiltInVariable::kpt10D};
+constexpr const TVariable *p10D10D10F[3]    = {&BuiltInVariable::kpt10D, &BuiltInVariable::kpt10D,
+                                            &BuiltInVariable::kpt10F};
 constexpr const TVariable *p10D10D_o_10D_o_10D[4] = {
-    &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt10D, &BuiltInVariable::kVar_pt_o_10D,
-    &BuiltInVariable::kVar_pt_o_10D};
-constexpr const TVariable *p10E00D00D[3] = {
-    &BuiltInVariable::kVar_pt10E, &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p10E00E00E[3] = {
-    &BuiltInVariable::kVar_pt10E, &BuiltInVariable::kVar_pt00E, &BuiltInVariable::kVar_pt00E};
-constexpr const TVariable *p10E10E00D00D[4] = {
-    &BuiltInVariable::kVar_pt10E, &BuiltInVariable::kVar_pt10E, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p10E10E10E[3] = {
-    &BuiltInVariable::kVar_pt10E, &BuiltInVariable::kVar_pt10E, &BuiltInVariable::kVar_pt10E};
-constexpr const TVariable *p10E10E10F[3] = {
-    &BuiltInVariable::kVar_pt10E, &BuiltInVariable::kVar_pt10E, &BuiltInVariable::kVar_pt10F};
+    &BuiltInVariable::kpt10D, &BuiltInVariable::kpt10D, &BuiltInVariable::kpt_o_10D,
+    &BuiltInVariable::kpt_o_10D};
+constexpr const TVariable *p10E00D00D[3]    = {&BuiltInVariable::kpt10E, &BuiltInVariable::kpt00D,
+                                            &BuiltInVariable::kpt00D};
+constexpr const TVariable *p10E00E00E[3]    = {&BuiltInVariable::kpt10E, &BuiltInVariable::kpt00E,
+                                            &BuiltInVariable::kpt00E};
+constexpr const TVariable *p10E10E00D00D[4] = {&BuiltInVariable::kpt10E, &BuiltInVariable::kpt10E,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p10E10E10E[3]    = {&BuiltInVariable::kpt10E, &BuiltInVariable::kpt10E,
+                                            &BuiltInVariable::kpt10E};
+constexpr const TVariable *p10E10E10F[3]    = {&BuiltInVariable::kpt10E, &BuiltInVariable::kpt10E,
+                                            &BuiltInVariable::kpt10F};
 constexpr const TVariable *p10E10E_o_10E_o_10E[4] = {
-    &BuiltInVariable::kVar_pt10E, &BuiltInVariable::kVar_pt10E, &BuiltInVariable::kVar_pt_o_10E,
-    &BuiltInVariable::kVar_pt_o_10E};
-constexpr const TVariable *p10F10F10F[3] = {
-    &BuiltInVariable::kVar_pt10F, &BuiltInVariable::kVar_pt10F, &BuiltInVariable::kVar_pt10F};
-constexpr const TVariable *p20B00B00B[3] = {
-    &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p20B00D[2]    = {&BuiltInVariable::kVar_pt20B,
-                                         &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p20B00H[2]    = {&BuiltInVariable::kVar_pt20B,
-                                         &BuiltInVariable::kVar_pt00H};
-constexpr const TVariable *p20B10B[2]    = {&BuiltInVariable::kVar_pt20B,
-                                         &BuiltInVariable::kVar_pt10B};
-constexpr const TVariable *p20B20B00B[3] = {
-    &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p20B20B20B[3] = {
-    &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt20B};
-constexpr const TVariable *p20B20B20F[3] = {
-    &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt20B, &BuiltInVariable::kVar_pt20F};
-constexpr const TVariable *p20B20D[2]    = {&BuiltInVariable::kVar_pt20B,
-                                         &BuiltInVariable::kVar_pt20D};
-constexpr const TVariable *p20B30B[2]    = {&BuiltInVariable::kVar_pt20B,
-                                         &BuiltInVariable::kVar_pt30B};
-constexpr const TVariable *p20B_o_20B[2] = {&BuiltInVariable::kVar_pt20B,
-                                            &BuiltInVariable::kVar_pt_o_20B};
-constexpr const TVariable *p20B_o_20D[2] = {&BuiltInVariable::kVar_pt20B,
-                                            &BuiltInVariable::kVar_pt_o_20D};
-constexpr const TVariable *p20C00C00C[3] = {
-    &BuiltInVariable::kVar_pt20C, &BuiltInVariable::kVar_pt00C, &BuiltInVariable::kVar_pt00C};
-constexpr const TVariable *p20C20C00B[3] = {
-    &BuiltInVariable::kVar_pt20C, &BuiltInVariable::kVar_pt20C, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p20C20C00C[3] = {
-    &BuiltInVariable::kVar_pt20C, &BuiltInVariable::kVar_pt20C, &BuiltInVariable::kVar_pt00C};
-constexpr const TVariable *p20C20C20C[3] = {
-    &BuiltInVariable::kVar_pt20C, &BuiltInVariable::kVar_pt20C, &BuiltInVariable::kVar_pt20C};
-constexpr const TVariable *p20C20C20F[3] = {
-    &BuiltInVariable::kVar_pt20C, &BuiltInVariable::kVar_pt20C, &BuiltInVariable::kVar_pt20F};
-constexpr const TVariable *p20C20D[2]    = {&BuiltInVariable::kVar_pt20C,
-                                         &BuiltInVariable::kVar_pt20D};
-constexpr const TVariable *p20C_o_20C[2] = {&BuiltInVariable::kVar_pt20C,
-                                            &BuiltInVariable::kVar_pt_o_20C};
-constexpr const TVariable *p20C_o_20D[2] = {&BuiltInVariable::kVar_pt20C,
-                                            &BuiltInVariable::kVar_pt_o_20D};
-constexpr const TVariable *p20D00D00D[3] = {
-    &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p20D20D00D00D[4] = {
-    &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p20D20D20D[3] = {
-    &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt20D};
-constexpr const TVariable *p20D20D20F[3] = {
-    &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt20F};
+    &BuiltInVariable::kpt10E, &BuiltInVariable::kpt10E, &BuiltInVariable::kpt_o_10E,
+    &BuiltInVariable::kpt_o_10E};
+constexpr const TVariable *p10F10F10F[3] = {&BuiltInVariable::kpt10F, &BuiltInVariable::kpt10F,
+                                            &BuiltInVariable::kpt10F};
+constexpr const TVariable *p20B00B00B[3] = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt00B,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p20B00D[2]    = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p20B00H[2]    = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt00H};
+constexpr const TVariable *p20B10B[2]    = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B};
+constexpr const TVariable *p20B20B00B[3] = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p20B20B20B[3] = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B,
+                                            &BuiltInVariable::kpt20B};
+constexpr const TVariable *p20B20B20F[3] = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B,
+                                            &BuiltInVariable::kpt20F};
+constexpr const TVariable *p20B20D[2]    = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt20D};
+constexpr const TVariable *p20B30B[2]    = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt30B};
+constexpr const TVariable *p20B_o_20B[2] = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt_o_20B};
+constexpr const TVariable *p20B_o_20D[2] = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt_o_20D};
+constexpr const TVariable *p20C00C00C[3] = {&BuiltInVariable::kpt20C, &BuiltInVariable::kpt00C,
+                                            &BuiltInVariable::kpt00C};
+constexpr const TVariable *p20C20C00B[3] = {&BuiltInVariable::kpt20C, &BuiltInVariable::kpt20C,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p20C20C00C[3] = {&BuiltInVariable::kpt20C, &BuiltInVariable::kpt20C,
+                                            &BuiltInVariable::kpt00C};
+constexpr const TVariable *p20C20C20C[3] = {&BuiltInVariable::kpt20C, &BuiltInVariable::kpt20C,
+                                            &BuiltInVariable::kpt20C};
+constexpr const TVariable *p20C20C20F[3] = {&BuiltInVariable::kpt20C, &BuiltInVariable::kpt20C,
+                                            &BuiltInVariable::kpt20F};
+constexpr const TVariable *p20C20D[2]    = {&BuiltInVariable::kpt20C, &BuiltInVariable::kpt20D};
+constexpr const TVariable *p20C_o_20C[2] = {&BuiltInVariable::kpt20C, &BuiltInVariable::kpt_o_20C};
+constexpr const TVariable *p20C_o_20D[2] = {&BuiltInVariable::kpt20C, &BuiltInVariable::kpt_o_20D};
+constexpr const TVariable *p20D00D00D[3] = {&BuiltInVariable::kpt20D, &BuiltInVariable::kpt00D,
+                                            &BuiltInVariable::kpt00D};
+constexpr const TVariable *p20D20D00D00D[4] = {&BuiltInVariable::kpt20D, &BuiltInVariable::kpt20D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p20D20D20D[3]    = {&BuiltInVariable::kpt20D, &BuiltInVariable::kpt20D,
+                                            &BuiltInVariable::kpt20D};
+constexpr const TVariable *p20D20D20F[3]    = {&BuiltInVariable::kpt20D, &BuiltInVariable::kpt20D,
+                                            &BuiltInVariable::kpt20F};
 constexpr const TVariable *p20D20D_o_20D_o_20D[4] = {
-    &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt20D, &BuiltInVariable::kVar_pt_o_20D,
-    &BuiltInVariable::kVar_pt_o_20D};
-constexpr const TVariable *p20E00D00D[3] = {
-    &BuiltInVariable::kVar_pt20E, &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p20E00E00E[3] = {
-    &BuiltInVariable::kVar_pt20E, &BuiltInVariable::kVar_pt00E, &BuiltInVariable::kVar_pt00E};
-constexpr const TVariable *p20E20E00D00D[4] = {
-    &BuiltInVariable::kVar_pt20E, &BuiltInVariable::kVar_pt20E, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p20E20E20E[3] = {
-    &BuiltInVariable::kVar_pt20E, &BuiltInVariable::kVar_pt20E, &BuiltInVariable::kVar_pt20E};
-constexpr const TVariable *p20E20E20F[3] = {
-    &BuiltInVariable::kVar_pt20E, &BuiltInVariable::kVar_pt20E, &BuiltInVariable::kVar_pt20F};
+    &BuiltInVariable::kpt20D, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt_o_20D,
+    &BuiltInVariable::kpt_o_20D};
+constexpr const TVariable *p20E00D00D[3]    = {&BuiltInVariable::kpt20E, &BuiltInVariable::kpt00D,
+                                            &BuiltInVariable::kpt00D};
+constexpr const TVariable *p20E00E00E[3]    = {&BuiltInVariable::kpt20E, &BuiltInVariable::kpt00E,
+                                            &BuiltInVariable::kpt00E};
+constexpr const TVariable *p20E20E00D00D[4] = {&BuiltInVariable::kpt20E, &BuiltInVariable::kpt20E,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p20E20E20E[3]    = {&BuiltInVariable::kpt20E, &BuiltInVariable::kpt20E,
+                                            &BuiltInVariable::kpt20E};
+constexpr const TVariable *p20E20E20F[3]    = {&BuiltInVariable::kpt20E, &BuiltInVariable::kpt20E,
+                                            &BuiltInVariable::kpt20F};
 constexpr const TVariable *p20E20E_o_20E_o_20E[4] = {
-    &BuiltInVariable::kVar_pt20E, &BuiltInVariable::kVar_pt20E, &BuiltInVariable::kVar_pt_o_20E,
-    &BuiltInVariable::kVar_pt_o_20E};
-constexpr const TVariable *p20F20F20F[3] = {
-    &BuiltInVariable::kVar_pt20F, &BuiltInVariable::kVar_pt20F, &BuiltInVariable::kVar_pt20F};
-constexpr const TVariable *p30B00B00B[3] = {
-    &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt00B, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p30B00D[2]    = {&BuiltInVariable::kVar_pt30B,
-                                         &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p30B10B[2]    = {&BuiltInVariable::kVar_pt30B,
-                                         &BuiltInVariable::kVar_pt10B};
-constexpr const TVariable *p30B20B[2]    = {&BuiltInVariable::kVar_pt30B,
-                                         &BuiltInVariable::kVar_pt20B};
-constexpr const TVariable *p30B30B00B[3] = {
-    &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p30B30B30B[3] = {
-    &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt30B};
-constexpr const TVariable *p30B30B30F[3] = {
-    &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt30B, &BuiltInVariable::kVar_pt30F};
-constexpr const TVariable *p30B30D[2]    = {&BuiltInVariable::kVar_pt30B,
-                                         &BuiltInVariable::kVar_pt30D};
-constexpr const TVariable *p30B_o_30B[2] = {&BuiltInVariable::kVar_pt30B,
-                                            &BuiltInVariable::kVar_pt_o_30B};
-constexpr const TVariable *p30B_o_30D[2] = {&BuiltInVariable::kVar_pt30B,
-                                            &BuiltInVariable::kVar_pt_o_30D};
-constexpr const TVariable *p30C00C00C[3] = {
-    &BuiltInVariable::kVar_pt30C, &BuiltInVariable::kVar_pt00C, &BuiltInVariable::kVar_pt00C};
-constexpr const TVariable *p30C30C00B[3] = {
-    &BuiltInVariable::kVar_pt30C, &BuiltInVariable::kVar_pt30C, &BuiltInVariable::kVar_pt00B};
-constexpr const TVariable *p30C30C00C[3] = {
-    &BuiltInVariable::kVar_pt30C, &BuiltInVariable::kVar_pt30C, &BuiltInVariable::kVar_pt00C};
-constexpr const TVariable *p30C30C30C[3] = {
-    &BuiltInVariable::kVar_pt30C, &BuiltInVariable::kVar_pt30C, &BuiltInVariable::kVar_pt30C};
-constexpr const TVariable *p30C30C30F[3] = {
-    &BuiltInVariable::kVar_pt30C, &BuiltInVariable::kVar_pt30C, &BuiltInVariable::kVar_pt30F};
-constexpr const TVariable *p30C30D[2]    = {&BuiltInVariable::kVar_pt30C,
-                                         &BuiltInVariable::kVar_pt30D};
-constexpr const TVariable *p30C_o_30C[2] = {&BuiltInVariable::kVar_pt30C,
-                                            &BuiltInVariable::kVar_pt_o_30C};
-constexpr const TVariable *p30C_o_30D[2] = {&BuiltInVariable::kVar_pt30C,
-                                            &BuiltInVariable::kVar_pt_o_30D};
-constexpr const TVariable *p30D00D00D[3] = {
-    &BuiltInVariable::kVar_pt30D, &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p30D30D00D00D[4] = {
-    &BuiltInVariable::kVar_pt30D, &BuiltInVariable::kVar_pt30D, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p30D30D30D[3] = {
-    &BuiltInVariable::kVar_pt30D, &BuiltInVariable::kVar_pt30D, &BuiltInVariable::kVar_pt30D};
-constexpr const TVariable *p30D30D30F[3] = {
-    &BuiltInVariable::kVar_pt30D, &BuiltInVariable::kVar_pt30D, &BuiltInVariable::kVar_pt30F};
+    &BuiltInVariable::kpt20E, &BuiltInVariable::kpt20E, &BuiltInVariable::kpt_o_20E,
+    &BuiltInVariable::kpt_o_20E};
+constexpr const TVariable *p20F20F20F[3] = {&BuiltInVariable::kpt20F, &BuiltInVariable::kpt20F,
+                                            &BuiltInVariable::kpt20F};
+constexpr const TVariable *p30B00B00B[3] = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt00B,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p30B00D[2]    = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p30B10B[2]    = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt10B};
+constexpr const TVariable *p30B20B[2]    = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt20B};
+constexpr const TVariable *p30B30B00B[3] = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt30B,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p30B30B30B[3] = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt30B,
+                                            &BuiltInVariable::kpt30B};
+constexpr const TVariable *p30B30B30F[3] = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt30B,
+                                            &BuiltInVariable::kpt30F};
+constexpr const TVariable *p30B30D[2]    = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt30D};
+constexpr const TVariable *p30B_o_30B[2] = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt_o_30B};
+constexpr const TVariable *p30B_o_30D[2] = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt_o_30D};
+constexpr const TVariable *p30C00C00C[3] = {&BuiltInVariable::kpt30C, &BuiltInVariable::kpt00C,
+                                            &BuiltInVariable::kpt00C};
+constexpr const TVariable *p30C30C00B[3] = {&BuiltInVariable::kpt30C, &BuiltInVariable::kpt30C,
+                                            &BuiltInVariable::kpt00B};
+constexpr const TVariable *p30C30C00C[3] = {&BuiltInVariable::kpt30C, &BuiltInVariable::kpt30C,
+                                            &BuiltInVariable::kpt00C};
+constexpr const TVariable *p30C30C30C[3] = {&BuiltInVariable::kpt30C, &BuiltInVariable::kpt30C,
+                                            &BuiltInVariable::kpt30C};
+constexpr const TVariable *p30C30C30F[3] = {&BuiltInVariable::kpt30C, &BuiltInVariable::kpt30C,
+                                            &BuiltInVariable::kpt30F};
+constexpr const TVariable *p30C30D[2]    = {&BuiltInVariable::kpt30C, &BuiltInVariable::kpt30D};
+constexpr const TVariable *p30C_o_30C[2] = {&BuiltInVariable::kpt30C, &BuiltInVariable::kpt_o_30C};
+constexpr const TVariable *p30C_o_30D[2] = {&BuiltInVariable::kpt30C, &BuiltInVariable::kpt_o_30D};
+constexpr const TVariable *p30D00D00D[3] = {&BuiltInVariable::kpt30D, &BuiltInVariable::kpt00D,
+                                            &BuiltInVariable::kpt00D};
+constexpr const TVariable *p30D30D00D00D[4] = {&BuiltInVariable::kpt30D, &BuiltInVariable::kpt30D,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p30D30D30D[3]    = {&BuiltInVariable::kpt30D, &BuiltInVariable::kpt30D,
+                                            &BuiltInVariable::kpt30D};
+constexpr const TVariable *p30D30D30F[3]    = {&BuiltInVariable::kpt30D, &BuiltInVariable::kpt30D,
+                                            &BuiltInVariable::kpt30F};
 constexpr const TVariable *p30D30D_o_30D_o_30D[4] = {
-    &BuiltInVariable::kVar_pt30D, &BuiltInVariable::kVar_pt30D, &BuiltInVariable::kVar_pt_o_30D,
-    &BuiltInVariable::kVar_pt_o_30D};
-constexpr const TVariable *p30E00D00D[3] = {
-    &BuiltInVariable::kVar_pt30E, &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p30E00E00E[3] = {
-    &BuiltInVariable::kVar_pt30E, &BuiltInVariable::kVar_pt00E, &BuiltInVariable::kVar_pt00E};
-constexpr const TVariable *p30E30E00D00D[4] = {
-    &BuiltInVariable::kVar_pt30E, &BuiltInVariable::kVar_pt30E, &BuiltInVariable::kVar_pt00D,
-    &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p30E30E30E[3] = {
-    &BuiltInVariable::kVar_pt30E, &BuiltInVariable::kVar_pt30E, &BuiltInVariable::kVar_pt30E};
-constexpr const TVariable *p30E30E30F[3] = {
-    &BuiltInVariable::kVar_pt30E, &BuiltInVariable::kVar_pt30E, &BuiltInVariable::kVar_pt30F};
+    &BuiltInVariable::kpt30D, &BuiltInVariable::kpt30D, &BuiltInVariable::kpt_o_30D,
+    &BuiltInVariable::kpt_o_30D};
+constexpr const TVariable *p30E00D00D[3]    = {&BuiltInVariable::kpt30E, &BuiltInVariable::kpt00D,
+                                            &BuiltInVariable::kpt00D};
+constexpr const TVariable *p30E00E00E[3]    = {&BuiltInVariable::kpt30E, &BuiltInVariable::kpt00E,
+                                            &BuiltInVariable::kpt00E};
+constexpr const TVariable *p30E30E00D00D[4] = {&BuiltInVariable::kpt30E, &BuiltInVariable::kpt30E,
+                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p30E30E30E[3]    = {&BuiltInVariable::kpt30E, &BuiltInVariable::kpt30E,
+                                            &BuiltInVariable::kpt30E};
+constexpr const TVariable *p30E30E30F[3]    = {&BuiltInVariable::kpt30E, &BuiltInVariable::kpt30E,
+                                            &BuiltInVariable::kpt30F};
 constexpr const TVariable *p30E30E_o_30E_o_30E[4] = {
-    &BuiltInVariable::kVar_pt30E, &BuiltInVariable::kVar_pt30E, &BuiltInVariable::kVar_pt_o_30E,
-    &BuiltInVariable::kVar_pt_o_30E};
-constexpr const TVariable *p30F30F30F[3] = {
-    &BuiltInVariable::kVar_pt30F, &BuiltInVariable::kVar_pt30F, &BuiltInVariable::kVar_pt30F};
-constexpr const TVariable *p50B50B[2]        = {&BuiltInVariable::kVar_pt50B,
-                                         &BuiltInVariable::kVar_pt50B};
-constexpr const TVariable *p60B60B[2]        = {&BuiltInVariable::kVar_pt60B,
-                                         &BuiltInVariable::kVar_pt60B};
-constexpr const TVariable *p70B70B[2]        = {&BuiltInVariable::kVar_pt70B,
-                                         &BuiltInVariable::kVar_pt70B};
-constexpr const TVariable *p90B90B[2]        = {&BuiltInVariable::kVar_pt90B,
-                                         &BuiltInVariable::kVar_pt90B};
-constexpr const TVariable *pA0BA0B[2]        = {&BuiltInVariable::kVar_ptA0B,
-                                         &BuiltInVariable::kVar_ptA0B};
-constexpr const TVariable *pB0BB0B[2]        = {&BuiltInVariable::kVar_ptB0B,
-                                         &BuiltInVariable::kVar_ptB0B};
-constexpr const TVariable *pD0BD0B[2]        = {&BuiltInVariable::kVar_ptD0B,
-                                         &BuiltInVariable::kVar_ptD0B};
-constexpr const TVariable *pE0BE0B[2]        = {&BuiltInVariable::kVar_ptE0B,
-                                         &BuiltInVariable::kVar_ptE0B};
-constexpr const TVariable *pF0BF0B[2]        = {&BuiltInVariable::kVar_ptF0B,
-                                         &BuiltInVariable::kVar_ptF0B};
-constexpr const TVariable *p_io_00D00D00D[3] = {
-    &BuiltInVariable::kVar_pt_io_00D, &BuiltInVariable::kVar_pt00D, &BuiltInVariable::kVar_pt00D};
-constexpr const TVariable *p_io_00E00E00E[3] = {
-    &BuiltInVariable::kVar_pt_io_00E, &BuiltInVariable::kVar_pt00E, &BuiltInVariable::kVar_pt00E};
+    &BuiltInVariable::kpt30E, &BuiltInVariable::kpt30E, &BuiltInVariable::kpt_o_30E,
+    &BuiltInVariable::kpt_o_30E};
+constexpr const TVariable *p30F30F30F[3]     = {&BuiltInVariable::kpt30F, &BuiltInVariable::kpt30F,
+                                            &BuiltInVariable::kpt30F};
+constexpr const TVariable *p50B50B[2]        = {&BuiltInVariable::kpt50B, &BuiltInVariable::kpt50B};
+constexpr const TVariable *p60B60B[2]        = {&BuiltInVariable::kpt60B, &BuiltInVariable::kpt60B};
+constexpr const TVariable *p70B70B[2]        = {&BuiltInVariable::kpt70B, &BuiltInVariable::kpt70B};
+constexpr const TVariable *p90B90B[2]        = {&BuiltInVariable::kpt90B, &BuiltInVariable::kpt90B};
+constexpr const TVariable *pA0BA0B[2]        = {&BuiltInVariable::kptA0B, &BuiltInVariable::kptA0B};
+constexpr const TVariable *pB0BB0B[2]        = {&BuiltInVariable::kptB0B, &BuiltInVariable::kptB0B};
+constexpr const TVariable *pD0BD0B[2]        = {&BuiltInVariable::kptD0B, &BuiltInVariable::kptD0B};
+constexpr const TVariable *pE0BE0B[2]        = {&BuiltInVariable::kptE0B, &BuiltInVariable::kptE0B};
+constexpr const TVariable *pF0BF0B[2]        = {&BuiltInVariable::kptF0B, &BuiltInVariable::kptF0B};
+constexpr const TVariable *p_io_00D00D00D[3] = {&BuiltInVariable::kpt_io_00D,
+                                                &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
+constexpr const TVariable *p_io_00E00E00E[3] = {&BuiltInVariable::kpt_io_00E,
+                                                &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E};
 
 }  // namespace BuiltInParameters
 
-namespace UnmangledBuiltIns
-{
-
-constexpr const UnmangledBuiltIn ARB_texture_rectangle(TExtension::ARB_texture_rectangle);
-constexpr const UnmangledBuiltIn EXT_YUV_target(TExtension::EXT_YUV_target);
-constexpr const UnmangledBuiltIn EXT_shader_texture_lod(TExtension::EXT_shader_texture_lod);
-constexpr const UnmangledBuiltIn OES_EGL_image_external_essl3(
-    TExtension::OES_EGL_image_external_essl3);
-constexpr const UnmangledBuiltIn OES_texture_3D(TExtension::OES_texture_3D);
-constexpr const UnmangledBuiltIn UNDEFINED(TExtension::UNDEFINED);
-
-}  // namespace UnmangledBuiltIns
-
 // TODO(oetuaho): Would be nice to make this a class instead of a namespace so that we could friend
 // this from TFunction. Now symbol constructors taking an id have to be public even though they're
 // not supposed to be accessible from outside of here. http://anglebug.com/2390
-namespace BuiltInFunction
+namespace Func
 {
 
-constexpr const TFunction function_radians_00B(
-    BuiltInId::radians_Float1,
-    BuiltInName::radians,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpRadians,
-    true);
-constexpr const TFunction function_radians_10B(
-    BuiltInId::radians_Float2,
-    BuiltInName::radians,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B_o_10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpRadians,
-    true);
-constexpr const TFunction function_radians_20B(
-    BuiltInId::radians_Float3,
-    BuiltInName::radians,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpRadians,
-    true);
-constexpr const TFunction function_radians_30B(
-    BuiltInId::radians_Float4,
-    BuiltInName::radians,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30D,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpRadians,
-    true);
-constexpr const TFunction function_degrees_00B(
-    BuiltInId::degrees_Float1,
-    BuiltInName::degrees,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpDegrees,
-    true);
-constexpr const TFunction function_degrees_10B(
-    BuiltInId::degrees_Float2,
-    BuiltInName::degrees,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B_o_10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpDegrees,
-    true);
-constexpr const TFunction function_degrees_20B(
-    BuiltInId::degrees_Float3,
-    BuiltInName::degrees,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpDegrees,
-    true);
-constexpr const TFunction function_degrees_30B(
-    BuiltInId::degrees_Float4,
-    BuiltInName::degrees,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30D,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpDegrees,
-    true);
-constexpr const TFunction function_sin_00B(
-    BuiltInId::sin_Float1,
-    BuiltInName::sin,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpSin,
-    true);
-constexpr const TFunction function_sin_10B(
-    BuiltInId::sin_Float2,
-    BuiltInName::sin,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B_o_10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpSin,
-    true);
-constexpr const TFunction function_sin_20B(
-    BuiltInId::sin_Float3,
-    BuiltInName::sin,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpSin,
-    true);
-constexpr const TFunction function_sin_30B(
-    BuiltInId::sin_Float4,
-    BuiltInName::sin,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30D,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpSin,
-    true);
-constexpr const TFunction function_cos_00B(
-    BuiltInId::cos_Float1,
-    BuiltInName::cos,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpCos,
-    true);
-constexpr const TFunction function_cos_10B(
-    BuiltInId::cos_Float2,
-    BuiltInName::cos,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B_o_10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpCos,
-    true);
-constexpr const TFunction function_cos_20B(
-    BuiltInId::cos_Float3,
-    BuiltInName::cos,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpCos,
-    true);
-constexpr const TFunction function_cos_30B(
-    BuiltInId::cos_Float4,
-    BuiltInName::cos,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30D,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCos,
-    true);
-constexpr const TFunction function_tan_00B(
-    BuiltInId::tan_Float1,
-    BuiltInName::tan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpTan,
-    true);
-constexpr const TFunction function_tan_10B(
-    BuiltInId::tan_Float2,
-    BuiltInName::tan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B_o_10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpTan,
-    true);
-constexpr const TFunction function_tan_20B(
-    BuiltInId::tan_Float3,
-    BuiltInName::tan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpTan,
-    true);
-constexpr const TFunction function_tan_30B(
-    BuiltInId::tan_Float4,
-    BuiltInName::tan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30D,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpTan,
-    true);
-constexpr const TFunction function_asin_00B(
-    BuiltInId::asin_Float1,
-    BuiltInName::asin,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpAsin,
-    true);
-constexpr const TFunction function_asin_10B(
-    BuiltInId::asin_Float2,
-    BuiltInName::asin,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B_o_10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpAsin,
-    true);
-constexpr const TFunction function_asin_20B(
-    BuiltInId::asin_Float3,
-    BuiltInName::asin,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpAsin,
-    true);
-constexpr const TFunction function_asin_30B(
-    BuiltInId::asin_Float4,
-    BuiltInName::asin,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30D,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpAsin,
-    true);
-constexpr const TFunction function_acos_00B(
-    BuiltInId::acos_Float1,
-    BuiltInName::acos,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpAcos,
-    true);
-constexpr const TFunction function_acos_10B(
-    BuiltInId::acos_Float2,
-    BuiltInName::acos,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B_o_10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpAcos,
-    true);
-constexpr const TFunction function_acos_20B(
-    BuiltInId::acos_Float3,
-    BuiltInName::acos,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpAcos,
-    true);
-constexpr const TFunction function_acos_30B(
-    BuiltInId::acos_Float4,
-    BuiltInName::acos,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30D,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpAcos,
-    true);
-constexpr const TFunction function_atan_00B00B(
-    BuiltInId::atan_Float1_Float1,
-    BuiltInName::atan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpAtan,
-    true);
-constexpr const TFunction function_atan_10B10B(
-    BuiltInId::atan_Float2_Float2,
-    BuiltInName::atan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B10B00B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpAtan,
-    true);
-constexpr const TFunction function_atan_20B20B(
-    BuiltInId::atan_Float3_Float3,
-    BuiltInName::atan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpAtan,
-    true);
-constexpr const TFunction function_atan_30B30B(
-    BuiltInId::atan_Float4_Float4,
-    BuiltInName::atan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30B30F,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpAtan,
-    true);
-constexpr const TFunction function_atan_00B(
-    BuiltInId::atan_Float1,
-    BuiltInName::atan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpAtan,
-    true);
-constexpr const TFunction function_atan_10B(
-    BuiltInId::atan_Float2,
-    BuiltInName::atan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B_o_10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpAtan,
-    true);
-constexpr const TFunction function_atan_20B(
-    BuiltInId::atan_Float3,
-    BuiltInName::atan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpAtan,
-    true);
-constexpr const TFunction function_atan_30B(
-    BuiltInId::atan_Float4,
-    BuiltInName::atan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30D,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpAtan,
-    true);
-constexpr const TFunction function_sinh_00B(
-    BuiltInId::sinh_Float1,
-    BuiltInName::sinh,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpSinh,
-    true);
-constexpr const TFunction function_sinh_10B(
-    BuiltInId::sinh_Float2,
-    BuiltInName::sinh,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B_o_10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpSinh,
-    true);
-constexpr const TFunction function_sinh_20B(
-    BuiltInId::sinh_Float3,
-    BuiltInName::sinh,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpSinh,
-    true);
-constexpr const TFunction function_sinh_30B(
-    BuiltInId::sinh_Float4,
-    BuiltInName::sinh,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30D,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpSinh,
-    true);
-constexpr const TFunction function_cosh_00B(
-    BuiltInId::cosh_Float1,
-    BuiltInName::cosh,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpCosh,
-    true);
-constexpr const TFunction function_cosh_10B(
-    BuiltInId::cosh_Float2,
-    BuiltInName::cosh,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B_o_10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpCosh,
-    true);
-constexpr const TFunction function_cosh_20B(
-    BuiltInId::cosh_Float3,
-    BuiltInName::cosh,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpCosh,
-    true);
-constexpr const TFunction function_cosh_30B(
-    BuiltInId::cosh_Float4,
-    BuiltInName::cosh,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30D,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCosh,
-    true);
-constexpr const TFunction function_tanh_00B(
-    BuiltInId::tanh_Float1,
-    BuiltInName::tanh,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpTanh,
-    true);
-constexpr const TFunction function_tanh_10B(
-    BuiltInId::tanh_Float2,
-    BuiltInName::tanh,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B_o_10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpTanh,
-    true);
-constexpr const TFunction function_tanh_20B(
-    BuiltInId::tanh_Float3,
-    BuiltInName::tanh,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpTanh,
-    true);
-constexpr const TFunction function_tanh_30B(
-    BuiltInId::tanh_Float4,
-    BuiltInName::tanh,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30D,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpTanh,
-    true);
-constexpr const TFunction function_asinh_00B(
-    BuiltInId::asinh_Float1,
-    BuiltInName::asinh,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpAsinh,
-    true);
-constexpr const TFunction function_asinh_10B(
-    BuiltInId::asinh_Float2,
-    BuiltInName::asinh,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B_o_10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpAsinh,
-    true);
-constexpr const TFunction function_asinh_20B(
-    BuiltInId::asinh_Float3,
-    BuiltInName::asinh,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpAsinh,
-    true);
-constexpr const TFunction function_asinh_30B(
-    BuiltInId::asinh_Float4,
-    BuiltInName::asinh,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30D,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpAsinh,
-    true);
-constexpr const TFunction function_acosh_00B(
-    BuiltInId::acosh_Float1,
-    BuiltInName::acosh,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpAcosh,
-    true);
-constexpr const TFunction function_acosh_10B(
-    BuiltInId::acosh_Float2,
-    BuiltInName::acosh,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B_o_10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpAcosh,
-    true);
-constexpr const TFunction function_acosh_20B(
-    BuiltInId::acosh_Float3,
-    BuiltInName::acosh,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpAcosh,
-    true);
-constexpr const TFunction function_acosh_30B(
-    BuiltInId::acosh_Float4,
-    BuiltInName::acosh,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30D,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpAcosh,
-    true);
-constexpr const TFunction function_atanh_00B(
-    BuiltInId::atanh_Float1,
-    BuiltInName::atanh,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpAtanh,
-    true);
-constexpr const TFunction function_atanh_10B(
-    BuiltInId::atanh_Float2,
-    BuiltInName::atanh,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B_o_10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpAtanh,
-    true);
-constexpr const TFunction function_atanh_20B(
-    BuiltInId::atanh_Float3,
-    BuiltInName::atanh,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpAtanh,
-    true);
-constexpr const TFunction function_atanh_30B(
-    BuiltInId::atanh_Float4,
-    BuiltInName::atanh,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30D,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpAtanh,
-    true);
-constexpr const TFunction function_pow_00B00B(
-    BuiltInId::pow_Float1_Float1,
-    BuiltInName::pow,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpPow,
-    true);
-constexpr const TFunction function_pow_10B10B(
-    BuiltInId::pow_Float2_Float2,
-    BuiltInName::pow,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B10B00B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpPow,
-    true);
-constexpr const TFunction function_pow_20B20B(
-    BuiltInId::pow_Float3_Float3,
-    BuiltInName::pow,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpPow,
-    true);
-constexpr const TFunction function_pow_30B30B(
-    BuiltInId::pow_Float4_Float4,
-    BuiltInName::pow,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30B30F,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpPow,
-    true);
-constexpr const TFunction function_exp_00B(
-    BuiltInId::exp_Float1,
-    BuiltInName::exp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpExp,
-    true);
-constexpr const TFunction function_exp_10B(
-    BuiltInId::exp_Float2,
-    BuiltInName::exp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B_o_10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpExp,
-    true);
-constexpr const TFunction function_exp_20B(
-    BuiltInId::exp_Float3,
-    BuiltInName::exp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpExp,
-    true);
-constexpr const TFunction function_exp_30B(
-    BuiltInId::exp_Float4,
-    BuiltInName::exp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30D,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpExp,
-    true);
-constexpr const TFunction function_log_00B(
-    BuiltInId::log_Float1,
-    BuiltInName::log,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpLog,
-    true);
-constexpr const TFunction function_log_10B(
-    BuiltInId::log_Float2,
-    BuiltInName::log,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B_o_10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpLog,
-    true);
-constexpr const TFunction function_log_20B(
-    BuiltInId::log_Float3,
-    BuiltInName::log,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpLog,
-    true);
-constexpr const TFunction function_log_30B(
-    BuiltInId::log_Float4,
-    BuiltInName::log,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30D,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpLog,
-    true);
-constexpr const TFunction function_exp2_00B(
-    BuiltInId::exp2_Float1,
-    BuiltInName::exp2,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpExp2,
-    true);
-constexpr const TFunction function_exp2_10B(
-    BuiltInId::exp2_Float2,
-    BuiltInName::exp2,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B_o_10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpExp2,
-    true);
-constexpr const TFunction function_exp2_20B(
-    BuiltInId::exp2_Float3,
-    BuiltInName::exp2,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpExp2,
-    true);
-constexpr const TFunction function_exp2_30B(
-    BuiltInId::exp2_Float4,
-    BuiltInName::exp2,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30D,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpExp2,
-    true);
-constexpr const TFunction function_log2_00B(
-    BuiltInId::log2_Float1,
-    BuiltInName::log2,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpLog2,
-    true);
-constexpr const TFunction function_log2_10B(
-    BuiltInId::log2_Float2,
-    BuiltInName::log2,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B_o_10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpLog2,
-    true);
-constexpr const TFunction function_log2_20B(
-    BuiltInId::log2_Float3,
-    BuiltInName::log2,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpLog2,
-    true);
-constexpr const TFunction function_log2_30B(
-    BuiltInId::log2_Float4,
-    BuiltInName::log2,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30D,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpLog2,
-    true);
-constexpr const TFunction function_sqrt_00B(
-    BuiltInId::sqrt_Float1,
-    BuiltInName::sqrt,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpSqrt,
-    true);
-constexpr const TFunction function_sqrt_10B(
-    BuiltInId::sqrt_Float2,
-    BuiltInName::sqrt,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B_o_10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpSqrt,
-    true);
-constexpr const TFunction function_sqrt_20B(
-    BuiltInId::sqrt_Float3,
-    BuiltInName::sqrt,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpSqrt,
-    true);
-constexpr const TFunction function_sqrt_30B(
-    BuiltInId::sqrt_Float4,
-    BuiltInName::sqrt,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30D,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpSqrt,
-    true);
-constexpr const TFunction function_sqrt_00C(
-    BuiltInId::sqrt_Double1,
-    BuiltInName::sqrt,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00C10C,
-    1,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpSqrt,
-    true);
-constexpr const TFunction function_sqrt_10C(
-    BuiltInId::sqrt_Double2,
-    BuiltInName::sqrt,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10C_o_10C,
-    1,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpSqrt,
-    true);
-constexpr const TFunction function_sqrt_20C(
-    BuiltInId::sqrt_Double3,
-    BuiltInName::sqrt,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20C20C20F,
-    1,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpSqrt,
-    true);
-constexpr const TFunction function_sqrt_30C(
-    BuiltInId::sqrt_Double4,
-    BuiltInName::sqrt,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30C30C00B,
-    1,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpSqrt,
-    true);
-constexpr const TFunction function_inversesqrt_00B(
+constexpr const TFunction radians_00B(BuiltInId::radians_Float1,
+                                      BuiltInName::radians,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p00B00B30B,
+                                      1,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                      EOpRadians,
+                                      true);
+constexpr const TFunction radians_10B(BuiltInId::radians_Float2,
+                                      BuiltInName::radians,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p10B_o_10B,
+                                      1,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                      EOpRadians,
+                                      true);
+constexpr const TFunction radians_20B(BuiltInId::radians_Float3,
+                                      BuiltInName::radians,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p20B20B00B,
+                                      1,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                      EOpRadians,
+                                      true);
+constexpr const TFunction radians_30B(BuiltInId::radians_Float4,
+                                      BuiltInName::radians,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p30B30D,
+                                      1,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                      EOpRadians,
+                                      true);
+constexpr const TFunction degrees_00B(BuiltInId::degrees_Float1,
+                                      BuiltInName::degrees,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p00B00B30B,
+                                      1,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                      EOpDegrees,
+                                      true);
+constexpr const TFunction degrees_10B(BuiltInId::degrees_Float2,
+                                      BuiltInName::degrees,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p10B_o_10B,
+                                      1,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                      EOpDegrees,
+                                      true);
+constexpr const TFunction degrees_20B(BuiltInId::degrees_Float3,
+                                      BuiltInName::degrees,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p20B20B00B,
+                                      1,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                      EOpDegrees,
+                                      true);
+constexpr const TFunction degrees_30B(BuiltInId::degrees_Float4,
+                                      BuiltInName::degrees,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p30B30D,
+                                      1,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                      EOpDegrees,
+                                      true);
+constexpr const TFunction sin_00B(BuiltInId::sin_Float1,
+                                  BuiltInName::sin,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p00B00B30B,
+                                  1,
+                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                  EOpSin,
+                                  true);
+constexpr const TFunction sin_10B(BuiltInId::sin_Float2,
+                                  BuiltInName::sin,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p10B_o_10B,
+                                  1,
+                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                  EOpSin,
+                                  true);
+constexpr const TFunction sin_20B(BuiltInId::sin_Float3,
+                                  BuiltInName::sin,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p20B20B00B,
+                                  1,
+                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                  EOpSin,
+                                  true);
+constexpr const TFunction sin_30B(BuiltInId::sin_Float4,
+                                  BuiltInName::sin,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p30B30D,
+                                  1,
+                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                  EOpSin,
+                                  true);
+constexpr const TFunction cos_00B(BuiltInId::cos_Float1,
+                                  BuiltInName::cos,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p00B00B30B,
+                                  1,
+                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                  EOpCos,
+                                  true);
+constexpr const TFunction cos_10B(BuiltInId::cos_Float2,
+                                  BuiltInName::cos,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p10B_o_10B,
+                                  1,
+                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                  EOpCos,
+                                  true);
+constexpr const TFunction cos_20B(BuiltInId::cos_Float3,
+                                  BuiltInName::cos,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p20B20B00B,
+                                  1,
+                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                  EOpCos,
+                                  true);
+constexpr const TFunction cos_30B(BuiltInId::cos_Float4,
+                                  BuiltInName::cos,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p30B30D,
+                                  1,
+                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                  EOpCos,
+                                  true);
+constexpr const TFunction tan_00B(BuiltInId::tan_Float1,
+                                  BuiltInName::tan,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p00B00B30B,
+                                  1,
+                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                  EOpTan,
+                                  true);
+constexpr const TFunction tan_10B(BuiltInId::tan_Float2,
+                                  BuiltInName::tan,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p10B_o_10B,
+                                  1,
+                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                  EOpTan,
+                                  true);
+constexpr const TFunction tan_20B(BuiltInId::tan_Float3,
+                                  BuiltInName::tan,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p20B20B00B,
+                                  1,
+                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                  EOpTan,
+                                  true);
+constexpr const TFunction tan_30B(BuiltInId::tan_Float4,
+                                  BuiltInName::tan,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p30B30D,
+                                  1,
+                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                  EOpTan,
+                                  true);
+constexpr const TFunction asin_00B(BuiltInId::asin_Float1,
+                                   BuiltInName::asin,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p00B00B30B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                   EOpAsin,
+                                   true);
+constexpr const TFunction asin_10B(BuiltInId::asin_Float2,
+                                   BuiltInName::asin,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p10B_o_10B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                   EOpAsin,
+                                   true);
+constexpr const TFunction asin_20B(BuiltInId::asin_Float3,
+                                   BuiltInName::asin,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p20B20B00B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                   EOpAsin,
+                                   true);
+constexpr const TFunction asin_30B(BuiltInId::asin_Float4,
+                                   BuiltInName::asin,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p30B30D,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                   EOpAsin,
+                                   true);
+constexpr const TFunction acos_00B(BuiltInId::acos_Float1,
+                                   BuiltInName::acos,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p00B00B30B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                   EOpAcos,
+                                   true);
+constexpr const TFunction acos_10B(BuiltInId::acos_Float2,
+                                   BuiltInName::acos,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p10B_o_10B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                   EOpAcos,
+                                   true);
+constexpr const TFunction acos_20B(BuiltInId::acos_Float3,
+                                   BuiltInName::acos,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p20B20B00B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                   EOpAcos,
+                                   true);
+constexpr const TFunction acos_30B(BuiltInId::acos_Float4,
+                                   BuiltInName::acos,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p30B30D,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                   EOpAcos,
+                                   true);
+constexpr const TFunction atan_00B00B(BuiltInId::atan_Float1_Float1,
+                                      BuiltInName::atan,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p00B00B30B,
+                                      2,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                      EOpAtan,
+                                      true);
+constexpr const TFunction atan_10B10B(BuiltInId::atan_Float2_Float2,
+                                      BuiltInName::atan,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p10B10B00B,
+                                      2,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                      EOpAtan,
+                                      true);
+constexpr const TFunction atan_20B20B(BuiltInId::atan_Float3_Float3,
+                                      BuiltInName::atan,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p20B20B00B,
+                                      2,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                      EOpAtan,
+                                      true);
+constexpr const TFunction atan_30B30B(BuiltInId::atan_Float4_Float4,
+                                      BuiltInName::atan,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p30B30B30F,
+                                      2,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                      EOpAtan,
+                                      true);
+constexpr const TFunction atan_00B(BuiltInId::atan_Float1,
+                                   BuiltInName::atan,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p00B00B30B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                   EOpAtan,
+                                   true);
+constexpr const TFunction atan_10B(BuiltInId::atan_Float2,
+                                   BuiltInName::atan,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p10B_o_10B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                   EOpAtan,
+                                   true);
+constexpr const TFunction atan_20B(BuiltInId::atan_Float3,
+                                   BuiltInName::atan,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p20B20B00B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                   EOpAtan,
+                                   true);
+constexpr const TFunction atan_30B(BuiltInId::atan_Float4,
+                                   BuiltInName::atan,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p30B30D,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                   EOpAtan,
+                                   true);
+constexpr const TFunction sinh_00B(BuiltInId::sinh_Float1,
+                                   BuiltInName::sinh,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p00B00B30B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                   EOpSinh,
+                                   true);
+constexpr const TFunction sinh_10B(BuiltInId::sinh_Float2,
+                                   BuiltInName::sinh,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p10B_o_10B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                   EOpSinh,
+                                   true);
+constexpr const TFunction sinh_20B(BuiltInId::sinh_Float3,
+                                   BuiltInName::sinh,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p20B20B00B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                   EOpSinh,
+                                   true);
+constexpr const TFunction sinh_30B(BuiltInId::sinh_Float4,
+                                   BuiltInName::sinh,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p30B30D,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                   EOpSinh,
+                                   true);
+constexpr const TFunction cosh_00B(BuiltInId::cosh_Float1,
+                                   BuiltInName::cosh,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p00B00B30B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                   EOpCosh,
+                                   true);
+constexpr const TFunction cosh_10B(BuiltInId::cosh_Float2,
+                                   BuiltInName::cosh,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p10B_o_10B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                   EOpCosh,
+                                   true);
+constexpr const TFunction cosh_20B(BuiltInId::cosh_Float3,
+                                   BuiltInName::cosh,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p20B20B00B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                   EOpCosh,
+                                   true);
+constexpr const TFunction cosh_30B(BuiltInId::cosh_Float4,
+                                   BuiltInName::cosh,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p30B30D,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                   EOpCosh,
+                                   true);
+constexpr const TFunction tanh_00B(BuiltInId::tanh_Float1,
+                                   BuiltInName::tanh,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p00B00B30B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                   EOpTanh,
+                                   true);
+constexpr const TFunction tanh_10B(BuiltInId::tanh_Float2,
+                                   BuiltInName::tanh,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p10B_o_10B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                   EOpTanh,
+                                   true);
+constexpr const TFunction tanh_20B(BuiltInId::tanh_Float3,
+                                   BuiltInName::tanh,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p20B20B00B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                   EOpTanh,
+                                   true);
+constexpr const TFunction tanh_30B(BuiltInId::tanh_Float4,
+                                   BuiltInName::tanh,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p30B30D,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                   EOpTanh,
+                                   true);
+constexpr const TFunction asinh_00B(BuiltInId::asinh_Float1,
+                                    BuiltInName::asinh,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p00B00B30B,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                    EOpAsinh,
+                                    true);
+constexpr const TFunction asinh_10B(BuiltInId::asinh_Float2,
+                                    BuiltInName::asinh,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p10B_o_10B,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                    EOpAsinh,
+                                    true);
+constexpr const TFunction asinh_20B(BuiltInId::asinh_Float3,
+                                    BuiltInName::asinh,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p20B20B00B,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                    EOpAsinh,
+                                    true);
+constexpr const TFunction asinh_30B(BuiltInId::asinh_Float4,
+                                    BuiltInName::asinh,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p30B30D,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                    EOpAsinh,
+                                    true);
+constexpr const TFunction acosh_00B(BuiltInId::acosh_Float1,
+                                    BuiltInName::acosh,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p00B00B30B,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                    EOpAcosh,
+                                    true);
+constexpr const TFunction acosh_10B(BuiltInId::acosh_Float2,
+                                    BuiltInName::acosh,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p10B_o_10B,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                    EOpAcosh,
+                                    true);
+constexpr const TFunction acosh_20B(BuiltInId::acosh_Float3,
+                                    BuiltInName::acosh,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p20B20B00B,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                    EOpAcosh,
+                                    true);
+constexpr const TFunction acosh_30B(BuiltInId::acosh_Float4,
+                                    BuiltInName::acosh,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p30B30D,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                    EOpAcosh,
+                                    true);
+constexpr const TFunction atanh_00B(BuiltInId::atanh_Float1,
+                                    BuiltInName::atanh,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p00B00B30B,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                    EOpAtanh,
+                                    true);
+constexpr const TFunction atanh_10B(BuiltInId::atanh_Float2,
+                                    BuiltInName::atanh,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p10B_o_10B,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                    EOpAtanh,
+                                    true);
+constexpr const TFunction atanh_20B(BuiltInId::atanh_Float3,
+                                    BuiltInName::atanh,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p20B20B00B,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                    EOpAtanh,
+                                    true);
+constexpr const TFunction atanh_30B(BuiltInId::atanh_Float4,
+                                    BuiltInName::atanh,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p30B30D,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                    EOpAtanh,
+                                    true);
+constexpr const TFunction pow_00B00B(BuiltInId::pow_Float1_Float1,
+                                     BuiltInName::pow,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p00B00B30B,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                     EOpPow,
+                                     true);
+constexpr const TFunction pow_10B10B(BuiltInId::pow_Float2_Float2,
+                                     BuiltInName::pow,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p10B10B00B,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                     EOpPow,
+                                     true);
+constexpr const TFunction pow_20B20B(BuiltInId::pow_Float3_Float3,
+                                     BuiltInName::pow,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p20B20B00B,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                     EOpPow,
+                                     true);
+constexpr const TFunction pow_30B30B(BuiltInId::pow_Float4_Float4,
+                                     BuiltInName::pow,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p30B30B30F,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                     EOpPow,
+                                     true);
+constexpr const TFunction exp_00B(BuiltInId::exp_Float1,
+                                  BuiltInName::exp,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p00B00B30B,
+                                  1,
+                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                  EOpExp,
+                                  true);
+constexpr const TFunction exp_10B(BuiltInId::exp_Float2,
+                                  BuiltInName::exp,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p10B_o_10B,
+                                  1,
+                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                  EOpExp,
+                                  true);
+constexpr const TFunction exp_20B(BuiltInId::exp_Float3,
+                                  BuiltInName::exp,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p20B20B00B,
+                                  1,
+                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                  EOpExp,
+                                  true);
+constexpr const TFunction exp_30B(BuiltInId::exp_Float4,
+                                  BuiltInName::exp,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p30B30D,
+                                  1,
+                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                  EOpExp,
+                                  true);
+constexpr const TFunction log_00B(BuiltInId::log_Float1,
+                                  BuiltInName::log,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p00B00B30B,
+                                  1,
+                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                  EOpLog,
+                                  true);
+constexpr const TFunction log_10B(BuiltInId::log_Float2,
+                                  BuiltInName::log,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p10B_o_10B,
+                                  1,
+                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                  EOpLog,
+                                  true);
+constexpr const TFunction log_20B(BuiltInId::log_Float3,
+                                  BuiltInName::log,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p20B20B00B,
+                                  1,
+                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                  EOpLog,
+                                  true);
+constexpr const TFunction log_30B(BuiltInId::log_Float4,
+                                  BuiltInName::log,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p30B30D,
+                                  1,
+                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                  EOpLog,
+                                  true);
+constexpr const TFunction exp2_00B(BuiltInId::exp2_Float1,
+                                   BuiltInName::exp2,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p00B00B30B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                   EOpExp2,
+                                   true);
+constexpr const TFunction exp2_10B(BuiltInId::exp2_Float2,
+                                   BuiltInName::exp2,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p10B_o_10B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                   EOpExp2,
+                                   true);
+constexpr const TFunction exp2_20B(BuiltInId::exp2_Float3,
+                                   BuiltInName::exp2,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p20B20B00B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                   EOpExp2,
+                                   true);
+constexpr const TFunction exp2_30B(BuiltInId::exp2_Float4,
+                                   BuiltInName::exp2,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p30B30D,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                   EOpExp2,
+                                   true);
+constexpr const TFunction log2_00B(BuiltInId::log2_Float1,
+                                   BuiltInName::log2,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p00B00B30B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                   EOpLog2,
+                                   true);
+constexpr const TFunction log2_10B(BuiltInId::log2_Float2,
+                                   BuiltInName::log2,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p10B_o_10B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                   EOpLog2,
+                                   true);
+constexpr const TFunction log2_20B(BuiltInId::log2_Float3,
+                                   BuiltInName::log2,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p20B20B00B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                   EOpLog2,
+                                   true);
+constexpr const TFunction log2_30B(BuiltInId::log2_Float4,
+                                   BuiltInName::log2,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p30B30D,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                   EOpLog2,
+                                   true);
+constexpr const TFunction sqrt_00B(BuiltInId::sqrt_Float1,
+                                   BuiltInName::sqrt,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p00B00B30B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                   EOpSqrt,
+                                   true);
+constexpr const TFunction sqrt_10B(BuiltInId::sqrt_Float2,
+                                   BuiltInName::sqrt,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p10B_o_10B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                   EOpSqrt,
+                                   true);
+constexpr const TFunction sqrt_20B(BuiltInId::sqrt_Float3,
+                                   BuiltInName::sqrt,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p20B20B00B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                   EOpSqrt,
+                                   true);
+constexpr const TFunction sqrt_30B(BuiltInId::sqrt_Float4,
+                                   BuiltInName::sqrt,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p30B30D,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                   EOpSqrt,
+                                   true);
+constexpr const TFunction sqrt_00C(BuiltInId::sqrt_Double1,
+                                   BuiltInName::sqrt,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p00C10C,
+                                   1,
+                                   StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
+                                   EOpSqrt,
+                                   true);
+constexpr const TFunction sqrt_10C(BuiltInId::sqrt_Double2,
+                                   BuiltInName::sqrt,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p10C_o_10C,
+                                   1,
+                                   StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
+                                   EOpSqrt,
+                                   true);
+constexpr const TFunction sqrt_20C(BuiltInId::sqrt_Double3,
+                                   BuiltInName::sqrt,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p20C20C20F,
+                                   1,
+                                   StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
+                                   EOpSqrt,
+                                   true);
+constexpr const TFunction sqrt_30C(BuiltInId::sqrt_Double4,
+                                   BuiltInName::sqrt,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p30C30C00B,
+                                   1,
+                                   StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
+                                   EOpSqrt,
+                                   true);
+constexpr const TFunction inversesqrt_00B(
     BuiltInId::inversesqrt_Float1,
     BuiltInName::inversesqrt,
     TExtension::UNDEFINED,
@@ -5830,7 +5402,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpInversesqrt,
     true);
-constexpr const TFunction function_inversesqrt_10B(
+constexpr const TFunction inversesqrt_10B(
     BuiltInId::inversesqrt_Float2,
     BuiltInName::inversesqrt,
     TExtension::UNDEFINED,
@@ -5839,7 +5411,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpInversesqrt,
     true);
-constexpr const TFunction function_inversesqrt_20B(
+constexpr const TFunction inversesqrt_20B(
     BuiltInId::inversesqrt_Float3,
     BuiltInName::inversesqrt,
     TExtension::UNDEFINED,
@@ -5848,7 +5420,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpInversesqrt,
     true);
-constexpr const TFunction function_inversesqrt_30B(
+constexpr const TFunction inversesqrt_30B(
     BuiltInId::inversesqrt_Float4,
     BuiltInName::inversesqrt,
     TExtension::UNDEFINED,
@@ -5857,7 +5429,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpInversesqrt,
     true);
-constexpr const TFunction function_inversesqrt_00C(
+constexpr const TFunction inversesqrt_00C(
     BuiltInId::inversesqrt_Double1,
     BuiltInName::inversesqrt,
     TExtension::UNDEFINED,
@@ -5866,7 +5438,7 @@
     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpInversesqrt,
     true);
-constexpr const TFunction function_inversesqrt_10C(
+constexpr const TFunction inversesqrt_10C(
     BuiltInId::inversesqrt_Double2,
     BuiltInName::inversesqrt,
     TExtension::UNDEFINED,
@@ -5875,7 +5447,7 @@
     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpInversesqrt,
     true);
-constexpr const TFunction function_inversesqrt_20C(
+constexpr const TFunction inversesqrt_20C(
     BuiltInId::inversesqrt_Double3,
     BuiltInName::inversesqrt,
     TExtension::UNDEFINED,
@@ -5884,7 +5456,7 @@
     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpInversesqrt,
     true);
-constexpr const TFunction function_inversesqrt_30C(
+constexpr const TFunction inversesqrt_30C(
     BuiltInId::inversesqrt_Double4,
     BuiltInName::inversesqrt,
     TExtension::UNDEFINED,
@@ -5893,1281 +5465,1143 @@
     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpInversesqrt,
     true);
-constexpr const TFunction function_abs_00B(
-    BuiltInId::abs_Float1,
-    BuiltInName::abs,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpAbs,
-    true);
-constexpr const TFunction function_abs_10B(
-    BuiltInId::abs_Float2,
-    BuiltInName::abs,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B_o_10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpAbs,
-    true);
-constexpr const TFunction function_abs_20B(
-    BuiltInId::abs_Float3,
-    BuiltInName::abs,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpAbs,
-    true);
-constexpr const TFunction function_abs_30B(
-    BuiltInId::abs_Float4,
-    BuiltInName::abs,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30D,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpAbs,
-    true);
-constexpr const TFunction function_abs_00D(BuiltInId::abs_Int1,
-                                           BuiltInName::abs,
-                                           TExtension::UNDEFINED,
-                                           BuiltInParameters::p00D00D_o_00D_o_00D,
-                                           1,
-                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
-                                           EOpAbs,
-                                           true);
-constexpr const TFunction function_abs_10D(BuiltInId::abs_Int2,
-                                           BuiltInName::abs,
-                                           TExtension::UNDEFINED,
-                                           BuiltInParameters::p10D10D_o_10D_o_10D,
-                                           1,
-                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-                                           EOpAbs,
-                                           true);
-constexpr const TFunction function_abs_20D(BuiltInId::abs_Int3,
-                                           BuiltInName::abs,
-                                           TExtension::UNDEFINED,
-                                           BuiltInParameters::p20D20D00D00D,
-                                           1,
-                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
-                                           EOpAbs,
-                                           true);
-constexpr const TFunction function_abs_30D(BuiltInId::abs_Int4,
-                                           BuiltInName::abs,
-                                           TExtension::UNDEFINED,
-                                           BuiltInParameters::p30D30D30F,
-                                           1,
-                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-                                           EOpAbs,
-                                           true);
-constexpr const TFunction function_abs_00C(
-    BuiltInId::abs_Double1,
-    BuiltInName::abs,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00C10C,
-    1,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpAbs,
-    true);
-constexpr const TFunction function_abs_10C(
-    BuiltInId::abs_Double2,
-    BuiltInName::abs,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10C_o_10C,
-    1,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpAbs,
-    true);
-constexpr const TFunction function_abs_20C(
-    BuiltInId::abs_Double3,
-    BuiltInName::abs,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20C20C20F,
-    1,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpAbs,
-    true);
-constexpr const TFunction function_abs_30C(
-    BuiltInId::abs_Double4,
-    BuiltInName::abs,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30C30C00B,
-    1,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpAbs,
-    true);
-constexpr const TFunction function_sign_00B(
-    BuiltInId::sign_Float1,
-    BuiltInName::sign,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpSign,
-    true);
-constexpr const TFunction function_sign_10B(
-    BuiltInId::sign_Float2,
-    BuiltInName::sign,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B_o_10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpSign,
-    true);
-constexpr const TFunction function_sign_20B(
-    BuiltInId::sign_Float3,
-    BuiltInName::sign,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpSign,
-    true);
-constexpr const TFunction function_sign_30B(
-    BuiltInId::sign_Float4,
-    BuiltInName::sign,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30D,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpSign,
-    true);
-constexpr const TFunction function_sign_00D(
-    BuiltInId::sign_Int1,
-    BuiltInName::sign,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00D00D_o_00D_o_00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpSign,
-    true);
-constexpr const TFunction function_sign_10D(
-    BuiltInId::sign_Int2,
-    BuiltInName::sign,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10D10D_o_10D_o_10D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpSign,
-    true);
-constexpr const TFunction function_sign_20D(
-    BuiltInId::sign_Int3,
-    BuiltInName::sign,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20D20D00D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpSign,
-    true);
-constexpr const TFunction function_sign_30D(
-    BuiltInId::sign_Int4,
-    BuiltInName::sign,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30D30D30F,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpSign,
-    true);
-constexpr const TFunction function_sign_00C(
-    BuiltInId::sign_Double1,
-    BuiltInName::sign,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00C10C,
-    1,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpSign,
-    true);
-constexpr const TFunction function_sign_10C(
-    BuiltInId::sign_Double2,
-    BuiltInName::sign,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10C_o_10C,
-    1,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpSign,
-    true);
-constexpr const TFunction function_sign_20C(
-    BuiltInId::sign_Double3,
-    BuiltInName::sign,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20C20C20F,
-    1,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpSign,
-    true);
-constexpr const TFunction function_sign_30C(
-    BuiltInId::sign_Double4,
-    BuiltInName::sign,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30C30C00B,
-    1,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpSign,
-    true);
-constexpr const TFunction function_floor_00B(
-    BuiltInId::floor_Float1,
-    BuiltInName::floor,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpFloor,
-    true);
-constexpr const TFunction function_floor_10B(
-    BuiltInId::floor_Float2,
-    BuiltInName::floor,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B_o_10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpFloor,
-    true);
-constexpr const TFunction function_floor_20B(
-    BuiltInId::floor_Float3,
-    BuiltInName::floor,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpFloor,
-    true);
-constexpr const TFunction function_floor_30B(
-    BuiltInId::floor_Float4,
-    BuiltInName::floor,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30D,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpFloor,
-    true);
-constexpr const TFunction function_floor_00C(
-    BuiltInId::floor_Double1,
-    BuiltInName::floor,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00C10C,
-    1,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpFloor,
-    true);
-constexpr const TFunction function_floor_10C(
-    BuiltInId::floor_Double2,
-    BuiltInName::floor,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10C_o_10C,
-    1,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpFloor,
-    true);
-constexpr const TFunction function_floor_20C(
-    BuiltInId::floor_Double3,
-    BuiltInName::floor,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20C20C20F,
-    1,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpFloor,
-    true);
-constexpr const TFunction function_floor_30C(
-    BuiltInId::floor_Double4,
-    BuiltInName::floor,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30C30C00B,
-    1,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpFloor,
-    true);
-constexpr const TFunction function_trunc_00B(
-    BuiltInId::trunc_Float1,
-    BuiltInName::trunc,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpTrunc,
-    true);
-constexpr const TFunction function_trunc_10B(
-    BuiltInId::trunc_Float2,
-    BuiltInName::trunc,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B_o_10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpTrunc,
-    true);
-constexpr const TFunction function_trunc_20B(
-    BuiltInId::trunc_Float3,
-    BuiltInName::trunc,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpTrunc,
-    true);
-constexpr const TFunction function_trunc_30B(
-    BuiltInId::trunc_Float4,
-    BuiltInName::trunc,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30D,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpTrunc,
-    true);
-constexpr const TFunction function_trunc_00C(
-    BuiltInId::trunc_Double1,
-    BuiltInName::trunc,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00C10C,
-    1,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpTrunc,
-    true);
-constexpr const TFunction function_trunc_10C(
-    BuiltInId::trunc_Double2,
-    BuiltInName::trunc,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10C_o_10C,
-    1,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpTrunc,
-    true);
-constexpr const TFunction function_trunc_20C(
-    BuiltInId::trunc_Double3,
-    BuiltInName::trunc,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20C20C20F,
-    1,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpTrunc,
-    true);
-constexpr const TFunction function_trunc_30C(
-    BuiltInId::trunc_Double4,
-    BuiltInName::trunc,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30C30C00B,
-    1,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpTrunc,
-    true);
-constexpr const TFunction function_round_00B(
-    BuiltInId::round_Float1,
-    BuiltInName::round,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpRound,
-    true);
-constexpr const TFunction function_round_10B(
-    BuiltInId::round_Float2,
-    BuiltInName::round,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B_o_10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpRound,
-    true);
-constexpr const TFunction function_round_20B(
-    BuiltInId::round_Float3,
-    BuiltInName::round,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpRound,
-    true);
-constexpr const TFunction function_round_30B(
-    BuiltInId::round_Float4,
-    BuiltInName::round,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30D,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpRound,
-    true);
-constexpr const TFunction function_round_00C(
-    BuiltInId::round_Double1,
-    BuiltInName::round,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00C10C,
-    1,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpRound,
-    true);
-constexpr const TFunction function_round_10C(
-    BuiltInId::round_Double2,
-    BuiltInName::round,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10C_o_10C,
-    1,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpRound,
-    true);
-constexpr const TFunction function_round_20C(
-    BuiltInId::round_Double3,
-    BuiltInName::round,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20C20C20F,
-    1,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpRound,
-    true);
-constexpr const TFunction function_round_30C(
-    BuiltInId::round_Double4,
-    BuiltInName::round,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30C30C00B,
-    1,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpRound,
-    true);
-constexpr const TFunction function_roundEven_00B(
-    BuiltInId::roundEven_Float1,
-    BuiltInName::roundEven,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpRoundEven,
-    true);
-constexpr const TFunction function_roundEven_10B(
-    BuiltInId::roundEven_Float2,
-    BuiltInName::roundEven,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B_o_10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpRoundEven,
-    true);
-constexpr const TFunction function_roundEven_20B(
-    BuiltInId::roundEven_Float3,
-    BuiltInName::roundEven,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpRoundEven,
-    true);
-constexpr const TFunction function_roundEven_30B(
-    BuiltInId::roundEven_Float4,
-    BuiltInName::roundEven,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30D,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpRoundEven,
-    true);
-constexpr const TFunction function_roundEven_00C(
-    BuiltInId::roundEven_Double1,
-    BuiltInName::roundEven,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00C10C,
-    1,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpRoundEven,
-    true);
-constexpr const TFunction function_roundEven_10C(
-    BuiltInId::roundEven_Double2,
-    BuiltInName::roundEven,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10C_o_10C,
-    1,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpRoundEven,
-    true);
-constexpr const TFunction function_roundEven_20C(
-    BuiltInId::roundEven_Double3,
-    BuiltInName::roundEven,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20C20C20F,
-    1,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpRoundEven,
-    true);
-constexpr const TFunction function_roundEven_30C(
-    BuiltInId::roundEven_Double4,
-    BuiltInName::roundEven,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30C30C00B,
-    1,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpRoundEven,
-    true);
-constexpr const TFunction function_ceil_00B(
-    BuiltInId::ceil_Float1,
-    BuiltInName::ceil,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpCeil,
-    true);
-constexpr const TFunction function_ceil_10B(
-    BuiltInId::ceil_Float2,
-    BuiltInName::ceil,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B_o_10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpCeil,
-    true);
-constexpr const TFunction function_ceil_20B(
-    BuiltInId::ceil_Float3,
-    BuiltInName::ceil,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpCeil,
-    true);
-constexpr const TFunction function_ceil_30B(
-    BuiltInId::ceil_Float4,
-    BuiltInName::ceil,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30D,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCeil,
-    true);
-constexpr const TFunction function_ceil_00C(
-    BuiltInId::ceil_Double1,
-    BuiltInName::ceil,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00C10C,
-    1,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpCeil,
-    true);
-constexpr const TFunction function_ceil_10C(
-    BuiltInId::ceil_Double2,
-    BuiltInName::ceil,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10C_o_10C,
-    1,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpCeil,
-    true);
-constexpr const TFunction function_ceil_20C(
-    BuiltInId::ceil_Double3,
-    BuiltInName::ceil,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20C20C20F,
-    1,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpCeil,
-    true);
-constexpr const TFunction function_ceil_30C(
-    BuiltInId::ceil_Double4,
-    BuiltInName::ceil,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30C30C00B,
-    1,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCeil,
-    true);
-constexpr const TFunction function_fract_00B(
-    BuiltInId::fract_Float1,
-    BuiltInName::fract,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpFract,
-    true);
-constexpr const TFunction function_fract_10B(
-    BuiltInId::fract_Float2,
-    BuiltInName::fract,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B_o_10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpFract,
-    true);
-constexpr const TFunction function_fract_20B(
-    BuiltInId::fract_Float3,
-    BuiltInName::fract,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpFract,
-    true);
-constexpr const TFunction function_fract_30B(
-    BuiltInId::fract_Float4,
-    BuiltInName::fract,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30D,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpFract,
-    true);
-constexpr const TFunction function_fract_00C(
-    BuiltInId::fract_Double1,
-    BuiltInName::fract,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00C10C,
-    1,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpFract,
-    true);
-constexpr const TFunction function_fract_10C(
-    BuiltInId::fract_Double2,
-    BuiltInName::fract,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10C_o_10C,
-    1,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpFract,
-    true);
-constexpr const TFunction function_fract_20C(
-    BuiltInId::fract_Double3,
-    BuiltInName::fract,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20C20C20F,
-    1,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpFract,
-    true);
-constexpr const TFunction function_fract_30C(
-    BuiltInId::fract_Double4,
-    BuiltInName::fract,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30C30C00B,
-    1,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpFract,
-    true);
-constexpr const TFunction function_mod_00B00B(
-    BuiltInId::mod_Float1_Float1,
-    BuiltInName::mod,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpMod,
-    true);
-constexpr const TFunction function_mod_10B00B(
-    BuiltInId::mod_Float2_Float1,
-    BuiltInName::mod,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B00B00B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpMod,
-    true);
-constexpr const TFunction function_mod_20B00B(
-    BuiltInId::mod_Float3_Float1,
-    BuiltInName::mod,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B00B00B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpMod,
-    true);
-constexpr const TFunction function_mod_30B00B(
-    BuiltInId::mod_Float4_Float1,
-    BuiltInName::mod,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B00B00B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpMod,
-    true);
-constexpr const TFunction function_mod_10B10B(
-    BuiltInId::mod_Float2_Float2,
-    BuiltInName::mod,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B10B00B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpMod,
-    true);
-constexpr const TFunction function_mod_20B20B(
-    BuiltInId::mod_Float3_Float3,
-    BuiltInName::mod,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpMod,
-    true);
-constexpr const TFunction function_mod_30B30B(
-    BuiltInId::mod_Float4_Float4,
-    BuiltInName::mod,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30B30F,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpMod,
-    true);
-constexpr const TFunction function_mod_00C00C(
-    BuiltInId::mod_Double1_Double1,
-    BuiltInName::mod,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00C00C10C,
-    2,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpMod,
-    true);
-constexpr const TFunction function_mod_10C00C(
-    BuiltInId::mod_Double2_Double1,
-    BuiltInName::mod,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10C00C00C,
-    2,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpMod,
-    true);
-constexpr const TFunction function_mod_20C00C(
-    BuiltInId::mod_Double3_Double1,
-    BuiltInName::mod,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20C00C00C,
-    2,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpMod,
-    true);
-constexpr const TFunction function_mod_30C00C(
-    BuiltInId::mod_Double4_Double1,
-    BuiltInName::mod,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30C00C00C,
-    2,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpMod,
-    true);
-constexpr const TFunction function_mod_10C10C(
-    BuiltInId::mod_Double2_Double2,
-    BuiltInName::mod,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10C10C10F,
-    2,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpMod,
-    true);
-constexpr const TFunction function_mod_20C20C(
-    BuiltInId::mod_Double3_Double3,
-    BuiltInName::mod,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20C20C20F,
-    2,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpMod,
-    true);
-constexpr const TFunction function_mod_30C30C(
-    BuiltInId::mod_Double4_Double4,
-    BuiltInName::mod,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30C30C00B,
-    2,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpMod,
-    true);
-constexpr const TFunction function_min_00B00B(
-    BuiltInId::min_Float1_Float1,
-    BuiltInName::min,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpMin,
-    true);
-constexpr const TFunction function_min_10B00B(
-    BuiltInId::min_Float2_Float1,
-    BuiltInName::min,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B00B00B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpMin,
-    true);
-constexpr const TFunction function_min_20B00B(
-    BuiltInId::min_Float3_Float1,
-    BuiltInName::min,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B00B00B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpMin,
-    true);
-constexpr const TFunction function_min_30B00B(
-    BuiltInId::min_Float4_Float1,
-    BuiltInName::min,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B00B00B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpMin,
-    true);
-constexpr const TFunction function_min_10B10B(
-    BuiltInId::min_Float2_Float2,
-    BuiltInName::min,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B10B00B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpMin,
-    true);
-constexpr const TFunction function_min_20B20B(
-    BuiltInId::min_Float3_Float3,
-    BuiltInName::min,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpMin,
-    true);
-constexpr const TFunction function_min_30B30B(
-    BuiltInId::min_Float4_Float4,
-    BuiltInName::min,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30B30F,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpMin,
-    true);
-constexpr const TFunction function_min_00C00C(
-    BuiltInId::min_Double1_Double1,
-    BuiltInName::min,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00C00C10C,
-    2,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpMin,
-    true);
-constexpr const TFunction function_min_10C10C(
-    BuiltInId::min_Double2_Double2,
-    BuiltInName::min,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10C10C10F,
-    2,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpMin,
-    true);
-constexpr const TFunction function_min_20C20C(
-    BuiltInId::min_Double3_Double3,
-    BuiltInName::min,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20C20C20F,
-    2,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpMin,
-    true);
-constexpr const TFunction function_min_30C30C(
-    BuiltInId::min_Double4_Double4,
-    BuiltInName::min,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30C30C00B,
-    2,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpMin,
-    true);
-constexpr const TFunction function_min_10C00C(
-    BuiltInId::min_Double2_Double1,
-    BuiltInName::min,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10C00C00C,
-    2,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpMin,
-    true);
-constexpr const TFunction function_min_20C00C(
-    BuiltInId::min_Double3_Double1,
-    BuiltInName::min,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20C00C00C,
-    2,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpMin,
-    true);
-constexpr const TFunction function_min_30C00C(
-    BuiltInId::min_Double4_Double1,
-    BuiltInName::min,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30C00C00C,
-    2,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpMin,
-    true);
-constexpr const TFunction function_min_00D00D(
-    BuiltInId::min_Int1_Int1,
-    BuiltInName::min,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00D00D_o_00D_o_00D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpMin,
-    true);
-constexpr const TFunction function_min_10D10D(
-    BuiltInId::min_Int2_Int2,
-    BuiltInName::min,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10D10D_o_10D_o_10D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpMin,
-    true);
-constexpr const TFunction function_min_20D20D(
-    BuiltInId::min_Int3_Int3,
-    BuiltInName::min,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20D20D00D00D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpMin,
-    true);
-constexpr const TFunction function_min_30D30D(
-    BuiltInId::min_Int4_Int4,
-    BuiltInName::min,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30D30D30F,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpMin,
-    true);
-constexpr const TFunction function_min_10D00D(
-    BuiltInId::min_Int2_Int1,
-    BuiltInName::min,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10D00D00D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpMin,
-    true);
-constexpr const TFunction function_min_20D00D(
-    BuiltInId::min_Int3_Int1,
-    BuiltInName::min,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20D00D00D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpMin,
-    true);
-constexpr const TFunction function_min_30D00D(
-    BuiltInId::min_Int4_Int1,
-    BuiltInName::min,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30D00D00D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpMin,
-    true);
-constexpr const TFunction function_min_00E00E(
-    BuiltInId::min_UInt1_UInt1,
-    BuiltInName::min,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00E00E00E,
-    2,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpMin,
-    true);
-constexpr const TFunction function_min_10E10E(
-    BuiltInId::min_UInt2_UInt2,
-    BuiltInName::min,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10E10E00D00D,
-    2,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpMin,
-    true);
-constexpr const TFunction function_min_20E20E(
-    BuiltInId::min_UInt3_UInt3,
-    BuiltInName::min,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20E20E00D00D,
-    2,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpMin,
-    true);
-constexpr const TFunction function_min_30E30E(
-    BuiltInId::min_UInt4_UInt4,
-    BuiltInName::min,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30E30E00D00D,
-    2,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpMin,
-    true);
-constexpr const TFunction function_min_10E00E(
-    BuiltInId::min_UInt2_UInt1,
-    BuiltInName::min,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10E00E00E,
-    2,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpMin,
-    true);
-constexpr const TFunction function_min_20E00E(
-    BuiltInId::min_UInt3_UInt1,
-    BuiltInName::min,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20E00E00E,
-    2,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpMin,
-    true);
-constexpr const TFunction function_min_30E00E(
-    BuiltInId::min_UInt4_UInt1,
-    BuiltInName::min,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30E00E00E,
-    2,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpMin,
-    true);
-constexpr const TFunction function_max_00B00B(
-    BuiltInId::max_Float1_Float1,
-    BuiltInName::max,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpMax,
-    true);
-constexpr const TFunction function_max_10B00B(
-    BuiltInId::max_Float2_Float1,
-    BuiltInName::max,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B00B00B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpMax,
-    true);
-constexpr const TFunction function_max_20B00B(
-    BuiltInId::max_Float3_Float1,
-    BuiltInName::max,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B00B00B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpMax,
-    true);
-constexpr const TFunction function_max_30B00B(
-    BuiltInId::max_Float4_Float1,
-    BuiltInName::max,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B00B00B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpMax,
-    true);
-constexpr const TFunction function_max_10B10B(
-    BuiltInId::max_Float2_Float2,
-    BuiltInName::max,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B10B00B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpMax,
-    true);
-constexpr const TFunction function_max_20B20B(
-    BuiltInId::max_Float3_Float3,
-    BuiltInName::max,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpMax,
-    true);
-constexpr const TFunction function_max_30B30B(
-    BuiltInId::max_Float4_Float4,
-    BuiltInName::max,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30B30F,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpMax,
-    true);
-constexpr const TFunction function_max_00C00C(
-    BuiltInId::max_Double1_Double1,
-    BuiltInName::max,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00C00C10C,
-    2,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpMax,
-    true);
-constexpr const TFunction function_max_10C10C(
-    BuiltInId::max_Double2_Double2,
-    BuiltInName::max,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10C10C10F,
-    2,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpMax,
-    true);
-constexpr const TFunction function_max_20C20C(
-    BuiltInId::max_Double3_Double3,
-    BuiltInName::max,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20C20C20F,
-    2,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpMax,
-    true);
-constexpr const TFunction function_max_30C30C(
-    BuiltInId::max_Double4_Double4,
-    BuiltInName::max,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30C30C00B,
-    2,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpMax,
-    true);
-constexpr const TFunction function_max_10C00C(
-    BuiltInId::max_Double2_Double1,
-    BuiltInName::max,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10C00C00C,
-    2,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpMax,
-    true);
-constexpr const TFunction function_max_20C00C(
-    BuiltInId::max_Double3_Double1,
-    BuiltInName::max,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20C00C00C,
-    2,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpMax,
-    true);
-constexpr const TFunction function_max_30C00C(
-    BuiltInId::max_Double4_Double1,
-    BuiltInName::max,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30C00C00C,
-    2,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpMax,
-    true);
-constexpr const TFunction function_max_00D00D(
-    BuiltInId::max_Int1_Int1,
-    BuiltInName::max,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00D00D_o_00D_o_00D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpMax,
-    true);
-constexpr const TFunction function_max_10D10D(
-    BuiltInId::max_Int2_Int2,
-    BuiltInName::max,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10D10D_o_10D_o_10D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpMax,
-    true);
-constexpr const TFunction function_max_20D20D(
-    BuiltInId::max_Int3_Int3,
-    BuiltInName::max,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20D20D00D00D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpMax,
-    true);
-constexpr const TFunction function_max_30D30D(
-    BuiltInId::max_Int4_Int4,
-    BuiltInName::max,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30D30D30F,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpMax,
-    true);
-constexpr const TFunction function_max_10D00D(
-    BuiltInId::max_Int2_Int1,
-    BuiltInName::max,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10D00D00D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpMax,
-    true);
-constexpr const TFunction function_max_20D00D(
-    BuiltInId::max_Int3_Int1,
-    BuiltInName::max,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20D00D00D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpMax,
-    true);
-constexpr const TFunction function_max_30D00D(
-    BuiltInId::max_Int4_Int1,
-    BuiltInName::max,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30D00D00D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpMax,
-    true);
-constexpr const TFunction function_max_00E00E(
-    BuiltInId::max_UInt1_UInt1,
-    BuiltInName::max,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00E00E00E,
-    2,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpMax,
-    true);
-constexpr const TFunction function_max_10E10E(
-    BuiltInId::max_UInt2_UInt2,
-    BuiltInName::max,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10E10E00D00D,
-    2,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpMax,
-    true);
-constexpr const TFunction function_max_20E20E(
-    BuiltInId::max_UInt3_UInt3,
-    BuiltInName::max,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20E20E00D00D,
-    2,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpMax,
-    true);
-constexpr const TFunction function_max_30E30E(
-    BuiltInId::max_UInt4_UInt4,
-    BuiltInName::max,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30E30E00D00D,
-    2,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpMax,
-    true);
-constexpr const TFunction function_max_10E00E(
-    BuiltInId::max_UInt2_UInt1,
-    BuiltInName::max,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10E00E00E,
-    2,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpMax,
-    true);
-constexpr const TFunction function_max_20E00E(
-    BuiltInId::max_UInt3_UInt1,
-    BuiltInName::max,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20E00E00E,
-    2,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpMax,
-    true);
-constexpr const TFunction function_max_30E00E(
-    BuiltInId::max_UInt4_UInt1,
-    BuiltInName::max,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30E00E00E,
-    2,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpMax,
-    true);
-constexpr const TFunction function_clamp_00B00B00B(
+constexpr const TFunction abs_00B(BuiltInId::abs_Float1,
+                                  BuiltInName::abs,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p00B00B30B,
+                                  1,
+                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                  EOpAbs,
+                                  true);
+constexpr const TFunction abs_10B(BuiltInId::abs_Float2,
+                                  BuiltInName::abs,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p10B_o_10B,
+                                  1,
+                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                  EOpAbs,
+                                  true);
+constexpr const TFunction abs_20B(BuiltInId::abs_Float3,
+                                  BuiltInName::abs,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p20B20B00B,
+                                  1,
+                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                  EOpAbs,
+                                  true);
+constexpr const TFunction abs_30B(BuiltInId::abs_Float4,
+                                  BuiltInName::abs,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p30B30D,
+                                  1,
+                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                  EOpAbs,
+                                  true);
+constexpr const TFunction abs_00D(BuiltInId::abs_Int1,
+                                  BuiltInName::abs,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p00D00D_o_00D_o_00D,
+                                  1,
+                                  StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                  EOpAbs,
+                                  true);
+constexpr const TFunction abs_10D(BuiltInId::abs_Int2,
+                                  BuiltInName::abs,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p10D10D_o_10D_o_10D,
+                                  1,
+                                  StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                  EOpAbs,
+                                  true);
+constexpr const TFunction abs_20D(BuiltInId::abs_Int3,
+                                  BuiltInName::abs,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p20D20D00D00D,
+                                  1,
+                                  StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                  EOpAbs,
+                                  true);
+constexpr const TFunction abs_30D(BuiltInId::abs_Int4,
+                                  BuiltInName::abs,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p30D30D30F,
+                                  1,
+                                  StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                  EOpAbs,
+                                  true);
+constexpr const TFunction abs_00C(BuiltInId::abs_Double1,
+                                  BuiltInName::abs,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p00C10C,
+                                  1,
+                                  StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
+                                  EOpAbs,
+                                  true);
+constexpr const TFunction abs_10C(BuiltInId::abs_Double2,
+                                  BuiltInName::abs,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p10C_o_10C,
+                                  1,
+                                  StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
+                                  EOpAbs,
+                                  true);
+constexpr const TFunction abs_20C(BuiltInId::abs_Double3,
+                                  BuiltInName::abs,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p20C20C20F,
+                                  1,
+                                  StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
+                                  EOpAbs,
+                                  true);
+constexpr const TFunction abs_30C(BuiltInId::abs_Double4,
+                                  BuiltInName::abs,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p30C30C00B,
+                                  1,
+                                  StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
+                                  EOpAbs,
+                                  true);
+constexpr const TFunction sign_00B(BuiltInId::sign_Float1,
+                                   BuiltInName::sign,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p00B00B30B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                   EOpSign,
+                                   true);
+constexpr const TFunction sign_10B(BuiltInId::sign_Float2,
+                                   BuiltInName::sign,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p10B_o_10B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                   EOpSign,
+                                   true);
+constexpr const TFunction sign_20B(BuiltInId::sign_Float3,
+                                   BuiltInName::sign,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p20B20B00B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                   EOpSign,
+                                   true);
+constexpr const TFunction sign_30B(BuiltInId::sign_Float4,
+                                   BuiltInName::sign,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p30B30D,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                   EOpSign,
+                                   true);
+constexpr const TFunction sign_00D(BuiltInId::sign_Int1,
+                                   BuiltInName::sign,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p00D00D_o_00D_o_00D,
+                                   1,
+                                   StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                   EOpSign,
+                                   true);
+constexpr const TFunction sign_10D(BuiltInId::sign_Int2,
+                                   BuiltInName::sign,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p10D10D_o_10D_o_10D,
+                                   1,
+                                   StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                   EOpSign,
+                                   true);
+constexpr const TFunction sign_20D(BuiltInId::sign_Int3,
+                                   BuiltInName::sign,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p20D20D00D00D,
+                                   1,
+                                   StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                   EOpSign,
+                                   true);
+constexpr const TFunction sign_30D(BuiltInId::sign_Int4,
+                                   BuiltInName::sign,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p30D30D30F,
+                                   1,
+                                   StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                   EOpSign,
+                                   true);
+constexpr const TFunction sign_00C(BuiltInId::sign_Double1,
+                                   BuiltInName::sign,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p00C10C,
+                                   1,
+                                   StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
+                                   EOpSign,
+                                   true);
+constexpr const TFunction sign_10C(BuiltInId::sign_Double2,
+                                   BuiltInName::sign,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p10C_o_10C,
+                                   1,
+                                   StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
+                                   EOpSign,
+                                   true);
+constexpr const TFunction sign_20C(BuiltInId::sign_Double3,
+                                   BuiltInName::sign,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p20C20C20F,
+                                   1,
+                                   StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
+                                   EOpSign,
+                                   true);
+constexpr const TFunction sign_30C(BuiltInId::sign_Double4,
+                                   BuiltInName::sign,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p30C30C00B,
+                                   1,
+                                   StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
+                                   EOpSign,
+                                   true);
+constexpr const TFunction floor_00B(BuiltInId::floor_Float1,
+                                    BuiltInName::floor,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p00B00B30B,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                    EOpFloor,
+                                    true);
+constexpr const TFunction floor_10B(BuiltInId::floor_Float2,
+                                    BuiltInName::floor,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p10B_o_10B,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                    EOpFloor,
+                                    true);
+constexpr const TFunction floor_20B(BuiltInId::floor_Float3,
+                                    BuiltInName::floor,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p20B20B00B,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                    EOpFloor,
+                                    true);
+constexpr const TFunction floor_30B(BuiltInId::floor_Float4,
+                                    BuiltInName::floor,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p30B30D,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                    EOpFloor,
+                                    true);
+constexpr const TFunction floor_00C(BuiltInId::floor_Double1,
+                                    BuiltInName::floor,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p00C10C,
+                                    1,
+                                    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
+                                    EOpFloor,
+                                    true);
+constexpr const TFunction floor_10C(BuiltInId::floor_Double2,
+                                    BuiltInName::floor,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p10C_o_10C,
+                                    1,
+                                    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
+                                    EOpFloor,
+                                    true);
+constexpr const TFunction floor_20C(BuiltInId::floor_Double3,
+                                    BuiltInName::floor,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p20C20C20F,
+                                    1,
+                                    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
+                                    EOpFloor,
+                                    true);
+constexpr const TFunction floor_30C(BuiltInId::floor_Double4,
+                                    BuiltInName::floor,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p30C30C00B,
+                                    1,
+                                    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
+                                    EOpFloor,
+                                    true);
+constexpr const TFunction trunc_00B(BuiltInId::trunc_Float1,
+                                    BuiltInName::trunc,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p00B00B30B,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                    EOpTrunc,
+                                    true);
+constexpr const TFunction trunc_10B(BuiltInId::trunc_Float2,
+                                    BuiltInName::trunc,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p10B_o_10B,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                    EOpTrunc,
+                                    true);
+constexpr const TFunction trunc_20B(BuiltInId::trunc_Float3,
+                                    BuiltInName::trunc,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p20B20B00B,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                    EOpTrunc,
+                                    true);
+constexpr const TFunction trunc_30B(BuiltInId::trunc_Float4,
+                                    BuiltInName::trunc,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p30B30D,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                    EOpTrunc,
+                                    true);
+constexpr const TFunction trunc_00C(BuiltInId::trunc_Double1,
+                                    BuiltInName::trunc,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p00C10C,
+                                    1,
+                                    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
+                                    EOpTrunc,
+                                    true);
+constexpr const TFunction trunc_10C(BuiltInId::trunc_Double2,
+                                    BuiltInName::trunc,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p10C_o_10C,
+                                    1,
+                                    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
+                                    EOpTrunc,
+                                    true);
+constexpr const TFunction trunc_20C(BuiltInId::trunc_Double3,
+                                    BuiltInName::trunc,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p20C20C20F,
+                                    1,
+                                    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
+                                    EOpTrunc,
+                                    true);
+constexpr const TFunction trunc_30C(BuiltInId::trunc_Double4,
+                                    BuiltInName::trunc,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p30C30C00B,
+                                    1,
+                                    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
+                                    EOpTrunc,
+                                    true);
+constexpr const TFunction round_00B(BuiltInId::round_Float1,
+                                    BuiltInName::round,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p00B00B30B,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                    EOpRound,
+                                    true);
+constexpr const TFunction round_10B(BuiltInId::round_Float2,
+                                    BuiltInName::round,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p10B_o_10B,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                    EOpRound,
+                                    true);
+constexpr const TFunction round_20B(BuiltInId::round_Float3,
+                                    BuiltInName::round,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p20B20B00B,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                    EOpRound,
+                                    true);
+constexpr const TFunction round_30B(BuiltInId::round_Float4,
+                                    BuiltInName::round,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p30B30D,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                    EOpRound,
+                                    true);
+constexpr const TFunction round_00C(BuiltInId::round_Double1,
+                                    BuiltInName::round,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p00C10C,
+                                    1,
+                                    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
+                                    EOpRound,
+                                    true);
+constexpr const TFunction round_10C(BuiltInId::round_Double2,
+                                    BuiltInName::round,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p10C_o_10C,
+                                    1,
+                                    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
+                                    EOpRound,
+                                    true);
+constexpr const TFunction round_20C(BuiltInId::round_Double3,
+                                    BuiltInName::round,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p20C20C20F,
+                                    1,
+                                    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
+                                    EOpRound,
+                                    true);
+constexpr const TFunction round_30C(BuiltInId::round_Double4,
+                                    BuiltInName::round,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p30C30C00B,
+                                    1,
+                                    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
+                                    EOpRound,
+                                    true);
+constexpr const TFunction roundEven_00B(BuiltInId::roundEven_Float1,
+                                        BuiltInName::roundEven,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p00B00B30B,
+                                        1,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                        EOpRoundEven,
+                                        true);
+constexpr const TFunction roundEven_10B(BuiltInId::roundEven_Float2,
+                                        BuiltInName::roundEven,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p10B_o_10B,
+                                        1,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                        EOpRoundEven,
+                                        true);
+constexpr const TFunction roundEven_20B(BuiltInId::roundEven_Float3,
+                                        BuiltInName::roundEven,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p20B20B00B,
+                                        1,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                        EOpRoundEven,
+                                        true);
+constexpr const TFunction roundEven_30B(BuiltInId::roundEven_Float4,
+                                        BuiltInName::roundEven,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p30B30D,
+                                        1,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                        EOpRoundEven,
+                                        true);
+constexpr const TFunction roundEven_00C(BuiltInId::roundEven_Double1,
+                                        BuiltInName::roundEven,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p00C10C,
+                                        1,
+                                        StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
+                                        EOpRoundEven,
+                                        true);
+constexpr const TFunction roundEven_10C(BuiltInId::roundEven_Double2,
+                                        BuiltInName::roundEven,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p10C_o_10C,
+                                        1,
+                                        StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
+                                        EOpRoundEven,
+                                        true);
+constexpr const TFunction roundEven_20C(BuiltInId::roundEven_Double3,
+                                        BuiltInName::roundEven,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p20C20C20F,
+                                        1,
+                                        StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
+                                        EOpRoundEven,
+                                        true);
+constexpr const TFunction roundEven_30C(BuiltInId::roundEven_Double4,
+                                        BuiltInName::roundEven,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p30C30C00B,
+                                        1,
+                                        StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
+                                        EOpRoundEven,
+                                        true);
+constexpr const TFunction ceil_00B(BuiltInId::ceil_Float1,
+                                   BuiltInName::ceil,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p00B00B30B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                   EOpCeil,
+                                   true);
+constexpr const TFunction ceil_10B(BuiltInId::ceil_Float2,
+                                   BuiltInName::ceil,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p10B_o_10B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                   EOpCeil,
+                                   true);
+constexpr const TFunction ceil_20B(BuiltInId::ceil_Float3,
+                                   BuiltInName::ceil,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p20B20B00B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                   EOpCeil,
+                                   true);
+constexpr const TFunction ceil_30B(BuiltInId::ceil_Float4,
+                                   BuiltInName::ceil,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p30B30D,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                   EOpCeil,
+                                   true);
+constexpr const TFunction ceil_00C(BuiltInId::ceil_Double1,
+                                   BuiltInName::ceil,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p00C10C,
+                                   1,
+                                   StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
+                                   EOpCeil,
+                                   true);
+constexpr const TFunction ceil_10C(BuiltInId::ceil_Double2,
+                                   BuiltInName::ceil,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p10C_o_10C,
+                                   1,
+                                   StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
+                                   EOpCeil,
+                                   true);
+constexpr const TFunction ceil_20C(BuiltInId::ceil_Double3,
+                                   BuiltInName::ceil,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p20C20C20F,
+                                   1,
+                                   StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
+                                   EOpCeil,
+                                   true);
+constexpr const TFunction ceil_30C(BuiltInId::ceil_Double4,
+                                   BuiltInName::ceil,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p30C30C00B,
+                                   1,
+                                   StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
+                                   EOpCeil,
+                                   true);
+constexpr const TFunction fract_00B(BuiltInId::fract_Float1,
+                                    BuiltInName::fract,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p00B00B30B,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                    EOpFract,
+                                    true);
+constexpr const TFunction fract_10B(BuiltInId::fract_Float2,
+                                    BuiltInName::fract,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p10B_o_10B,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                    EOpFract,
+                                    true);
+constexpr const TFunction fract_20B(BuiltInId::fract_Float3,
+                                    BuiltInName::fract,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p20B20B00B,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                    EOpFract,
+                                    true);
+constexpr const TFunction fract_30B(BuiltInId::fract_Float4,
+                                    BuiltInName::fract,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p30B30D,
+                                    1,
+                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                    EOpFract,
+                                    true);
+constexpr const TFunction fract_00C(BuiltInId::fract_Double1,
+                                    BuiltInName::fract,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p00C10C,
+                                    1,
+                                    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
+                                    EOpFract,
+                                    true);
+constexpr const TFunction fract_10C(BuiltInId::fract_Double2,
+                                    BuiltInName::fract,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p10C_o_10C,
+                                    1,
+                                    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
+                                    EOpFract,
+                                    true);
+constexpr const TFunction fract_20C(BuiltInId::fract_Double3,
+                                    BuiltInName::fract,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p20C20C20F,
+                                    1,
+                                    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
+                                    EOpFract,
+                                    true);
+constexpr const TFunction fract_30C(BuiltInId::fract_Double4,
+                                    BuiltInName::fract,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p30C30C00B,
+                                    1,
+                                    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
+                                    EOpFract,
+                                    true);
+constexpr const TFunction mod_00B00B(BuiltInId::mod_Float1_Float1,
+                                     BuiltInName::mod,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p00B00B30B,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                     EOpMod,
+                                     true);
+constexpr const TFunction mod_10B00B(BuiltInId::mod_Float2_Float1,
+                                     BuiltInName::mod,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p10B00B00B,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                     EOpMod,
+                                     true);
+constexpr const TFunction mod_20B00B(BuiltInId::mod_Float3_Float1,
+                                     BuiltInName::mod,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p20B00B00B,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                     EOpMod,
+                                     true);
+constexpr const TFunction mod_30B00B(BuiltInId::mod_Float4_Float1,
+                                     BuiltInName::mod,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p30B00B00B,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                     EOpMod,
+                                     true);
+constexpr const TFunction mod_10B10B(BuiltInId::mod_Float2_Float2,
+                                     BuiltInName::mod,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p10B10B00B,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                     EOpMod,
+                                     true);
+constexpr const TFunction mod_20B20B(BuiltInId::mod_Float3_Float3,
+                                     BuiltInName::mod,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p20B20B00B,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                     EOpMod,
+                                     true);
+constexpr const TFunction mod_30B30B(BuiltInId::mod_Float4_Float4,
+                                     BuiltInName::mod,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p30B30B30F,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                     EOpMod,
+                                     true);
+constexpr const TFunction mod_00C00C(BuiltInId::mod_Double1_Double1,
+                                     BuiltInName::mod,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p00C00C10C,
+                                     2,
+                                     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
+                                     EOpMod,
+                                     true);
+constexpr const TFunction mod_10C00C(BuiltInId::mod_Double2_Double1,
+                                     BuiltInName::mod,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p10C00C00C,
+                                     2,
+                                     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
+                                     EOpMod,
+                                     true);
+constexpr const TFunction mod_20C00C(BuiltInId::mod_Double3_Double1,
+                                     BuiltInName::mod,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p20C00C00C,
+                                     2,
+                                     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
+                                     EOpMod,
+                                     true);
+constexpr const TFunction mod_30C00C(BuiltInId::mod_Double4_Double1,
+                                     BuiltInName::mod,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p30C00C00C,
+                                     2,
+                                     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
+                                     EOpMod,
+                                     true);
+constexpr const TFunction mod_10C10C(BuiltInId::mod_Double2_Double2,
+                                     BuiltInName::mod,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p10C10C10F,
+                                     2,
+                                     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
+                                     EOpMod,
+                                     true);
+constexpr const TFunction mod_20C20C(BuiltInId::mod_Double3_Double3,
+                                     BuiltInName::mod,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p20C20C20F,
+                                     2,
+                                     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
+                                     EOpMod,
+                                     true);
+constexpr const TFunction mod_30C30C(BuiltInId::mod_Double4_Double4,
+                                     BuiltInName::mod,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p30C30C00B,
+                                     2,
+                                     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
+                                     EOpMod,
+                                     true);
+constexpr const TFunction min_00B00B(BuiltInId::min_Float1_Float1,
+                                     BuiltInName::min,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p00B00B30B,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                     EOpMin,
+                                     true);
+constexpr const TFunction min_10B00B(BuiltInId::min_Float2_Float1,
+                                     BuiltInName::min,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p10B00B00B,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                     EOpMin,
+                                     true);
+constexpr const TFunction min_20B00B(BuiltInId::min_Float3_Float1,
+                                     BuiltInName::min,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p20B00B00B,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                     EOpMin,
+                                     true);
+constexpr const TFunction min_30B00B(BuiltInId::min_Float4_Float1,
+                                     BuiltInName::min,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p30B00B00B,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                     EOpMin,
+                                     true);
+constexpr const TFunction min_10B10B(BuiltInId::min_Float2_Float2,
+                                     BuiltInName::min,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p10B10B00B,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                     EOpMin,
+                                     true);
+constexpr const TFunction min_20B20B(BuiltInId::min_Float3_Float3,
+                                     BuiltInName::min,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p20B20B00B,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                     EOpMin,
+                                     true);
+constexpr const TFunction min_30B30B(BuiltInId::min_Float4_Float4,
+                                     BuiltInName::min,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p30B30B30F,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                     EOpMin,
+                                     true);
+constexpr const TFunction min_00C00C(BuiltInId::min_Double1_Double1,
+                                     BuiltInName::min,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p00C00C10C,
+                                     2,
+                                     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
+                                     EOpMin,
+                                     true);
+constexpr const TFunction min_10C10C(BuiltInId::min_Double2_Double2,
+                                     BuiltInName::min,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p10C10C10F,
+                                     2,
+                                     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
+                                     EOpMin,
+                                     true);
+constexpr const TFunction min_20C20C(BuiltInId::min_Double3_Double3,
+                                     BuiltInName::min,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p20C20C20F,
+                                     2,
+                                     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
+                                     EOpMin,
+                                     true);
+constexpr const TFunction min_30C30C(BuiltInId::min_Double4_Double4,
+                                     BuiltInName::min,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p30C30C00B,
+                                     2,
+                                     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
+                                     EOpMin,
+                                     true);
+constexpr const TFunction min_10C00C(BuiltInId::min_Double2_Double1,
+                                     BuiltInName::min,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p10C00C00C,
+                                     2,
+                                     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
+                                     EOpMin,
+                                     true);
+constexpr const TFunction min_20C00C(BuiltInId::min_Double3_Double1,
+                                     BuiltInName::min,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p20C00C00C,
+                                     2,
+                                     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
+                                     EOpMin,
+                                     true);
+constexpr const TFunction min_30C00C(BuiltInId::min_Double4_Double1,
+                                     BuiltInName::min,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p30C00C00C,
+                                     2,
+                                     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
+                                     EOpMin,
+                                     true);
+constexpr const TFunction min_00D00D(BuiltInId::min_Int1_Int1,
+                                     BuiltInName::min,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p00D00D_o_00D_o_00D,
+                                     2,
+                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                     EOpMin,
+                                     true);
+constexpr const TFunction min_10D10D(BuiltInId::min_Int2_Int2,
+                                     BuiltInName::min,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p10D10D_o_10D_o_10D,
+                                     2,
+                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                     EOpMin,
+                                     true);
+constexpr const TFunction min_20D20D(BuiltInId::min_Int3_Int3,
+                                     BuiltInName::min,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p20D20D00D00D,
+                                     2,
+                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                     EOpMin,
+                                     true);
+constexpr const TFunction min_30D30D(BuiltInId::min_Int4_Int4,
+                                     BuiltInName::min,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p30D30D30F,
+                                     2,
+                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                     EOpMin,
+                                     true);
+constexpr const TFunction min_10D00D(BuiltInId::min_Int2_Int1,
+                                     BuiltInName::min,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p10D00D00D,
+                                     2,
+                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                     EOpMin,
+                                     true);
+constexpr const TFunction min_20D00D(BuiltInId::min_Int3_Int1,
+                                     BuiltInName::min,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p20D00D00D,
+                                     2,
+                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                     EOpMin,
+                                     true);
+constexpr const TFunction min_30D00D(BuiltInId::min_Int4_Int1,
+                                     BuiltInName::min,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p30D00D00D,
+                                     2,
+                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                     EOpMin,
+                                     true);
+constexpr const TFunction min_00E00E(BuiltInId::min_UInt1_UInt1,
+                                     BuiltInName::min,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p00E00E00E,
+                                     2,
+                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                     EOpMin,
+                                     true);
+constexpr const TFunction min_10E10E(BuiltInId::min_UInt2_UInt2,
+                                     BuiltInName::min,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p10E10E00D00D,
+                                     2,
+                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                     EOpMin,
+                                     true);
+constexpr const TFunction min_20E20E(BuiltInId::min_UInt3_UInt3,
+                                     BuiltInName::min,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p20E20E00D00D,
+                                     2,
+                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                     EOpMin,
+                                     true);
+constexpr const TFunction min_30E30E(BuiltInId::min_UInt4_UInt4,
+                                     BuiltInName::min,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p30E30E00D00D,
+                                     2,
+                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                     EOpMin,
+                                     true);
+constexpr const TFunction min_10E00E(BuiltInId::min_UInt2_UInt1,
+                                     BuiltInName::min,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p10E00E00E,
+                                     2,
+                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                     EOpMin,
+                                     true);
+constexpr const TFunction min_20E00E(BuiltInId::min_UInt3_UInt1,
+                                     BuiltInName::min,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p20E00E00E,
+                                     2,
+                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                     EOpMin,
+                                     true);
+constexpr const TFunction min_30E00E(BuiltInId::min_UInt4_UInt1,
+                                     BuiltInName::min,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p30E00E00E,
+                                     2,
+                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                     EOpMin,
+                                     true);
+constexpr const TFunction max_00B00B(BuiltInId::max_Float1_Float1,
+                                     BuiltInName::max,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p00B00B30B,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                     EOpMax,
+                                     true);
+constexpr const TFunction max_10B00B(BuiltInId::max_Float2_Float1,
+                                     BuiltInName::max,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p10B00B00B,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                     EOpMax,
+                                     true);
+constexpr const TFunction max_20B00B(BuiltInId::max_Float3_Float1,
+                                     BuiltInName::max,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p20B00B00B,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                     EOpMax,
+                                     true);
+constexpr const TFunction max_30B00B(BuiltInId::max_Float4_Float1,
+                                     BuiltInName::max,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p30B00B00B,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                     EOpMax,
+                                     true);
+constexpr const TFunction max_10B10B(BuiltInId::max_Float2_Float2,
+                                     BuiltInName::max,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p10B10B00B,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                     EOpMax,
+                                     true);
+constexpr const TFunction max_20B20B(BuiltInId::max_Float3_Float3,
+                                     BuiltInName::max,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p20B20B00B,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                     EOpMax,
+                                     true);
+constexpr const TFunction max_30B30B(BuiltInId::max_Float4_Float4,
+                                     BuiltInName::max,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p30B30B30F,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                     EOpMax,
+                                     true);
+constexpr const TFunction max_00C00C(BuiltInId::max_Double1_Double1,
+                                     BuiltInName::max,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p00C00C10C,
+                                     2,
+                                     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
+                                     EOpMax,
+                                     true);
+constexpr const TFunction max_10C10C(BuiltInId::max_Double2_Double2,
+                                     BuiltInName::max,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p10C10C10F,
+                                     2,
+                                     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
+                                     EOpMax,
+                                     true);
+constexpr const TFunction max_20C20C(BuiltInId::max_Double3_Double3,
+                                     BuiltInName::max,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p20C20C20F,
+                                     2,
+                                     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
+                                     EOpMax,
+                                     true);
+constexpr const TFunction max_30C30C(BuiltInId::max_Double4_Double4,
+                                     BuiltInName::max,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p30C30C00B,
+                                     2,
+                                     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
+                                     EOpMax,
+                                     true);
+constexpr const TFunction max_10C00C(BuiltInId::max_Double2_Double1,
+                                     BuiltInName::max,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p10C00C00C,
+                                     2,
+                                     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
+                                     EOpMax,
+                                     true);
+constexpr const TFunction max_20C00C(BuiltInId::max_Double3_Double1,
+                                     BuiltInName::max,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p20C00C00C,
+                                     2,
+                                     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
+                                     EOpMax,
+                                     true);
+constexpr const TFunction max_30C00C(BuiltInId::max_Double4_Double1,
+                                     BuiltInName::max,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p30C00C00C,
+                                     2,
+                                     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
+                                     EOpMax,
+                                     true);
+constexpr const TFunction max_00D00D(BuiltInId::max_Int1_Int1,
+                                     BuiltInName::max,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p00D00D_o_00D_o_00D,
+                                     2,
+                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                     EOpMax,
+                                     true);
+constexpr const TFunction max_10D10D(BuiltInId::max_Int2_Int2,
+                                     BuiltInName::max,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p10D10D_o_10D_o_10D,
+                                     2,
+                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                     EOpMax,
+                                     true);
+constexpr const TFunction max_20D20D(BuiltInId::max_Int3_Int3,
+                                     BuiltInName::max,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p20D20D00D00D,
+                                     2,
+                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                     EOpMax,
+                                     true);
+constexpr const TFunction max_30D30D(BuiltInId::max_Int4_Int4,
+                                     BuiltInName::max,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p30D30D30F,
+                                     2,
+                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                     EOpMax,
+                                     true);
+constexpr const TFunction max_10D00D(BuiltInId::max_Int2_Int1,
+                                     BuiltInName::max,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p10D00D00D,
+                                     2,
+                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                     EOpMax,
+                                     true);
+constexpr const TFunction max_20D00D(BuiltInId::max_Int3_Int1,
+                                     BuiltInName::max,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p20D00D00D,
+                                     2,
+                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                     EOpMax,
+                                     true);
+constexpr const TFunction max_30D00D(BuiltInId::max_Int4_Int1,
+                                     BuiltInName::max,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p30D00D00D,
+                                     2,
+                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                     EOpMax,
+                                     true);
+constexpr const TFunction max_00E00E(BuiltInId::max_UInt1_UInt1,
+                                     BuiltInName::max,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p00E00E00E,
+                                     2,
+                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                     EOpMax,
+                                     true);
+constexpr const TFunction max_10E10E(BuiltInId::max_UInt2_UInt2,
+                                     BuiltInName::max,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p10E10E00D00D,
+                                     2,
+                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                     EOpMax,
+                                     true);
+constexpr const TFunction max_20E20E(BuiltInId::max_UInt3_UInt3,
+                                     BuiltInName::max,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p20E20E00D00D,
+                                     2,
+                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                     EOpMax,
+                                     true);
+constexpr const TFunction max_30E30E(BuiltInId::max_UInt4_UInt4,
+                                     BuiltInName::max,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p30E30E00D00D,
+                                     2,
+                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                     EOpMax,
+                                     true);
+constexpr const TFunction max_10E00E(BuiltInId::max_UInt2_UInt1,
+                                     BuiltInName::max,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p10E00E00E,
+                                     2,
+                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                     EOpMax,
+                                     true);
+constexpr const TFunction max_20E00E(BuiltInId::max_UInt3_UInt1,
+                                     BuiltInName::max,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p20E00E00E,
+                                     2,
+                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                     EOpMax,
+                                     true);
+constexpr const TFunction max_30E00E(BuiltInId::max_UInt4_UInt1,
+                                     BuiltInName::max,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p30E00E00E,
+                                     2,
+                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                     EOpMax,
+                                     true);
+constexpr const TFunction clamp_00B00B00B(
     BuiltInId::clamp_Float1_Float1_Float1,
     BuiltInName::clamp,
     TExtension::UNDEFINED,
@@ -7176,7 +6610,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpClamp,
     true);
-constexpr const TFunction function_clamp_10B00B00B(
+constexpr const TFunction clamp_10B00B00B(
     BuiltInId::clamp_Float2_Float1_Float1,
     BuiltInName::clamp,
     TExtension::UNDEFINED,
@@ -7185,7 +6619,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpClamp,
     true);
-constexpr const TFunction function_clamp_20B00B00B(
+constexpr const TFunction clamp_20B00B00B(
     BuiltInId::clamp_Float3_Float1_Float1,
     BuiltInName::clamp,
     TExtension::UNDEFINED,
@@ -7194,7 +6628,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpClamp,
     true);
-constexpr const TFunction function_clamp_30B00B00B(
+constexpr const TFunction clamp_30B00B00B(
     BuiltInId::clamp_Float4_Float1_Float1,
     BuiltInName::clamp,
     TExtension::UNDEFINED,
@@ -7203,7 +6637,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpClamp,
     true);
-constexpr const TFunction function_clamp_10B10B10B(
+constexpr const TFunction clamp_10B10B10B(
     BuiltInId::clamp_Float2_Float2_Float2,
     BuiltInName::clamp,
     TExtension::UNDEFINED,
@@ -7212,7 +6646,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpClamp,
     true);
-constexpr const TFunction function_clamp_20B20B20B(
+constexpr const TFunction clamp_20B20B20B(
     BuiltInId::clamp_Float3_Float3_Float3,
     BuiltInName::clamp,
     TExtension::UNDEFINED,
@@ -7221,7 +6655,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpClamp,
     true);
-constexpr const TFunction function_clamp_30B30B30B(
+constexpr const TFunction clamp_30B30B30B(
     BuiltInId::clamp_Float4_Float4_Float4,
     BuiltInName::clamp,
     TExtension::UNDEFINED,
@@ -7230,7 +6664,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpClamp,
     true);
-constexpr const TFunction function_clamp_00C00C00C(
+constexpr const TFunction clamp_00C00C00C(
     BuiltInId::clamp_Double1_Double1_Double1,
     BuiltInName::clamp,
     TExtension::UNDEFINED,
@@ -7239,7 +6673,7 @@
     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpClamp,
     true);
-constexpr const TFunction function_clamp_10C00C00C(
+constexpr const TFunction clamp_10C00C00C(
     BuiltInId::clamp_Double2_Double1_Double1,
     BuiltInName::clamp,
     TExtension::UNDEFINED,
@@ -7248,7 +6682,7 @@
     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpClamp,
     true);
-constexpr const TFunction function_clamp_20C00C00C(
+constexpr const TFunction clamp_20C00C00C(
     BuiltInId::clamp_Double3_Double1_Double1,
     BuiltInName::clamp,
     TExtension::UNDEFINED,
@@ -7257,7 +6691,7 @@
     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpClamp,
     true);
-constexpr const TFunction function_clamp_30C00C00C(
+constexpr const TFunction clamp_30C00C00C(
     BuiltInId::clamp_Double4_Double1_Double1,
     BuiltInName::clamp,
     TExtension::UNDEFINED,
@@ -7266,7 +6700,7 @@
     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpClamp,
     true);
-constexpr const TFunction function_clamp_10C10C10C(
+constexpr const TFunction clamp_10C10C10C(
     BuiltInId::clamp_Double2_Double2_Double2,
     BuiltInName::clamp,
     TExtension::UNDEFINED,
@@ -7275,7 +6709,7 @@
     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpClamp,
     true);
-constexpr const TFunction function_clamp_20C20C20C(
+constexpr const TFunction clamp_20C20C20C(
     BuiltInId::clamp_Double3_Double3_Double3,
     BuiltInName::clamp,
     TExtension::UNDEFINED,
@@ -7284,7 +6718,7 @@
     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpClamp,
     true);
-constexpr const TFunction function_clamp_30C30C30C(
+constexpr const TFunction clamp_30C30C30C(
     BuiltInId::clamp_Double4_Double4_Double4,
     BuiltInName::clamp,
     TExtension::UNDEFINED,
@@ -7293,565 +6727,503 @@
     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpClamp,
     true);
-constexpr const TFunction function_clamp_00D00D00D(
-    BuiltInId::clamp_Int1_Int1_Int1,
-    BuiltInName::clamp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00D00D00D00D,
-    3,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpClamp,
-    true);
-constexpr const TFunction function_clamp_10D00D00D(
-    BuiltInId::clamp_Int2_Int1_Int1,
-    BuiltInName::clamp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10D00D00D,
-    3,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpClamp,
-    true);
-constexpr const TFunction function_clamp_20D00D00D(
-    BuiltInId::clamp_Int3_Int1_Int1,
-    BuiltInName::clamp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20D00D00D,
-    3,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpClamp,
-    true);
-constexpr const TFunction function_clamp_30D00D00D(
-    BuiltInId::clamp_Int4_Int1_Int1,
-    BuiltInName::clamp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30D00D00D,
-    3,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpClamp,
-    true);
-constexpr const TFunction function_clamp_10D10D10D(
-    BuiltInId::clamp_Int2_Int2_Int2,
-    BuiltInName::clamp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10D10D10D,
-    3,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpClamp,
-    true);
-constexpr const TFunction function_clamp_20D20D20D(
-    BuiltInId::clamp_Int3_Int3_Int3,
-    BuiltInName::clamp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20D20D20D,
-    3,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpClamp,
-    true);
-constexpr const TFunction function_clamp_30D30D30D(
-    BuiltInId::clamp_Int4_Int4_Int4,
-    BuiltInName::clamp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30D30D30D,
-    3,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpClamp,
-    true);
-constexpr const TFunction function_clamp_00E00E00E(
-    BuiltInId::clamp_UInt1_UInt1_UInt1,
-    BuiltInName::clamp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00E00E00E,
-    3,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpClamp,
-    true);
-constexpr const TFunction function_clamp_10E00E00E(
-    BuiltInId::clamp_UInt2_UInt1_UInt1,
-    BuiltInName::clamp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10E00E00E,
-    3,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpClamp,
-    true);
-constexpr const TFunction function_clamp_20E00E00E(
-    BuiltInId::clamp_UInt3_UInt1_UInt1,
-    BuiltInName::clamp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20E00E00E,
-    3,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpClamp,
-    true);
-constexpr const TFunction function_clamp_30E00E00E(
-    BuiltInId::clamp_UInt4_UInt1_UInt1,
-    BuiltInName::clamp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30E00E00E,
-    3,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpClamp,
-    true);
-constexpr const TFunction function_clamp_10E10E10E(
-    BuiltInId::clamp_UInt2_UInt2_UInt2,
-    BuiltInName::clamp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10E10E10E,
-    3,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpClamp,
-    true);
-constexpr const TFunction function_clamp_20E20E20E(
-    BuiltInId::clamp_UInt3_UInt3_UInt3,
-    BuiltInName::clamp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20E20E20E,
-    3,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpClamp,
-    true);
-constexpr const TFunction function_clamp_30E30E30E(
-    BuiltInId::clamp_UInt4_UInt4_UInt4,
-    BuiltInName::clamp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30E30E30E,
-    3,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpClamp,
-    true);
-constexpr const TFunction function_mix_00B00B00B(
-    BuiltInId::mix_Float1_Float1_Float1,
-    BuiltInName::mix,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B00B,
-    3,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpMix,
-    true);
-constexpr const TFunction function_mix_10B10B00B(
-    BuiltInId::mix_Float2_Float2_Float1,
-    BuiltInName::mix,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B10B00B,
-    3,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpMix,
-    true);
-constexpr const TFunction function_mix_20B20B00B(
-    BuiltInId::mix_Float3_Float3_Float1,
-    BuiltInName::mix,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    3,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpMix,
-    true);
-constexpr const TFunction function_mix_30B30B00B(
-    BuiltInId::mix_Float4_Float4_Float1,
-    BuiltInName::mix,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30B00B,
-    3,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpMix,
-    true);
-constexpr const TFunction function_mix_10B10B10B(
-    BuiltInId::mix_Float2_Float2_Float2,
-    BuiltInName::mix,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B10B10B,
-    3,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpMix,
-    true);
-constexpr const TFunction function_mix_20B20B20B(
-    BuiltInId::mix_Float3_Float3_Float3,
-    BuiltInName::mix,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B20B,
-    3,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpMix,
-    true);
-constexpr const TFunction function_mix_30B30B30B(
-    BuiltInId::mix_Float4_Float4_Float4,
-    BuiltInName::mix,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30B30B,
-    3,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpMix,
-    true);
-constexpr const TFunction function_mix_00C00C00C(
-    BuiltInId::mix_Double1_Double1_Double1,
-    BuiltInName::mix,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00C00C00C,
-    3,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpMix,
-    true);
-constexpr const TFunction function_mix_10C10C00C(
-    BuiltInId::mix_Double2_Double2_Double1,
-    BuiltInName::mix,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10C10C00C,
-    3,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpMix,
-    true);
-constexpr const TFunction function_mix_20C20C00C(
-    BuiltInId::mix_Double3_Double3_Double1,
-    BuiltInName::mix,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20C20C00C,
-    3,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpMix,
-    true);
-constexpr const TFunction function_mix_30C30C00C(
-    BuiltInId::mix_Double4_Double4_Double1,
-    BuiltInName::mix,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30C30C00C,
-    3,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpMix,
-    true);
-constexpr const TFunction function_mix_10C10C10C(
-    BuiltInId::mix_Double2_Double2_Double2,
-    BuiltInName::mix,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10C10C10C,
-    3,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpMix,
-    true);
-constexpr const TFunction function_mix_20C20C20C(
-    BuiltInId::mix_Double3_Double3_Double3,
-    BuiltInName::mix,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20C20C20C,
-    3,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpMix,
-    true);
-constexpr const TFunction function_mix_30C30C30C(
-    BuiltInId::mix_Double4_Double4_Double4,
-    BuiltInName::mix,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30C30C30C,
-    3,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpMix,
-    true);
-constexpr const TFunction function_mix_00B00B00F(
-    BuiltInId::mix_Float1_Float1_Bool1,
-    BuiltInName::mix,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B00F,
-    3,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpMix,
-    true);
-constexpr const TFunction function_mix_10B10B10F(
-    BuiltInId::mix_Float2_Float2_Bool2,
-    BuiltInName::mix,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B10B10F,
-    3,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpMix,
-    true);
-constexpr const TFunction function_mix_20B20B20F(
-    BuiltInId::mix_Float3_Float3_Bool3,
-    BuiltInName::mix,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B20F,
-    3,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpMix,
-    true);
-constexpr const TFunction function_mix_30B30B30F(
-    BuiltInId::mix_Float4_Float4_Bool4,
-    BuiltInName::mix,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30B30F,
-    3,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpMix,
-    true);
-constexpr const TFunction function_mix_00C00C00F(
-    BuiltInId::mix_Double1_Double1_Bool1,
-    BuiltInName::mix,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00C00C00F,
-    3,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpMix,
-    true);
-constexpr const TFunction function_mix_10C10C10F(
-    BuiltInId::mix_Double2_Double2_Bool2,
-    BuiltInName::mix,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10C10C10F,
-    3,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpMix,
-    true);
-constexpr const TFunction function_mix_20C20C20F(
-    BuiltInId::mix_Double3_Double3_Bool3,
-    BuiltInName::mix,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20C20C20F,
-    3,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpMix,
-    true);
-constexpr const TFunction function_mix_30C30C30F(
-    BuiltInId::mix_Double4_Double4_Bool4,
-    BuiltInName::mix,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30C30C30F,
-    3,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpMix,
-    true);
-constexpr const TFunction function_mix_00D00D00F(
-    BuiltInId::mix_Int1_Int1_Bool1,
-    BuiltInName::mix,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00D00D00F,
-    3,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpMix,
-    true);
-constexpr const TFunction function_mix_10D10D10F(
-    BuiltInId::mix_Int2_Int2_Bool2,
-    BuiltInName::mix,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10D10D10F,
-    3,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpMix,
-    true);
-constexpr const TFunction function_mix_20D20D20F(
-    BuiltInId::mix_Int3_Int3_Bool3,
-    BuiltInName::mix,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20D20D20F,
-    3,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpMix,
-    true);
-constexpr const TFunction function_mix_30D30D30F(
-    BuiltInId::mix_Int4_Int4_Bool4,
-    BuiltInName::mix,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30D30D30F,
-    3,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpMix,
-    true);
-constexpr const TFunction function_mix_00E00E00F(
-    BuiltInId::mix_UInt1_UInt1_Bool1,
-    BuiltInName::mix,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00E00E00F,
-    3,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpMix,
-    true);
-constexpr const TFunction function_mix_10E10E10F(
-    BuiltInId::mix_UInt2_UInt2_Bool2,
-    BuiltInName::mix,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10E10E10F,
-    3,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpMix,
-    true);
-constexpr const TFunction function_mix_20E20E20F(
-    BuiltInId::mix_UInt3_UInt3_Bool3,
-    BuiltInName::mix,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20E20E20F,
-    3,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpMix,
-    true);
-constexpr const TFunction function_mix_30E30E30F(
-    BuiltInId::mix_UInt4_UInt4_Bool4,
-    BuiltInName::mix,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30E30E30F,
-    3,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpMix,
-    true);
-constexpr const TFunction function_mix_00F00F00F(
-    BuiltInId::mix_Bool1_Bool1_Bool1,
-    BuiltInName::mix,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00F00F00F,
-    3,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpMix,
-    true);
-constexpr const TFunction function_mix_10F10F10F(
-    BuiltInId::mix_Bool2_Bool2_Bool2,
-    BuiltInName::mix,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10F10F10F,
-    3,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpMix,
-    true);
-constexpr const TFunction function_mix_20F20F20F(
-    BuiltInId::mix_Bool3_Bool3_Bool3,
-    BuiltInName::mix,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20F20F20F,
-    3,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpMix,
-    true);
-constexpr const TFunction function_mix_30F30F30F(
-    BuiltInId::mix_Bool4_Bool4_Bool4,
-    BuiltInName::mix,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30F30F30F,
-    3,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpMix,
-    true);
-constexpr const TFunction function_step_00B00B(
-    BuiltInId::step_Float1_Float1,
-    BuiltInName::step,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpStep,
-    true);
-constexpr const TFunction function_step_10B10B(
-    BuiltInId::step_Float2_Float2,
-    BuiltInName::step,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B10B00B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpStep,
-    true);
-constexpr const TFunction function_step_20B20B(
-    BuiltInId::step_Float3_Float3,
-    BuiltInName::step,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpStep,
-    true);
-constexpr const TFunction function_step_30B30B(
-    BuiltInId::step_Float4_Float4,
-    BuiltInName::step,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30B30F,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpStep,
-    true);
-constexpr const TFunction function_step_00B10B(
-    BuiltInId::step_Float1_Float2,
-    BuiltInName::step,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B10B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpStep,
-    true);
-constexpr const TFunction function_step_00B20B(
-    BuiltInId::step_Float1_Float3,
-    BuiltInName::step,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B20B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpStep,
-    true);
-constexpr const TFunction function_step_00B30B(
-    BuiltInId::step_Float1_Float4,
-    BuiltInName::step,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B30B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpStep,
-    true);
-constexpr const TFunction function_step_00C00C(
-    BuiltInId::step_Double1_Double1,
-    BuiltInName::step,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00C00C10C,
-    2,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpStep,
-    true);
-constexpr const TFunction function_step_10C10C(
-    BuiltInId::step_Double2_Double2,
-    BuiltInName::step,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10C10C10F,
-    2,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpStep,
-    true);
-constexpr const TFunction function_step_20C20C(
-    BuiltInId::step_Double3_Double3,
-    BuiltInName::step,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20C20C20F,
-    2,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpStep,
-    true);
-constexpr const TFunction function_step_30C30C(
-    BuiltInId::step_Double4_Double4,
-    BuiltInName::step,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30C30C00B,
-    2,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpStep,
-    true);
-constexpr const TFunction function_step_00C10C(
-    BuiltInId::step_Double1_Double2,
-    BuiltInName::step,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00C10C,
-    2,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpStep,
-    true);
-constexpr const TFunction function_step_00C20C(
-    BuiltInId::step_Double1_Double3,
-    BuiltInName::step,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00C20C,
-    2,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpStep,
-    true);
-constexpr const TFunction function_step_00C30C(
-    BuiltInId::step_Double1_Double4,
-    BuiltInName::step,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00C30C,
-    2,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpStep,
-    true);
-constexpr const TFunction function_smoothstep_00C00C00C(
+constexpr const TFunction clamp_00D00D00D(BuiltInId::clamp_Int1_Int1_Int1,
+                                          BuiltInName::clamp,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p00D00D00D00D,
+                                          3,
+                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                          EOpClamp,
+                                          true);
+constexpr const TFunction clamp_10D00D00D(BuiltInId::clamp_Int2_Int1_Int1,
+                                          BuiltInName::clamp,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p10D00D00D,
+                                          3,
+                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                          EOpClamp,
+                                          true);
+constexpr const TFunction clamp_20D00D00D(BuiltInId::clamp_Int3_Int1_Int1,
+                                          BuiltInName::clamp,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p20D00D00D,
+                                          3,
+                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                          EOpClamp,
+                                          true);
+constexpr const TFunction clamp_30D00D00D(BuiltInId::clamp_Int4_Int1_Int1,
+                                          BuiltInName::clamp,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p30D00D00D,
+                                          3,
+                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                          EOpClamp,
+                                          true);
+constexpr const TFunction clamp_10D10D10D(BuiltInId::clamp_Int2_Int2_Int2,
+                                          BuiltInName::clamp,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p10D10D10D,
+                                          3,
+                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                          EOpClamp,
+                                          true);
+constexpr const TFunction clamp_20D20D20D(BuiltInId::clamp_Int3_Int3_Int3,
+                                          BuiltInName::clamp,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p20D20D20D,
+                                          3,
+                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                          EOpClamp,
+                                          true);
+constexpr const TFunction clamp_30D30D30D(BuiltInId::clamp_Int4_Int4_Int4,
+                                          BuiltInName::clamp,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p30D30D30D,
+                                          3,
+                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                          EOpClamp,
+                                          true);
+constexpr const TFunction clamp_00E00E00E(BuiltInId::clamp_UInt1_UInt1_UInt1,
+                                          BuiltInName::clamp,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p00E00E00E,
+                                          3,
+                                          StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                          EOpClamp,
+                                          true);
+constexpr const TFunction clamp_10E00E00E(BuiltInId::clamp_UInt2_UInt1_UInt1,
+                                          BuiltInName::clamp,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p10E00E00E,
+                                          3,
+                                          StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                          EOpClamp,
+                                          true);
+constexpr const TFunction clamp_20E00E00E(BuiltInId::clamp_UInt3_UInt1_UInt1,
+                                          BuiltInName::clamp,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p20E00E00E,
+                                          3,
+                                          StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                          EOpClamp,
+                                          true);
+constexpr const TFunction clamp_30E00E00E(BuiltInId::clamp_UInt4_UInt1_UInt1,
+                                          BuiltInName::clamp,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p30E00E00E,
+                                          3,
+                                          StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                          EOpClamp,
+                                          true);
+constexpr const TFunction clamp_10E10E10E(BuiltInId::clamp_UInt2_UInt2_UInt2,
+                                          BuiltInName::clamp,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p10E10E10E,
+                                          3,
+                                          StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                          EOpClamp,
+                                          true);
+constexpr const TFunction clamp_20E20E20E(BuiltInId::clamp_UInt3_UInt3_UInt3,
+                                          BuiltInName::clamp,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p20E20E20E,
+                                          3,
+                                          StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                          EOpClamp,
+                                          true);
+constexpr const TFunction clamp_30E30E30E(BuiltInId::clamp_UInt4_UInt4_UInt4,
+                                          BuiltInName::clamp,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p30E30E30E,
+                                          3,
+                                          StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                          EOpClamp,
+                                          true);
+constexpr const TFunction mix_00B00B00B(BuiltInId::mix_Float1_Float1_Float1,
+                                        BuiltInName::mix,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p00B00B00B,
+                                        3,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                        EOpMix,
+                                        true);
+constexpr const TFunction mix_10B10B00B(BuiltInId::mix_Float2_Float2_Float1,
+                                        BuiltInName::mix,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p10B10B00B,
+                                        3,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                        EOpMix,
+                                        true);
+constexpr const TFunction mix_20B20B00B(BuiltInId::mix_Float3_Float3_Float1,
+                                        BuiltInName::mix,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p20B20B00B,
+                                        3,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                        EOpMix,
+                                        true);
+constexpr const TFunction mix_30B30B00B(BuiltInId::mix_Float4_Float4_Float1,
+                                        BuiltInName::mix,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p30B30B00B,
+                                        3,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                        EOpMix,
+                                        true);
+constexpr const TFunction mix_10B10B10B(BuiltInId::mix_Float2_Float2_Float2,
+                                        BuiltInName::mix,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p10B10B10B,
+                                        3,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                        EOpMix,
+                                        true);
+constexpr const TFunction mix_20B20B20B(BuiltInId::mix_Float3_Float3_Float3,
+                                        BuiltInName::mix,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p20B20B20B,
+                                        3,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                        EOpMix,
+                                        true);
+constexpr const TFunction mix_30B30B30B(BuiltInId::mix_Float4_Float4_Float4,
+                                        BuiltInName::mix,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p30B30B30B,
+                                        3,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                        EOpMix,
+                                        true);
+constexpr const TFunction mix_00C00C00C(BuiltInId::mix_Double1_Double1_Double1,
+                                        BuiltInName::mix,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p00C00C00C,
+                                        3,
+                                        StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
+                                        EOpMix,
+                                        true);
+constexpr const TFunction mix_10C10C00C(BuiltInId::mix_Double2_Double2_Double1,
+                                        BuiltInName::mix,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p10C10C00C,
+                                        3,
+                                        StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
+                                        EOpMix,
+                                        true);
+constexpr const TFunction mix_20C20C00C(BuiltInId::mix_Double3_Double3_Double1,
+                                        BuiltInName::mix,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p20C20C00C,
+                                        3,
+                                        StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
+                                        EOpMix,
+                                        true);
+constexpr const TFunction mix_30C30C00C(BuiltInId::mix_Double4_Double4_Double1,
+                                        BuiltInName::mix,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p30C30C00C,
+                                        3,
+                                        StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
+                                        EOpMix,
+                                        true);
+constexpr const TFunction mix_10C10C10C(BuiltInId::mix_Double2_Double2_Double2,
+                                        BuiltInName::mix,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p10C10C10C,
+                                        3,
+                                        StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
+                                        EOpMix,
+                                        true);
+constexpr const TFunction mix_20C20C20C(BuiltInId::mix_Double3_Double3_Double3,
+                                        BuiltInName::mix,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p20C20C20C,
+                                        3,
+                                        StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
+                                        EOpMix,
+                                        true);
+constexpr const TFunction mix_30C30C30C(BuiltInId::mix_Double4_Double4_Double4,
+                                        BuiltInName::mix,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p30C30C30C,
+                                        3,
+                                        StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
+                                        EOpMix,
+                                        true);
+constexpr const TFunction mix_00B00B00F(BuiltInId::mix_Float1_Float1_Bool1,
+                                        BuiltInName::mix,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p00B00B00F,
+                                        3,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                        EOpMix,
+                                        true);
+constexpr const TFunction mix_10B10B10F(BuiltInId::mix_Float2_Float2_Bool2,
+                                        BuiltInName::mix,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p10B10B10F,
+                                        3,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                        EOpMix,
+                                        true);
+constexpr const TFunction mix_20B20B20F(BuiltInId::mix_Float3_Float3_Bool3,
+                                        BuiltInName::mix,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p20B20B20F,
+                                        3,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                        EOpMix,
+                                        true);
+constexpr const TFunction mix_30B30B30F(BuiltInId::mix_Float4_Float4_Bool4,
+                                        BuiltInName::mix,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p30B30B30F,
+                                        3,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                        EOpMix,
+                                        true);
+constexpr const TFunction mix_00C00C00F(BuiltInId::mix_Double1_Double1_Bool1,
+                                        BuiltInName::mix,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p00C00C00F,
+                                        3,
+                                        StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
+                                        EOpMix,
+                                        true);
+constexpr const TFunction mix_10C10C10F(BuiltInId::mix_Double2_Double2_Bool2,
+                                        BuiltInName::mix,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p10C10C10F,
+                                        3,
+                                        StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
+                                        EOpMix,
+                                        true);
+constexpr const TFunction mix_20C20C20F(BuiltInId::mix_Double3_Double3_Bool3,
+                                        BuiltInName::mix,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p20C20C20F,
+                                        3,
+                                        StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
+                                        EOpMix,
+                                        true);
+constexpr const TFunction mix_30C30C30F(BuiltInId::mix_Double4_Double4_Bool4,
+                                        BuiltInName::mix,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p30C30C30F,
+                                        3,
+                                        StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
+                                        EOpMix,
+                                        true);
+constexpr const TFunction mix_00D00D00F(BuiltInId::mix_Int1_Int1_Bool1,
+                                        BuiltInName::mix,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p00D00D00F,
+                                        3,
+                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                        EOpMix,
+                                        true);
+constexpr const TFunction mix_10D10D10F(BuiltInId::mix_Int2_Int2_Bool2,
+                                        BuiltInName::mix,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p10D10D10F,
+                                        3,
+                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                        EOpMix,
+                                        true);
+constexpr const TFunction mix_20D20D20F(BuiltInId::mix_Int3_Int3_Bool3,
+                                        BuiltInName::mix,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p20D20D20F,
+                                        3,
+                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                        EOpMix,
+                                        true);
+constexpr const TFunction mix_30D30D30F(BuiltInId::mix_Int4_Int4_Bool4,
+                                        BuiltInName::mix,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p30D30D30F,
+                                        3,
+                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                        EOpMix,
+                                        true);
+constexpr const TFunction mix_00E00E00F(BuiltInId::mix_UInt1_UInt1_Bool1,
+                                        BuiltInName::mix,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p00E00E00F,
+                                        3,
+                                        StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                        EOpMix,
+                                        true);
+constexpr const TFunction mix_10E10E10F(BuiltInId::mix_UInt2_UInt2_Bool2,
+                                        BuiltInName::mix,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p10E10E10F,
+                                        3,
+                                        StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                        EOpMix,
+                                        true);
+constexpr const TFunction mix_20E20E20F(BuiltInId::mix_UInt3_UInt3_Bool3,
+                                        BuiltInName::mix,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p20E20E20F,
+                                        3,
+                                        StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                        EOpMix,
+                                        true);
+constexpr const TFunction mix_30E30E30F(BuiltInId::mix_UInt4_UInt4_Bool4,
+                                        BuiltInName::mix,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p30E30E30F,
+                                        3,
+                                        StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                        EOpMix,
+                                        true);
+constexpr const TFunction mix_00F00F00F(BuiltInId::mix_Bool1_Bool1_Bool1,
+                                        BuiltInName::mix,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p00F00F00F,
+                                        3,
+                                        StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
+                                        EOpMix,
+                                        true);
+constexpr const TFunction mix_10F10F10F(BuiltInId::mix_Bool2_Bool2_Bool2,
+                                        BuiltInName::mix,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p10F10F10F,
+                                        3,
+                                        StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
+                                        EOpMix,
+                                        true);
+constexpr const TFunction mix_20F20F20F(BuiltInId::mix_Bool3_Bool3_Bool3,
+                                        BuiltInName::mix,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p20F20F20F,
+                                        3,
+                                        StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
+                                        EOpMix,
+                                        true);
+constexpr const TFunction mix_30F30F30F(BuiltInId::mix_Bool4_Bool4_Bool4,
+                                        BuiltInName::mix,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p30F30F30F,
+                                        3,
+                                        StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
+                                        EOpMix,
+                                        true);
+constexpr const TFunction step_00B00B(BuiltInId::step_Float1_Float1,
+                                      BuiltInName::step,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p00B00B30B,
+                                      2,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                      EOpStep,
+                                      true);
+constexpr const TFunction step_10B10B(BuiltInId::step_Float2_Float2,
+                                      BuiltInName::step,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p10B10B00B,
+                                      2,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                      EOpStep,
+                                      true);
+constexpr const TFunction step_20B20B(BuiltInId::step_Float3_Float3,
+                                      BuiltInName::step,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p20B20B00B,
+                                      2,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                      EOpStep,
+                                      true);
+constexpr const TFunction step_30B30B(BuiltInId::step_Float4_Float4,
+                                      BuiltInName::step,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p30B30B30F,
+                                      2,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                      EOpStep,
+                                      true);
+constexpr const TFunction step_00B10B(BuiltInId::step_Float1_Float2,
+                                      BuiltInName::step,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p00B10B,
+                                      2,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                      EOpStep,
+                                      true);
+constexpr const TFunction step_00B20B(BuiltInId::step_Float1_Float3,
+                                      BuiltInName::step,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p00B20B,
+                                      2,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                      EOpStep,
+                                      true);
+constexpr const TFunction step_00B30B(BuiltInId::step_Float1_Float4,
+                                      BuiltInName::step,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p00B30B,
+                                      2,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                      EOpStep,
+                                      true);
+constexpr const TFunction step_00C00C(BuiltInId::step_Double1_Double1,
+                                      BuiltInName::step,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p00C00C10C,
+                                      2,
+                                      StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
+                                      EOpStep,
+                                      true);
+constexpr const TFunction step_10C10C(BuiltInId::step_Double2_Double2,
+                                      BuiltInName::step,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p10C10C10F,
+                                      2,
+                                      StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
+                                      EOpStep,
+                                      true);
+constexpr const TFunction step_20C20C(BuiltInId::step_Double3_Double3,
+                                      BuiltInName::step,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p20C20C20F,
+                                      2,
+                                      StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
+                                      EOpStep,
+                                      true);
+constexpr const TFunction step_30C30C(BuiltInId::step_Double4_Double4,
+                                      BuiltInName::step,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p30C30C00B,
+                                      2,
+                                      StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
+                                      EOpStep,
+                                      true);
+constexpr const TFunction step_00C10C(BuiltInId::step_Double1_Double2,
+                                      BuiltInName::step,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p00C10C,
+                                      2,
+                                      StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
+                                      EOpStep,
+                                      true);
+constexpr const TFunction step_00C20C(BuiltInId::step_Double1_Double3,
+                                      BuiltInName::step,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p00C20C,
+                                      2,
+                                      StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
+                                      EOpStep,
+                                      true);
+constexpr const TFunction step_00C30C(BuiltInId::step_Double1_Double4,
+                                      BuiltInName::step,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p00C30C,
+                                      2,
+                                      StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
+                                      EOpStep,
+                                      true);
+constexpr const TFunction smoothstep_00C00C00C(
     BuiltInId::smoothstep_Double1_Double1_Double1,
     BuiltInName::smoothstep,
     TExtension::UNDEFINED,
@@ -7860,7 +7232,7 @@
     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpSmoothstep,
     true);
-constexpr const TFunction function_smoothstep_10C10C10C(
+constexpr const TFunction smoothstep_10C10C10C(
     BuiltInId::smoothstep_Double2_Double2_Double2,
     BuiltInName::smoothstep,
     TExtension::UNDEFINED,
@@ -7869,7 +7241,7 @@
     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpSmoothstep,
     true);
-constexpr const TFunction function_smoothstep_20C20C20C(
+constexpr const TFunction smoothstep_20C20C20C(
     BuiltInId::smoothstep_Double3_Double3_Double3,
     BuiltInName::smoothstep,
     TExtension::UNDEFINED,
@@ -7878,7 +7250,7 @@
     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpSmoothstep,
     true);
-constexpr const TFunction function_smoothstep_30C30C30C(
+constexpr const TFunction smoothstep_30C30C30C(
     BuiltInId::smoothstep_Double4_Double4_Double4,
     BuiltInName::smoothstep,
     TExtension::UNDEFINED,
@@ -7887,7 +7259,7 @@
     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpSmoothstep,
     true);
-constexpr const TFunction function_smoothstep_00C00C10C(
+constexpr const TFunction smoothstep_00C00C10C(
     BuiltInId::smoothstep_Double1_Double1_Double2,
     BuiltInName::smoothstep,
     TExtension::UNDEFINED,
@@ -7896,7 +7268,7 @@
     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpSmoothstep,
     true);
-constexpr const TFunction function_smoothstep_00C00C20C(
+constexpr const TFunction smoothstep_00C00C20C(
     BuiltInId::smoothstep_Double1_Double1_Double3,
     BuiltInName::smoothstep,
     TExtension::UNDEFINED,
@@ -7905,7 +7277,7 @@
     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpSmoothstep,
     true);
-constexpr const TFunction function_smoothstep_00C00C30C(
+constexpr const TFunction smoothstep_00C00C30C(
     BuiltInId::smoothstep_Double1_Double1_Double4,
     BuiltInName::smoothstep,
     TExtension::UNDEFINED,
@@ -7914,7 +7286,7 @@
     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpSmoothstep,
     true);
-constexpr const TFunction function_smoothstep_00B00B00B(
+constexpr const TFunction smoothstep_00B00B00B(
     BuiltInId::smoothstep_Float1_Float1_Float1,
     BuiltInName::smoothstep,
     TExtension::UNDEFINED,
@@ -7923,7 +7295,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpSmoothstep,
     true);
-constexpr const TFunction function_smoothstep_10B10B10B(
+constexpr const TFunction smoothstep_10B10B10B(
     BuiltInId::smoothstep_Float2_Float2_Float2,
     BuiltInName::smoothstep,
     TExtension::UNDEFINED,
@@ -7932,7 +7304,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpSmoothstep,
     true);
-constexpr const TFunction function_smoothstep_20B20B20B(
+constexpr const TFunction smoothstep_20B20B20B(
     BuiltInId::smoothstep_Float3_Float3_Float3,
     BuiltInName::smoothstep,
     TExtension::UNDEFINED,
@@ -7941,7 +7313,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpSmoothstep,
     true);
-constexpr const TFunction function_smoothstep_30B30B30B(
+constexpr const TFunction smoothstep_30B30B30B(
     BuiltInId::smoothstep_Float4_Float4_Float4,
     BuiltInName::smoothstep,
     TExtension::UNDEFINED,
@@ -7950,7 +7322,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpSmoothstep,
     true);
-constexpr const TFunction function_smoothstep_00B00B10B(
+constexpr const TFunction smoothstep_00B00B10B(
     BuiltInId::smoothstep_Float1_Float1_Float2,
     BuiltInName::smoothstep,
     TExtension::UNDEFINED,
@@ -7959,7 +7331,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpSmoothstep,
     true);
-constexpr const TFunction function_smoothstep_00B00B20B(
+constexpr const TFunction smoothstep_00B00B20B(
     BuiltInId::smoothstep_Float1_Float1_Float3,
     BuiltInName::smoothstep,
     TExtension::UNDEFINED,
@@ -7968,7 +7340,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpSmoothstep,
     true);
-constexpr const TFunction function_smoothstep_00B00B30B(
+constexpr const TFunction smoothstep_00B00B30B(
     BuiltInId::smoothstep_Float1_Float1_Float4,
     BuiltInName::smoothstep,
     TExtension::UNDEFINED,
@@ -7977,223 +7349,199 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpSmoothstep,
     true);
-constexpr const TFunction function_modf_00B00B(
-    BuiltInId::modf_Float1_Float1,
-    BuiltInName::modf,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B_o_00B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpModf,
-    false);
-constexpr const TFunction function_modf_10B10B(
-    BuiltInId::modf_Float2_Float2,
-    BuiltInName::modf,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B_o_10B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpModf,
-    false);
-constexpr const TFunction function_modf_20B20B(
-    BuiltInId::modf_Float3_Float3,
-    BuiltInName::modf,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B_o_20B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpModf,
-    false);
-constexpr const TFunction function_modf_30B30B(
-    BuiltInId::modf_Float4_Float4,
-    BuiltInName::modf,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B_o_30B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpModf,
-    false);
-constexpr const TFunction function_modf_00C00C(
-    BuiltInId::modf_Double1_Double1,
-    BuiltInName::modf,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00C_o_00C,
-    2,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpModf,
-    false);
-constexpr const TFunction function_modf_10C10C(
-    BuiltInId::modf_Double2_Double2,
-    BuiltInName::modf,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10C_o_10C,
-    2,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpModf,
-    false);
-constexpr const TFunction function_modf_20C20C(
-    BuiltInId::modf_Double3_Double3,
-    BuiltInName::modf,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20C_o_20C,
-    2,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpModf,
-    false);
-constexpr const TFunction function_modf_30C30C(
-    BuiltInId::modf_Double4_Double4,
-    BuiltInName::modf,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30C_o_30C,
-    2,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpModf,
-    false);
-constexpr const TFunction function_isnan_00B(
-    BuiltInId::isnan_Float1,
-    BuiltInName::isnan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    1,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpIsnan,
-    true);
-constexpr const TFunction function_isnan_10B(
-    BuiltInId::isnan_Float2,
-    BuiltInName::isnan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B_o_10B,
-    1,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpIsnan,
-    true);
-constexpr const TFunction function_isnan_20B(
-    BuiltInId::isnan_Float3,
-    BuiltInName::isnan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    1,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpIsnan,
-    true);
-constexpr const TFunction function_isnan_30B(
-    BuiltInId::isnan_Float4,
-    BuiltInName::isnan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30D,
-    1,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpIsnan,
-    true);
-constexpr const TFunction function_isnan_00C(
-    BuiltInId::isnan_Double1,
-    BuiltInName::isnan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00C10C,
-    1,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpIsnan,
-    true);
-constexpr const TFunction function_isnan_10C(
-    BuiltInId::isnan_Double2,
-    BuiltInName::isnan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10C_o_10C,
-    1,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpIsnan,
-    true);
-constexpr const TFunction function_isnan_20C(
-    BuiltInId::isnan_Double3,
-    BuiltInName::isnan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20C20C20F,
-    1,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpIsnan,
-    true);
-constexpr const TFunction function_isnan_30C(
-    BuiltInId::isnan_Double4,
-    BuiltInName::isnan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30C30C00B,
-    1,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpIsnan,
-    true);
-constexpr const TFunction function_isinf_00B(
-    BuiltInId::isinf_Float1,
-    BuiltInName::isinf,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    1,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpIsinf,
-    true);
-constexpr const TFunction function_isinf_10B(
-    BuiltInId::isinf_Float2,
-    BuiltInName::isinf,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B_o_10B,
-    1,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpIsinf,
-    true);
-constexpr const TFunction function_isinf_20B(
-    BuiltInId::isinf_Float3,
-    BuiltInName::isinf,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    1,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpIsinf,
-    true);
-constexpr const TFunction function_isinf_30B(
-    BuiltInId::isinf_Float4,
-    BuiltInName::isinf,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30D,
-    1,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpIsinf,
-    true);
-constexpr const TFunction function_isinf_00C(
-    BuiltInId::isinf_Double1,
-    BuiltInName::isinf,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00C10C,
-    1,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpIsinf,
-    true);
-constexpr const TFunction function_isinf_10C(
-    BuiltInId::isinf_Double2,
-    BuiltInName::isinf,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10C_o_10C,
-    1,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpIsinf,
-    true);
-constexpr const TFunction function_isinf_20C(
-    BuiltInId::isinf_Double3,
-    BuiltInName::isinf,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20C20C20F,
-    1,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpIsinf,
-    true);
-constexpr const TFunction function_isinf_30C(
-    BuiltInId::isinf_Double4,
-    BuiltInName::isinf,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30C30C00B,
-    1,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpIsinf,
-    true);
-constexpr const TFunction function_floatBitsToInt_00B(
+constexpr const TFunction modf_00B00B(BuiltInId::modf_Float1_Float1,
+                                      BuiltInName::modf,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p00B_o_00B,
+                                      2,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                      EOpModf,
+                                      false);
+constexpr const TFunction modf_10B10B(BuiltInId::modf_Float2_Float2,
+                                      BuiltInName::modf,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p10B_o_10B,
+                                      2,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                      EOpModf,
+                                      false);
+constexpr const TFunction modf_20B20B(BuiltInId::modf_Float3_Float3,
+                                      BuiltInName::modf,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p20B_o_20B,
+                                      2,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                      EOpModf,
+                                      false);
+constexpr const TFunction modf_30B30B(BuiltInId::modf_Float4_Float4,
+                                      BuiltInName::modf,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p30B_o_30B,
+                                      2,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                      EOpModf,
+                                      false);
+constexpr const TFunction modf_00C00C(BuiltInId::modf_Double1_Double1,
+                                      BuiltInName::modf,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p00C_o_00C,
+                                      2,
+                                      StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
+                                      EOpModf,
+                                      false);
+constexpr const TFunction modf_10C10C(BuiltInId::modf_Double2_Double2,
+                                      BuiltInName::modf,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p10C_o_10C,
+                                      2,
+                                      StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
+                                      EOpModf,
+                                      false);
+constexpr const TFunction modf_20C20C(BuiltInId::modf_Double3_Double3,
+                                      BuiltInName::modf,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p20C_o_20C,
+                                      2,
+                                      StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
+                                      EOpModf,
+                                      false);
+constexpr const TFunction modf_30C30C(BuiltInId::modf_Double4_Double4,
+                                      BuiltInName::modf,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p30C_o_30C,
+                                      2,
+                                      StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
+                                      EOpModf,
+                                      false);
+constexpr const TFunction isnan_00B(BuiltInId::isnan_Float1,
+                                    BuiltInName::isnan,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p00B00B30B,
+                                    1,
+                                    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
+                                    EOpIsnan,
+                                    true);
+constexpr const TFunction isnan_10B(BuiltInId::isnan_Float2,
+                                    BuiltInName::isnan,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p10B_o_10B,
+                                    1,
+                                    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
+                                    EOpIsnan,
+                                    true);
+constexpr const TFunction isnan_20B(BuiltInId::isnan_Float3,
+                                    BuiltInName::isnan,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p20B20B00B,
+                                    1,
+                                    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
+                                    EOpIsnan,
+                                    true);
+constexpr const TFunction isnan_30B(BuiltInId::isnan_Float4,
+                                    BuiltInName::isnan,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p30B30D,
+                                    1,
+                                    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
+                                    EOpIsnan,
+                                    true);
+constexpr const TFunction isnan_00C(BuiltInId::isnan_Double1,
+                                    BuiltInName::isnan,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p00C10C,
+                                    1,
+                                    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
+                                    EOpIsnan,
+                                    true);
+constexpr const TFunction isnan_10C(BuiltInId::isnan_Double2,
+                                    BuiltInName::isnan,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p10C_o_10C,
+                                    1,
+                                    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
+                                    EOpIsnan,
+                                    true);
+constexpr const TFunction isnan_20C(BuiltInId::isnan_Double3,
+                                    BuiltInName::isnan,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p20C20C20F,
+                                    1,
+                                    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
+                                    EOpIsnan,
+                                    true);
+constexpr const TFunction isnan_30C(BuiltInId::isnan_Double4,
+                                    BuiltInName::isnan,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p30C30C00B,
+                                    1,
+                                    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
+                                    EOpIsnan,
+                                    true);
+constexpr const TFunction isinf_00B(BuiltInId::isinf_Float1,
+                                    BuiltInName::isinf,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p00B00B30B,
+                                    1,
+                                    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
+                                    EOpIsinf,
+                                    true);
+constexpr const TFunction isinf_10B(BuiltInId::isinf_Float2,
+                                    BuiltInName::isinf,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p10B_o_10B,
+                                    1,
+                                    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
+                                    EOpIsinf,
+                                    true);
+constexpr const TFunction isinf_20B(BuiltInId::isinf_Float3,
+                                    BuiltInName::isinf,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p20B20B00B,
+                                    1,
+                                    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
+                                    EOpIsinf,
+                                    true);
+constexpr const TFunction isinf_30B(BuiltInId::isinf_Float4,
+                                    BuiltInName::isinf,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p30B30D,
+                                    1,
+                                    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
+                                    EOpIsinf,
+                                    true);
+constexpr const TFunction isinf_00C(BuiltInId::isinf_Double1,
+                                    BuiltInName::isinf,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p00C10C,
+                                    1,
+                                    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
+                                    EOpIsinf,
+                                    true);
+constexpr const TFunction isinf_10C(BuiltInId::isinf_Double2,
+                                    BuiltInName::isinf,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p10C_o_10C,
+                                    1,
+                                    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
+                                    EOpIsinf,
+                                    true);
+constexpr const TFunction isinf_20C(BuiltInId::isinf_Double3,
+                                    BuiltInName::isinf,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p20C20C20F,
+                                    1,
+                                    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
+                                    EOpIsinf,
+                                    true);
+constexpr const TFunction isinf_30C(BuiltInId::isinf_Double4,
+                                    BuiltInName::isinf,
+                                    TExtension::UNDEFINED,
+                                    BuiltInParameters::p30C30C00B,
+                                    1,
+                                    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
+                                    EOpIsinf,
+                                    true);
+constexpr const TFunction floatBitsToInt_00B(
     BuiltInId::floatBitsToInt_Float1,
     BuiltInName::floatBitsToInt,
     TExtension::UNDEFINED,
@@ -8202,7 +7550,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpFloatBitsToInt,
     true);
-constexpr const TFunction function_floatBitsToInt_10B(
+constexpr const TFunction floatBitsToInt_10B(
     BuiltInId::floatBitsToInt_Float2,
     BuiltInName::floatBitsToInt,
     TExtension::UNDEFINED,
@@ -8211,7 +7559,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpFloatBitsToInt,
     true);
-constexpr const TFunction function_floatBitsToInt_20B(
+constexpr const TFunction floatBitsToInt_20B(
     BuiltInId::floatBitsToInt_Float3,
     BuiltInName::floatBitsToInt,
     TExtension::UNDEFINED,
@@ -8220,7 +7568,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpFloatBitsToInt,
     true);
-constexpr const TFunction function_floatBitsToInt_30B(
+constexpr const TFunction floatBitsToInt_30B(
     BuiltInId::floatBitsToInt_Float4,
     BuiltInName::floatBitsToInt,
     TExtension::UNDEFINED,
@@ -8229,7 +7577,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpFloatBitsToInt,
     true);
-constexpr const TFunction function_floatBitsToUint_00B(
+constexpr const TFunction floatBitsToUint_00B(
     BuiltInId::floatBitsToUint_Float1,
     BuiltInName::floatBitsToUint,
     TExtension::UNDEFINED,
@@ -8238,7 +7586,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpFloatBitsToUint,
     true);
-constexpr const TFunction function_floatBitsToUint_10B(
+constexpr const TFunction floatBitsToUint_10B(
     BuiltInId::floatBitsToUint_Float2,
     BuiltInName::floatBitsToUint,
     TExtension::UNDEFINED,
@@ -8247,7 +7595,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpFloatBitsToUint,
     true);
-constexpr const TFunction function_floatBitsToUint_20B(
+constexpr const TFunction floatBitsToUint_20B(
     BuiltInId::floatBitsToUint_Float3,
     BuiltInName::floatBitsToUint,
     TExtension::UNDEFINED,
@@ -8256,7 +7604,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpFloatBitsToUint,
     true);
-constexpr const TFunction function_floatBitsToUint_30B(
+constexpr const TFunction floatBitsToUint_30B(
     BuiltInId::floatBitsToUint_Float4,
     BuiltInName::floatBitsToUint,
     TExtension::UNDEFINED,
@@ -8265,7 +7613,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpFloatBitsToUint,
     true);
-constexpr const TFunction function_intBitsToFloat_00D(
+constexpr const TFunction intBitsToFloat_00D(
     BuiltInId::intBitsToFloat_Int1,
     BuiltInName::intBitsToFloat,
     TExtension::UNDEFINED,
@@ -8274,7 +7622,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpIntBitsToFloat,
     true);
-constexpr const TFunction function_intBitsToFloat_10D(
+constexpr const TFunction intBitsToFloat_10D(
     BuiltInId::intBitsToFloat_Int2,
     BuiltInName::intBitsToFloat,
     TExtension::UNDEFINED,
@@ -8283,7 +7631,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpIntBitsToFloat,
     true);
-constexpr const TFunction function_intBitsToFloat_20D(
+constexpr const TFunction intBitsToFloat_20D(
     BuiltInId::intBitsToFloat_Int3,
     BuiltInName::intBitsToFloat,
     TExtension::UNDEFINED,
@@ -8292,7 +7640,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpIntBitsToFloat,
     true);
-constexpr const TFunction function_intBitsToFloat_30D(
+constexpr const TFunction intBitsToFloat_30D(
     BuiltInId::intBitsToFloat_Int4,
     BuiltInName::intBitsToFloat,
     TExtension::UNDEFINED,
@@ -8301,7 +7649,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpIntBitsToFloat,
     true);
-constexpr const TFunction function_uintBitsToFloat_00E(
+constexpr const TFunction uintBitsToFloat_00E(
     BuiltInId::uintBitsToFloat_UInt1,
     BuiltInName::uintBitsToFloat,
     TExtension::UNDEFINED,
@@ -8310,7 +7658,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpUintBitsToFloat,
     true);
-constexpr const TFunction function_uintBitsToFloat_10E(
+constexpr const TFunction uintBitsToFloat_10E(
     BuiltInId::uintBitsToFloat_UInt2,
     BuiltInName::uintBitsToFloat,
     TExtension::UNDEFINED,
@@ -8319,7 +7667,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpUintBitsToFloat,
     true);
-constexpr const TFunction function_uintBitsToFloat_20E(
+constexpr const TFunction uintBitsToFloat_20E(
     BuiltInId::uintBitsToFloat_UInt3,
     BuiltInName::uintBitsToFloat,
     TExtension::UNDEFINED,
@@ -8328,7 +7676,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpUintBitsToFloat,
     true);
-constexpr const TFunction function_uintBitsToFloat_30E(
+constexpr const TFunction uintBitsToFloat_30E(
     BuiltInId::uintBitsToFloat_UInt4,
     BuiltInName::uintBitsToFloat,
     TExtension::UNDEFINED,
@@ -8337,223 +7685,199 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpUintBitsToFloat,
     true);
-constexpr const TFunction function_fma_00B00B00B(
-    BuiltInId::fma_Float1_Float1_Float1,
-    BuiltInName::fma,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B00B,
-    3,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpFma,
-    true);
-constexpr const TFunction function_fma_10B10B10B(
-    BuiltInId::fma_Float2_Float2_Float2,
-    BuiltInName::fma,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B10B10B,
-    3,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpFma,
-    true);
-constexpr const TFunction function_fma_20B20B20B(
-    BuiltInId::fma_Float3_Float3_Float3,
-    BuiltInName::fma,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B20B,
-    3,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpFma,
-    true);
-constexpr const TFunction function_fma_30B30B30B(
-    BuiltInId::fma_Float4_Float4_Float4,
-    BuiltInName::fma,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30B30B,
-    3,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpFma,
-    true);
-constexpr const TFunction function_fma_00C00C00C(
-    BuiltInId::fma_Double1_Double1_Double1,
-    BuiltInName::fma,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00C00C00C,
-    3,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpFma,
-    true);
-constexpr const TFunction function_fma_10C10C10C(
-    BuiltInId::fma_Double2_Double2_Double2,
-    BuiltInName::fma,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10C10C10C,
-    3,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpFma,
-    true);
-constexpr const TFunction function_fma_20C20C20C(
-    BuiltInId::fma_Double3_Double3_Double3,
-    BuiltInName::fma,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20C20C20C,
-    3,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpFma,
-    true);
-constexpr const TFunction function_fma_30C30C30C(
-    BuiltInId::fma_Double4_Double4_Double4,
-    BuiltInName::fma,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30C30C30C,
-    3,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpFma,
-    true);
-constexpr const TFunction function_frexp_00B00D(
-    BuiltInId::frexp_Float1_Int1,
-    BuiltInName::frexp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B_o_00D,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpFrexp,
-    false);
-constexpr const TFunction function_frexp_10B10D(
-    BuiltInId::frexp_Float2_Int2,
-    BuiltInName::frexp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B_o_10D,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpFrexp,
-    false);
-constexpr const TFunction function_frexp_20B20D(
-    BuiltInId::frexp_Float3_Int3,
-    BuiltInName::frexp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B_o_20D,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpFrexp,
-    false);
-constexpr const TFunction function_frexp_30B30D(
-    BuiltInId::frexp_Float4_Int4,
-    BuiltInName::frexp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B_o_30D,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpFrexp,
-    false);
-constexpr const TFunction function_frexp_00C00D(
-    BuiltInId::frexp_Double1_Int1,
-    BuiltInName::frexp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00C_o_00D,
-    2,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpFrexp,
-    false);
-constexpr const TFunction function_frexp_10C10D(
-    BuiltInId::frexp_Double2_Int2,
-    BuiltInName::frexp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10C_o_10D,
-    2,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpFrexp,
-    false);
-constexpr const TFunction function_frexp_20C20D(
-    BuiltInId::frexp_Double3_Int3,
-    BuiltInName::frexp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20C_o_20D,
-    2,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpFrexp,
-    false);
-constexpr const TFunction function_frexp_30C30D(
-    BuiltInId::frexp_Double4_Int4,
-    BuiltInName::frexp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30C_o_30D,
-    2,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpFrexp,
-    false);
-constexpr const TFunction function_ldexp_00B00D(
-    BuiltInId::ldexp_Float1_Int1,
-    BuiltInName::ldexp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00D,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpLdexp,
-    true);
-constexpr const TFunction function_ldexp_10B10D(
-    BuiltInId::ldexp_Float2_Int2,
-    BuiltInName::ldexp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B10D,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpLdexp,
-    true);
-constexpr const TFunction function_ldexp_20B20D(
-    BuiltInId::ldexp_Float3_Int3,
-    BuiltInName::ldexp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20D,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpLdexp,
-    true);
-constexpr const TFunction function_ldexp_30B30D(
-    BuiltInId::ldexp_Float4_Int4,
-    BuiltInName::ldexp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30D,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpLdexp,
-    true);
-constexpr const TFunction function_ldexp_00C00D(
-    BuiltInId::ldexp_Double1_Int1,
-    BuiltInName::ldexp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00C00D,
-    2,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpLdexp,
-    true);
-constexpr const TFunction function_ldexp_10C10D(
-    BuiltInId::ldexp_Double2_Int2,
-    BuiltInName::ldexp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10C10D,
-    2,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpLdexp,
-    true);
-constexpr const TFunction function_ldexp_20C20D(
-    BuiltInId::ldexp_Double3_Int3,
-    BuiltInName::ldexp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20C20D,
-    2,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpLdexp,
-    true);
-constexpr const TFunction function_ldexp_30C30D(
-    BuiltInId::ldexp_Double4_Int4,
-    BuiltInName::ldexp,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30C30D,
-    2,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpLdexp,
-    true);
-constexpr const TFunction function_packSnorm2x16_10B(
+constexpr const TFunction fma_00B00B00B(BuiltInId::fma_Float1_Float1_Float1,
+                                        BuiltInName::fma,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p00B00B00B,
+                                        3,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                        EOpFma,
+                                        true);
+constexpr const TFunction fma_10B10B10B(BuiltInId::fma_Float2_Float2_Float2,
+                                        BuiltInName::fma,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p10B10B10B,
+                                        3,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                        EOpFma,
+                                        true);
+constexpr const TFunction fma_20B20B20B(BuiltInId::fma_Float3_Float3_Float3,
+                                        BuiltInName::fma,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p20B20B20B,
+                                        3,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                        EOpFma,
+                                        true);
+constexpr const TFunction fma_30B30B30B(BuiltInId::fma_Float4_Float4_Float4,
+                                        BuiltInName::fma,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p30B30B30B,
+                                        3,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                        EOpFma,
+                                        true);
+constexpr const TFunction fma_00C00C00C(BuiltInId::fma_Double1_Double1_Double1,
+                                        BuiltInName::fma,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p00C00C00C,
+                                        3,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                        EOpFma,
+                                        true);
+constexpr const TFunction fma_10C10C10C(BuiltInId::fma_Double2_Double2_Double2,
+                                        BuiltInName::fma,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p10C10C10C,
+                                        3,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                        EOpFma,
+                                        true);
+constexpr const TFunction fma_20C20C20C(BuiltInId::fma_Double3_Double3_Double3,
+                                        BuiltInName::fma,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p20C20C20C,
+                                        3,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                        EOpFma,
+                                        true);
+constexpr const TFunction fma_30C30C30C(BuiltInId::fma_Double4_Double4_Double4,
+                                        BuiltInName::fma,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p30C30C30C,
+                                        3,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                        EOpFma,
+                                        true);
+constexpr const TFunction frexp_00B00D(BuiltInId::frexp_Float1_Int1,
+                                       BuiltInName::frexp,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p00B_o_00D,
+                                       2,
+                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                       EOpFrexp,
+                                       false);
+constexpr const TFunction frexp_10B10D(BuiltInId::frexp_Float2_Int2,
+                                       BuiltInName::frexp,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p10B_o_10D,
+                                       2,
+                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                       EOpFrexp,
+                                       false);
+constexpr const TFunction frexp_20B20D(BuiltInId::frexp_Float3_Int3,
+                                       BuiltInName::frexp,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p20B_o_20D,
+                                       2,
+                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                       EOpFrexp,
+                                       false);
+constexpr const TFunction frexp_30B30D(BuiltInId::frexp_Float4_Int4,
+                                       BuiltInName::frexp,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p30B_o_30D,
+                                       2,
+                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                       EOpFrexp,
+                                       false);
+constexpr const TFunction frexp_00C00D(BuiltInId::frexp_Double1_Int1,
+                                       BuiltInName::frexp,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p00C_o_00D,
+                                       2,
+                                       StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
+                                       EOpFrexp,
+                                       false);
+constexpr const TFunction frexp_10C10D(BuiltInId::frexp_Double2_Int2,
+                                       BuiltInName::frexp,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p10C_o_10D,
+                                       2,
+                                       StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
+                                       EOpFrexp,
+                                       false);
+constexpr const TFunction frexp_20C20D(BuiltInId::frexp_Double3_Int3,
+                                       BuiltInName::frexp,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p20C_o_20D,
+                                       2,
+                                       StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
+                                       EOpFrexp,
+                                       false);
+constexpr const TFunction frexp_30C30D(BuiltInId::frexp_Double4_Int4,
+                                       BuiltInName::frexp,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p30C_o_30D,
+                                       2,
+                                       StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
+                                       EOpFrexp,
+                                       false);
+constexpr const TFunction ldexp_00B00D(BuiltInId::ldexp_Float1_Int1,
+                                       BuiltInName::ldexp,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p00B00D,
+                                       2,
+                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                       EOpLdexp,
+                                       true);
+constexpr const TFunction ldexp_10B10D(BuiltInId::ldexp_Float2_Int2,
+                                       BuiltInName::ldexp,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p10B10D,
+                                       2,
+                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                       EOpLdexp,
+                                       true);
+constexpr const TFunction ldexp_20B20D(BuiltInId::ldexp_Float3_Int3,
+                                       BuiltInName::ldexp,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p20B20D,
+                                       2,
+                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                       EOpLdexp,
+                                       true);
+constexpr const TFunction ldexp_30B30D(BuiltInId::ldexp_Float4_Int4,
+                                       BuiltInName::ldexp,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p30B30D,
+                                       2,
+                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                       EOpLdexp,
+                                       true);
+constexpr const TFunction ldexp_00C00D(BuiltInId::ldexp_Double1_Int1,
+                                       BuiltInName::ldexp,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p00C00D,
+                                       2,
+                                       StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
+                                       EOpLdexp,
+                                       true);
+constexpr const TFunction ldexp_10C10D(BuiltInId::ldexp_Double2_Int2,
+                                       BuiltInName::ldexp,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p10C10D,
+                                       2,
+                                       StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
+                                       EOpLdexp,
+                                       true);
+constexpr const TFunction ldexp_20C20D(BuiltInId::ldexp_Double3_Int3,
+                                       BuiltInName::ldexp,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p20C20D,
+                                       2,
+                                       StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
+                                       EOpLdexp,
+                                       true);
+constexpr const TFunction ldexp_30C30D(BuiltInId::ldexp_Double4_Int4,
+                                       BuiltInName::ldexp,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p30C30D,
+                                       2,
+                                       StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
+                                       EOpLdexp,
+                                       true);
+constexpr const TFunction packSnorm2x16_10B(
     BuiltInId::packSnorm2x16_Float2,
     BuiltInName::packSnorm2x16,
     TExtension::UNDEFINED,
@@ -8562,7 +7886,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpPackSnorm2x16,
     true);
-constexpr const TFunction function_packHalf2x16_10B(
+constexpr const TFunction packHalf2x16_10B(
     BuiltInId::packHalf2x16_Float2,
     BuiltInName::packHalf2x16,
     TExtension::UNDEFINED,
@@ -8571,7 +7895,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpPackHalf2x16,
     true);
-constexpr const TFunction function_unpackSnorm2x16_00E(
+constexpr const TFunction unpackSnorm2x16_00E(
     BuiltInId::unpackSnorm2x16_UInt1,
     BuiltInName::unpackSnorm2x16,
     TExtension::UNDEFINED,
@@ -8580,7 +7904,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpUnpackSnorm2x16,
     true);
-constexpr const TFunction function_unpackHalf2x16_00E(
+constexpr const TFunction unpackHalf2x16_00E(
     BuiltInId::unpackHalf2x16_UInt1,
     BuiltInName::unpackHalf2x16,
     TExtension::UNDEFINED,
@@ -8589,7 +7913,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpUnpackHalf2x16,
     true);
-constexpr const TFunction function_packUnorm2x16_10B(
+constexpr const TFunction packUnorm2x16_10B(
     BuiltInId::packUnorm2x16_Float2,
     BuiltInName::packUnorm2x16,
     TExtension::UNDEFINED,
@@ -8598,7 +7922,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpPackUnorm2x16,
     true);
-constexpr const TFunction function_unpackUnorm2x16_00E(
+constexpr const TFunction unpackUnorm2x16_00E(
     BuiltInId::unpackUnorm2x16_UInt1,
     BuiltInName::unpackUnorm2x16,
     TExtension::UNDEFINED,
@@ -8607,7 +7931,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpUnpackUnorm2x16,
     true);
-constexpr const TFunction function_packUnorm4x8_30B(
+constexpr const TFunction packUnorm4x8_30B(
     BuiltInId::packUnorm4x8_Float4,
     BuiltInName::packUnorm4x8,
     TExtension::UNDEFINED,
@@ -8616,7 +7940,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpPackUnorm4x8,
     true);
-constexpr const TFunction function_packSnorm4x8_30B(
+constexpr const TFunction packSnorm4x8_30B(
     BuiltInId::packSnorm4x8_Float4,
     BuiltInName::packSnorm4x8,
     TExtension::UNDEFINED,
@@ -8625,7 +7949,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpPackSnorm4x8,
     true);
-constexpr const TFunction function_unpackUnorm4x8_00E(
+constexpr const TFunction unpackUnorm4x8_00E(
     BuiltInId::unpackUnorm4x8_UInt1,
     BuiltInName::unpackUnorm4x8,
     TExtension::UNDEFINED,
@@ -8634,7 +7958,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpUnpackUnorm4x8,
     true);
-constexpr const TFunction function_unpackSnorm4x8_00E(
+constexpr const TFunction unpackSnorm4x8_00E(
     BuiltInId::unpackSnorm4x8_UInt1,
     BuiltInName::unpackSnorm4x8,
     TExtension::UNDEFINED,
@@ -8643,7 +7967,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpUnpackSnorm4x8,
     true);
-constexpr const TFunction function_packDouble2x32_10E(
+constexpr const TFunction packDouble2x32_10E(
     BuiltInId::packDouble2x32_UInt2,
     BuiltInName::packDouble2x32,
     TExtension::UNDEFINED,
@@ -8652,7 +7976,7 @@
     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpPackDouble2x32,
     true);
-constexpr const TFunction function_unpackDouble2x32_00C(
+constexpr const TFunction unpackDouble2x32_00C(
     BuiltInId::unpackDouble2x32_Double1,
     BuiltInName::unpackDouble2x32,
     TExtension::UNDEFINED,
@@ -8661,79 +7985,71 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpUnpackDouble2x32,
     true);
-constexpr const TFunction function_length_00B(
-    BuiltInId::length_Float1,
-    BuiltInName::length,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpLength,
-    true);
-constexpr const TFunction function_length_10B(
-    BuiltInId::length_Float2,
-    BuiltInName::length,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B_o_10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpLength,
-    true);
-constexpr const TFunction function_length_20B(
-    BuiltInId::length_Float3,
-    BuiltInName::length,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpLength,
-    true);
-constexpr const TFunction function_length_30B(
-    BuiltInId::length_Float4,
-    BuiltInName::length,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30D,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpLength,
-    true);
-constexpr const TFunction function_length_00C(
-    BuiltInId::length_Double1,
-    BuiltInName::length,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00C10C,
-    1,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpLength,
-    true);
-constexpr const TFunction function_length_10C(
-    BuiltInId::length_Double2,
-    BuiltInName::length,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10C_o_10C,
-    1,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpLength,
-    true);
-constexpr const TFunction function_length_20C(
-    BuiltInId::length_Double3,
-    BuiltInName::length,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20C20C20F,
-    1,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpLength,
-    true);
-constexpr const TFunction function_length_30C(
-    BuiltInId::length_Double4,
-    BuiltInName::length,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30C30C00B,
-    1,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpLength,
-    true);
-constexpr const TFunction function_distance_00B00B(
+constexpr const TFunction length_00B(BuiltInId::length_Float1,
+                                     BuiltInName::length,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p00B00B30B,
+                                     1,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                     EOpLength,
+                                     true);
+constexpr const TFunction length_10B(BuiltInId::length_Float2,
+                                     BuiltInName::length,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p10B_o_10B,
+                                     1,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                     EOpLength,
+                                     true);
+constexpr const TFunction length_20B(BuiltInId::length_Float3,
+                                     BuiltInName::length,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p20B20B00B,
+                                     1,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                     EOpLength,
+                                     true);
+constexpr const TFunction length_30B(BuiltInId::length_Float4,
+                                     BuiltInName::length,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p30B30D,
+                                     1,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                     EOpLength,
+                                     true);
+constexpr const TFunction length_00C(BuiltInId::length_Double1,
+                                     BuiltInName::length,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p00C10C,
+                                     1,
+                                     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
+                                     EOpLength,
+                                     true);
+constexpr const TFunction length_10C(BuiltInId::length_Double2,
+                                     BuiltInName::length,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p10C_o_10C,
+                                     1,
+                                     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
+                                     EOpLength,
+                                     true);
+constexpr const TFunction length_20C(BuiltInId::length_Double3,
+                                     BuiltInName::length,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p20C20C20F,
+                                     1,
+                                     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
+                                     EOpLength,
+                                     true);
+constexpr const TFunction length_30C(BuiltInId::length_Double4,
+                                     BuiltInName::length,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p30C30C00B,
+                                     1,
+                                     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
+                                     EOpLength,
+                                     true);
+constexpr const TFunction distance_00B00B(
     BuiltInId::distance_Float1_Float1,
     BuiltInName::distance,
     TExtension::UNDEFINED,
@@ -8742,7 +8058,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpDistance,
     true);
-constexpr const TFunction function_distance_10B10B(
+constexpr const TFunction distance_10B10B(
     BuiltInId::distance_Float2_Float2,
     BuiltInName::distance,
     TExtension::UNDEFINED,
@@ -8751,7 +8067,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpDistance,
     true);
-constexpr const TFunction function_distance_20B20B(
+constexpr const TFunction distance_20B20B(
     BuiltInId::distance_Float3_Float3,
     BuiltInName::distance,
     TExtension::UNDEFINED,
@@ -8760,7 +8076,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpDistance,
     true);
-constexpr const TFunction function_distance_30B30B(
+constexpr const TFunction distance_30B30B(
     BuiltInId::distance_Float4_Float4,
     BuiltInName::distance,
     TExtension::UNDEFINED,
@@ -8769,7 +8085,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpDistance,
     true);
-constexpr const TFunction function_distance_00C00C(
+constexpr const TFunction distance_00C00C(
     BuiltInId::distance_Double1_Double1,
     BuiltInName::distance,
     TExtension::UNDEFINED,
@@ -8778,7 +8094,7 @@
     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpDistance,
     true);
-constexpr const TFunction function_distance_10C10C(
+constexpr const TFunction distance_10C10C(
     BuiltInId::distance_Double2_Double2,
     BuiltInName::distance,
     TExtension::UNDEFINED,
@@ -8787,7 +8103,7 @@
     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpDistance,
     true);
-constexpr const TFunction function_distance_20C20C(
+constexpr const TFunction distance_20C20C(
     BuiltInId::distance_Double3_Double3,
     BuiltInName::distance,
     TExtension::UNDEFINED,
@@ -8796,7 +8112,7 @@
     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpDistance,
     true);
-constexpr const TFunction function_distance_30C30C(
+constexpr const TFunction distance_30C30C(
     BuiltInId::distance_Double4_Double4,
     BuiltInName::distance,
     TExtension::UNDEFINED,
@@ -8805,169 +8121,151 @@
     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpDistance,
     true);
-constexpr const TFunction function_dot_00B00B(
-    BuiltInId::dot_Float1_Float1,
-    BuiltInName::dot,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpDot,
-    true);
-constexpr const TFunction function_dot_10B10B(
-    BuiltInId::dot_Float2_Float2,
-    BuiltInName::dot,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B10B00B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpDot,
-    true);
-constexpr const TFunction function_dot_20B20B(
-    BuiltInId::dot_Float3_Float3,
-    BuiltInName::dot,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpDot,
-    true);
-constexpr const TFunction function_dot_30B30B(
-    BuiltInId::dot_Float4_Float4,
-    BuiltInName::dot,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30B30F,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpDot,
-    true);
-constexpr const TFunction function_dot_00C00C(
-    BuiltInId::dot_Double1_Double1,
-    BuiltInName::dot,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00C00C10C,
-    2,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpDot,
-    true);
-constexpr const TFunction function_dot_10C10C(
-    BuiltInId::dot_Double2_Double2,
-    BuiltInName::dot,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10C10C10F,
-    2,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpDot,
-    true);
-constexpr const TFunction function_dot_20C20C(
-    BuiltInId::dot_Double3_Double3,
-    BuiltInName::dot,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20C20C20F,
-    2,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpDot,
-    true);
-constexpr const TFunction function_dot_30C30C(
-    BuiltInId::dot_Double4_Double4,
-    BuiltInName::dot,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30C30C00B,
-    2,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpDot,
-    true);
-constexpr const TFunction function_cross_20B20B(
-    BuiltInId::cross_Float3_Float3,
-    BuiltInName::cross,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpCross,
-    true);
-constexpr const TFunction function_cross_20C20C(
-    BuiltInId::cross_Double3_Double3,
-    BuiltInName::cross,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20C20C20F,
-    2,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpCross,
-    true);
-constexpr const TFunction function_normalize_00B(
-    BuiltInId::normalize_Float1,
-    BuiltInName::normalize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpNormalize,
-    true);
-constexpr const TFunction function_normalize_10B(
-    BuiltInId::normalize_Float2,
-    BuiltInName::normalize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B_o_10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpNormalize,
-    true);
-constexpr const TFunction function_normalize_20B(
-    BuiltInId::normalize_Float3,
-    BuiltInName::normalize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpNormalize,
-    true);
-constexpr const TFunction function_normalize_30B(
-    BuiltInId::normalize_Float4,
-    BuiltInName::normalize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30D,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpNormalize,
-    true);
-constexpr const TFunction function_normalize_00C(
-    BuiltInId::normalize_Double1,
-    BuiltInName::normalize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00C10C,
-    1,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpNormalize,
-    true);
-constexpr const TFunction function_normalize_10C(
-    BuiltInId::normalize_Double2,
-    BuiltInName::normalize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10C_o_10C,
-    1,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpNormalize,
-    true);
-constexpr const TFunction function_normalize_20C(
-    BuiltInId::normalize_Double3,
-    BuiltInName::normalize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20C20C20F,
-    1,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpNormalize,
-    true);
-constexpr const TFunction function_normalize_30C(
-    BuiltInId::normalize_Double4,
-    BuiltInName::normalize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30C30C00B,
-    1,
-    StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpNormalize,
-    true);
-constexpr const TFunction function_faceforward_00B00B00B(
+constexpr const TFunction dot_00B00B(BuiltInId::dot_Float1_Float1,
+                                     BuiltInName::dot,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p00B00B30B,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                     EOpDot,
+                                     true);
+constexpr const TFunction dot_10B10B(BuiltInId::dot_Float2_Float2,
+                                     BuiltInName::dot,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p10B10B00B,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                     EOpDot,
+                                     true);
+constexpr const TFunction dot_20B20B(BuiltInId::dot_Float3_Float3,
+                                     BuiltInName::dot,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p20B20B00B,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                     EOpDot,
+                                     true);
+constexpr const TFunction dot_30B30B(BuiltInId::dot_Float4_Float4,
+                                     BuiltInName::dot,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p30B30B30F,
+                                     2,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                     EOpDot,
+                                     true);
+constexpr const TFunction dot_00C00C(BuiltInId::dot_Double1_Double1,
+                                     BuiltInName::dot,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p00C00C10C,
+                                     2,
+                                     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
+                                     EOpDot,
+                                     true);
+constexpr const TFunction dot_10C10C(BuiltInId::dot_Double2_Double2,
+                                     BuiltInName::dot,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p10C10C10F,
+                                     2,
+                                     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
+                                     EOpDot,
+                                     true);
+constexpr const TFunction dot_20C20C(BuiltInId::dot_Double3_Double3,
+                                     BuiltInName::dot,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p20C20C20F,
+                                     2,
+                                     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
+                                     EOpDot,
+                                     true);
+constexpr const TFunction dot_30C30C(BuiltInId::dot_Double4_Double4,
+                                     BuiltInName::dot,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p30C30C00B,
+                                     2,
+                                     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
+                                     EOpDot,
+                                     true);
+constexpr const TFunction cross_20B20B(BuiltInId::cross_Float3_Float3,
+                                       BuiltInName::cross,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p20B20B00B,
+                                       2,
+                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                       EOpCross,
+                                       true);
+constexpr const TFunction cross_20C20C(BuiltInId::cross_Double3_Double3,
+                                       BuiltInName::cross,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p20C20C20F,
+                                       2,
+                                       StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
+                                       EOpCross,
+                                       true);
+constexpr const TFunction normalize_00B(BuiltInId::normalize_Float1,
+                                        BuiltInName::normalize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p00B00B30B,
+                                        1,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                        EOpNormalize,
+                                        true);
+constexpr const TFunction normalize_10B(BuiltInId::normalize_Float2,
+                                        BuiltInName::normalize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p10B_o_10B,
+                                        1,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                        EOpNormalize,
+                                        true);
+constexpr const TFunction normalize_20B(BuiltInId::normalize_Float3,
+                                        BuiltInName::normalize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p20B20B00B,
+                                        1,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                        EOpNormalize,
+                                        true);
+constexpr const TFunction normalize_30B(BuiltInId::normalize_Float4,
+                                        BuiltInName::normalize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p30B30D,
+                                        1,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                        EOpNormalize,
+                                        true);
+constexpr const TFunction normalize_00C(BuiltInId::normalize_Double1,
+                                        BuiltInName::normalize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p00C10C,
+                                        1,
+                                        StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
+                                        EOpNormalize,
+                                        true);
+constexpr const TFunction normalize_10C(BuiltInId::normalize_Double2,
+                                        BuiltInName::normalize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p10C_o_10C,
+                                        1,
+                                        StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
+                                        EOpNormalize,
+                                        true);
+constexpr const TFunction normalize_20C(BuiltInId::normalize_Double3,
+                                        BuiltInName::normalize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p20C20C20F,
+                                        1,
+                                        StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
+                                        EOpNormalize,
+                                        true);
+constexpr const TFunction normalize_30C(BuiltInId::normalize_Double4,
+                                        BuiltInName::normalize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p30C30C00B,
+                                        1,
+                                        StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
+                                        EOpNormalize,
+                                        true);
+constexpr const TFunction faceforward_00B00B00B(
     BuiltInId::faceforward_Float1_Float1_Float1,
     BuiltInName::faceforward,
     TExtension::UNDEFINED,
@@ -8976,7 +8274,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpFaceforward,
     true);
-constexpr const TFunction function_faceforward_10B10B10B(
+constexpr const TFunction faceforward_10B10B10B(
     BuiltInId::faceforward_Float2_Float2_Float2,
     BuiltInName::faceforward,
     TExtension::UNDEFINED,
@@ -8985,7 +8283,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpFaceforward,
     true);
-constexpr const TFunction function_faceforward_20B20B20B(
+constexpr const TFunction faceforward_20B20B20B(
     BuiltInId::faceforward_Float3_Float3_Float3,
     BuiltInName::faceforward,
     TExtension::UNDEFINED,
@@ -8994,7 +8292,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpFaceforward,
     true);
-constexpr const TFunction function_faceforward_30B30B30B(
+constexpr const TFunction faceforward_30B30B30B(
     BuiltInId::faceforward_Float4_Float4_Float4,
     BuiltInName::faceforward,
     TExtension::UNDEFINED,
@@ -9003,7 +8301,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpFaceforward,
     true);
-constexpr const TFunction function_faceforward_00C00C00C(
+constexpr const TFunction faceforward_00C00C00C(
     BuiltInId::faceforward_Double1_Double1_Double1,
     BuiltInName::faceforward,
     TExtension::UNDEFINED,
@@ -9012,7 +8310,7 @@
     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpFaceforward,
     true);
-constexpr const TFunction function_faceforward_10C10C10C(
+constexpr const TFunction faceforward_10C10C10C(
     BuiltInId::faceforward_Double2_Double2_Double2,
     BuiltInName::faceforward,
     TExtension::UNDEFINED,
@@ -9021,7 +8319,7 @@
     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpFaceforward,
     true);
-constexpr const TFunction function_faceforward_20C20C20C(
+constexpr const TFunction faceforward_20C20C20C(
     BuiltInId::faceforward_Double3_Double3_Double3,
     BuiltInName::faceforward,
     TExtension::UNDEFINED,
@@ -9030,7 +8328,7 @@
     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpFaceforward,
     true);
-constexpr const TFunction function_faceforward_30C30C30C(
+constexpr const TFunction faceforward_30C30C30C(
     BuiltInId::faceforward_Double4_Double4_Double4,
     BuiltInName::faceforward,
     TExtension::UNDEFINED,
@@ -9039,43 +8337,39 @@
     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpFaceforward,
     true);
-constexpr const TFunction function_reflect_00B00B(
-    BuiltInId::reflect_Float1_Float1,
-    BuiltInName::reflect,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpReflect,
-    true);
-constexpr const TFunction function_reflect_10B10B(
-    BuiltInId::reflect_Float2_Float2,
-    BuiltInName::reflect,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B10B00B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpReflect,
-    true);
-constexpr const TFunction function_reflect_20B20B(
-    BuiltInId::reflect_Float3_Float3,
-    BuiltInName::reflect,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpReflect,
-    true);
-constexpr const TFunction function_reflect_30B30B(
-    BuiltInId::reflect_Float4_Float4,
-    BuiltInName::reflect,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30B30F,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpReflect,
-    true);
-constexpr const TFunction function_reflect_00C00C(
+constexpr const TFunction reflect_00B00B(BuiltInId::reflect_Float1_Float1,
+                                         BuiltInName::reflect,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p00B00B30B,
+                                         2,
+                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                         EOpReflect,
+                                         true);
+constexpr const TFunction reflect_10B10B(BuiltInId::reflect_Float2_Float2,
+                                         BuiltInName::reflect,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p10B10B00B,
+                                         2,
+                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                         EOpReflect,
+                                         true);
+constexpr const TFunction reflect_20B20B(BuiltInId::reflect_Float3_Float3,
+                                         BuiltInName::reflect,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p20B20B00B,
+                                         2,
+                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                         EOpReflect,
+                                         true);
+constexpr const TFunction reflect_30B30B(BuiltInId::reflect_Float4_Float4,
+                                         BuiltInName::reflect,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p30B30B30F,
+                                         2,
+                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                         EOpReflect,
+                                         true);
+constexpr const TFunction reflect_00C00C(
     BuiltInId::reflect_Double1_Double1,
     BuiltInName::reflect,
     TExtension::UNDEFINED,
@@ -9084,7 +8378,7 @@
     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpReflect,
     true);
-constexpr const TFunction function_reflect_10C10C(
+constexpr const TFunction reflect_10C10C(
     BuiltInId::reflect_Double2_Double2,
     BuiltInName::reflect,
     TExtension::UNDEFINED,
@@ -9093,7 +8387,7 @@
     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpReflect,
     true);
-constexpr const TFunction function_reflect_20C20C(
+constexpr const TFunction reflect_20C20C(
     BuiltInId::reflect_Double3_Double3,
     BuiltInName::reflect,
     TExtension::UNDEFINED,
@@ -9102,7 +8396,7 @@
     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpReflect,
     true);
-constexpr const TFunction function_reflect_30C30C(
+constexpr const TFunction reflect_30C30C(
     BuiltInId::reflect_Double4_Double4,
     BuiltInName::reflect,
     TExtension::UNDEFINED,
@@ -9111,7 +8405,7 @@
     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpReflect,
     true);
-constexpr const TFunction function_refract_00B00B00B(
+constexpr const TFunction refract_00B00B00B(
     BuiltInId::refract_Float1_Float1_Float1,
     BuiltInName::refract,
     TExtension::UNDEFINED,
@@ -9120,7 +8414,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpRefract,
     true);
-constexpr const TFunction function_refract_10B10B00B(
+constexpr const TFunction refract_10B10B00B(
     BuiltInId::refract_Float2_Float2_Float1,
     BuiltInName::refract,
     TExtension::UNDEFINED,
@@ -9129,7 +8423,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpRefract,
     true);
-constexpr const TFunction function_refract_20B20B00B(
+constexpr const TFunction refract_20B20B00B(
     BuiltInId::refract_Float3_Float3_Float1,
     BuiltInName::refract,
     TExtension::UNDEFINED,
@@ -9138,7 +8432,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpRefract,
     true);
-constexpr const TFunction function_refract_30B30B00B(
+constexpr const TFunction refract_30B30B00B(
     BuiltInId::refract_Float4_Float4_Float1,
     BuiltInName::refract,
     TExtension::UNDEFINED,
@@ -9147,7 +8441,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpRefract,
     true);
-constexpr const TFunction function_refract_00C00C00B(
+constexpr const TFunction refract_00C00C00B(
     BuiltInId::refract_Double1_Double1_Float1,
     BuiltInName::refract,
     TExtension::UNDEFINED,
@@ -9156,7 +8450,7 @@
     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpRefract,
     true);
-constexpr const TFunction function_refract_10C10C00B(
+constexpr const TFunction refract_10C10C00B(
     BuiltInId::refract_Double2_Double2_Float1,
     BuiltInName::refract,
     TExtension::UNDEFINED,
@@ -9165,7 +8459,7 @@
     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpRefract,
     true);
-constexpr const TFunction function_refract_20C20C00B(
+constexpr const TFunction refract_20C20C00B(
     BuiltInId::refract_Double3_Double3_Float1,
     BuiltInName::refract,
     TExtension::UNDEFINED,
@@ -9174,7 +8468,7 @@
     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpRefract,
     true);
-constexpr const TFunction function_refract_30C30C00B(
+constexpr const TFunction refract_30C30C00B(
     BuiltInId::refract_Double4_Double4_Float1,
     BuiltInName::refract,
     TExtension::UNDEFINED,
@@ -9183,16 +8477,15 @@
     StaticType::Get<EbtDouble, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpRefract,
     true);
-constexpr const TFunction function_ftransform_(
-    BuiltInId::ftransform,
-    BuiltInName::ftransform,
-    TExtension::UNDEFINED,
-    BuiltInParameters::empty,
-    0,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_matrixCompMult_50B50B(
+constexpr const TFunction ftransform_(BuiltInId::ftransform,
+                                      BuiltInName::ftransform,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::empty,
+                                      0,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                      EOpCallBuiltInFunction,
+                                      false);
+constexpr const TFunction matrixCompMult_50B50B(
     BuiltInId::matrixCompMult_Float2x2_Float2x2,
     BuiltInName::matrixCompMult,
     TExtension::UNDEFINED,
@@ -9201,7 +8494,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 2>(),
     EOpMulMatrixComponentWise,
     true);
-constexpr const TFunction function_matrixCompMult_A0BA0B(
+constexpr const TFunction matrixCompMult_A0BA0B(
     BuiltInId::matrixCompMult_Float3x3_Float3x3,
     BuiltInName::matrixCompMult,
     TExtension::UNDEFINED,
@@ -9210,7 +8503,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 3>(),
     EOpMulMatrixComponentWise,
     true);
-constexpr const TFunction function_matrixCompMult_F0BF0B(
+constexpr const TFunction matrixCompMult_F0BF0B(
     BuiltInId::matrixCompMult_Float4x4_Float4x4,
     BuiltInName::matrixCompMult,
     TExtension::UNDEFINED,
@@ -9219,7 +8512,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 4>(),
     EOpMulMatrixComponentWise,
     true);
-constexpr const TFunction function_matrixCompMult_90B90B(
+constexpr const TFunction matrixCompMult_90B90B(
     BuiltInId::matrixCompMult_Float2x3_Float2x3,
     BuiltInName::matrixCompMult,
     TExtension::UNDEFINED,
@@ -9228,7 +8521,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 3>(),
     EOpMulMatrixComponentWise,
     true);
-constexpr const TFunction function_matrixCompMult_60B60B(
+constexpr const TFunction matrixCompMult_60B60B(
     BuiltInId::matrixCompMult_Float3x2_Float3x2,
     BuiltInName::matrixCompMult,
     TExtension::UNDEFINED,
@@ -9237,7 +8530,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 2>(),
     EOpMulMatrixComponentWise,
     true);
-constexpr const TFunction function_matrixCompMult_D0BD0B(
+constexpr const TFunction matrixCompMult_D0BD0B(
     BuiltInId::matrixCompMult_Float2x4_Float2x4,
     BuiltInName::matrixCompMult,
     TExtension::UNDEFINED,
@@ -9246,7 +8539,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 4>(),
     EOpMulMatrixComponentWise,
     true);
-constexpr const TFunction function_matrixCompMult_70B70B(
+constexpr const TFunction matrixCompMult_70B70B(
     BuiltInId::matrixCompMult_Float4x2_Float4x2,
     BuiltInName::matrixCompMult,
     TExtension::UNDEFINED,
@@ -9255,7 +8548,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 2>(),
     EOpMulMatrixComponentWise,
     true);
-constexpr const TFunction function_matrixCompMult_E0BE0B(
+constexpr const TFunction matrixCompMult_E0BE0B(
     BuiltInId::matrixCompMult_Float3x4_Float3x4,
     BuiltInName::matrixCompMult,
     TExtension::UNDEFINED,
@@ -9264,7 +8557,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 4>(),
     EOpMulMatrixComponentWise,
     true);
-constexpr const TFunction function_matrixCompMult_B0BB0B(
+constexpr const TFunction matrixCompMult_B0BB0B(
     BuiltInId::matrixCompMult_Float4x3_Float4x3,
     BuiltInName::matrixCompMult,
     TExtension::UNDEFINED,
@@ -9273,7 +8566,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 3>(),
     EOpMulMatrixComponentWise,
     true);
-constexpr const TFunction function_outerProduct_10B10B(
+constexpr const TFunction outerProduct_10B10B(
     BuiltInId::outerProduct_Float2_Float2,
     BuiltInName::outerProduct,
     TExtension::UNDEFINED,
@@ -9282,7 +8575,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 2>(),
     EOpOuterProduct,
     true);
-constexpr const TFunction function_outerProduct_20B20B(
+constexpr const TFunction outerProduct_20B20B(
     BuiltInId::outerProduct_Float3_Float3,
     BuiltInName::outerProduct,
     TExtension::UNDEFINED,
@@ -9291,7 +8584,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 3>(),
     EOpOuterProduct,
     true);
-constexpr const TFunction function_outerProduct_30B30B(
+constexpr const TFunction outerProduct_30B30B(
     BuiltInId::outerProduct_Float4_Float4,
     BuiltInName::outerProduct,
     TExtension::UNDEFINED,
@@ -9300,7 +8593,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 4>(),
     EOpOuterProduct,
     true);
-constexpr const TFunction function_outerProduct_20B10B(
+constexpr const TFunction outerProduct_20B10B(
     BuiltInId::outerProduct_Float3_Float2,
     BuiltInName::outerProduct,
     TExtension::UNDEFINED,
@@ -9309,7 +8602,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 3>(),
     EOpOuterProduct,
     true);
-constexpr const TFunction function_outerProduct_10B20B(
+constexpr const TFunction outerProduct_10B20B(
     BuiltInId::outerProduct_Float2_Float3,
     BuiltInName::outerProduct,
     TExtension::UNDEFINED,
@@ -9318,7 +8611,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 2>(),
     EOpOuterProduct,
     true);
-constexpr const TFunction function_outerProduct_30B10B(
+constexpr const TFunction outerProduct_30B10B(
     BuiltInId::outerProduct_Float4_Float2,
     BuiltInName::outerProduct,
     TExtension::UNDEFINED,
@@ -9327,7 +8620,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 4>(),
     EOpOuterProduct,
     true);
-constexpr const TFunction function_outerProduct_10B30B(
+constexpr const TFunction outerProduct_10B30B(
     BuiltInId::outerProduct_Float2_Float4,
     BuiltInName::outerProduct,
     TExtension::UNDEFINED,
@@ -9336,7 +8629,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 2>(),
     EOpOuterProduct,
     true);
-constexpr const TFunction function_outerProduct_30B20B(
+constexpr const TFunction outerProduct_30B20B(
     BuiltInId::outerProduct_Float4_Float3,
     BuiltInName::outerProduct,
     TExtension::UNDEFINED,
@@ -9345,7 +8638,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 4>(),
     EOpOuterProduct,
     true);
-constexpr const TFunction function_outerProduct_20B30B(
+constexpr const TFunction outerProduct_20B30B(
     BuiltInId::outerProduct_Float3_Float4,
     BuiltInName::outerProduct,
     TExtension::UNDEFINED,
@@ -9354,88 +8647,79 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 3>(),
     EOpOuterProduct,
     true);
-constexpr const TFunction function_transpose_50B(
-    BuiltInId::transpose_Float2x2,
-    BuiltInName::transpose,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p50B50B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 2>(),
-    EOpTranspose,
-    true);
-constexpr const TFunction function_transpose_A0B(
-    BuiltInId::transpose_Float3x3,
-    BuiltInName::transpose,
-    TExtension::UNDEFINED,
-    BuiltInParameters::pA0BA0B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 3>(),
-    EOpTranspose,
-    true);
-constexpr const TFunction function_transpose_F0B(
-    BuiltInId::transpose_Float4x4,
-    BuiltInName::transpose,
-    TExtension::UNDEFINED,
-    BuiltInParameters::pF0BF0B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 4>(),
-    EOpTranspose,
-    true);
-constexpr const TFunction function_transpose_60B(
-    BuiltInId::transpose_Float3x2,
-    BuiltInName::transpose,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p60B60B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 3>(),
-    EOpTranspose,
-    true);
-constexpr const TFunction function_transpose_90B(
-    BuiltInId::transpose_Float2x3,
-    BuiltInName::transpose,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p90B90B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 2>(),
-    EOpTranspose,
-    true);
-constexpr const TFunction function_transpose_70B(
-    BuiltInId::transpose_Float4x2,
-    BuiltInName::transpose,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p70B70B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 4>(),
-    EOpTranspose,
-    true);
-constexpr const TFunction function_transpose_D0B(
-    BuiltInId::transpose_Float2x4,
-    BuiltInName::transpose,
-    TExtension::UNDEFINED,
-    BuiltInParameters::pD0BD0B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 2>(),
-    EOpTranspose,
-    true);
-constexpr const TFunction function_transpose_B0B(
-    BuiltInId::transpose_Float4x3,
-    BuiltInName::transpose,
-    TExtension::UNDEFINED,
-    BuiltInParameters::pB0BB0B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 4>(),
-    EOpTranspose,
-    true);
-constexpr const TFunction function_transpose_E0B(
-    BuiltInId::transpose_Float3x4,
-    BuiltInName::transpose,
-    TExtension::UNDEFINED,
-    BuiltInParameters::pE0BE0B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 3>(),
-    EOpTranspose,
-    true);
-constexpr const TFunction function_determinant_50B(
+constexpr const TFunction transpose_50B(BuiltInId::transpose_Float2x2,
+                                        BuiltInName::transpose,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p50B50B,
+                                        1,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 2>(),
+                                        EOpTranspose,
+                                        true);
+constexpr const TFunction transpose_A0B(BuiltInId::transpose_Float3x3,
+                                        BuiltInName::transpose,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::pA0BA0B,
+                                        1,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 3>(),
+                                        EOpTranspose,
+                                        true);
+constexpr const TFunction transpose_F0B(BuiltInId::transpose_Float4x4,
+                                        BuiltInName::transpose,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::pF0BF0B,
+                                        1,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 4>(),
+                                        EOpTranspose,
+                                        true);
+constexpr const TFunction transpose_60B(BuiltInId::transpose_Float3x2,
+                                        BuiltInName::transpose,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p60B60B,
+                                        1,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 3>(),
+                                        EOpTranspose,
+                                        true);
+constexpr const TFunction transpose_90B(BuiltInId::transpose_Float2x3,
+                                        BuiltInName::transpose,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p90B90B,
+                                        1,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 2>(),
+                                        EOpTranspose,
+                                        true);
+constexpr const TFunction transpose_70B(BuiltInId::transpose_Float4x2,
+                                        BuiltInName::transpose,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p70B70B,
+                                        1,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 4>(),
+                                        EOpTranspose,
+                                        true);
+constexpr const TFunction transpose_D0B(BuiltInId::transpose_Float2x4,
+                                        BuiltInName::transpose,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::pD0BD0B,
+                                        1,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 2>(),
+                                        EOpTranspose,
+                                        true);
+constexpr const TFunction transpose_B0B(BuiltInId::transpose_Float4x3,
+                                        BuiltInName::transpose,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::pB0BB0B,
+                                        1,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 4>(),
+                                        EOpTranspose,
+                                        true);
+constexpr const TFunction transpose_E0B(BuiltInId::transpose_Float3x4,
+                                        BuiltInName::transpose,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::pE0BE0B,
+                                        1,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 3>(),
+                                        EOpTranspose,
+                                        true);
+constexpr const TFunction determinant_50B(
     BuiltInId::determinant_Float2x2,
     BuiltInName::determinant,
     TExtension::UNDEFINED,
@@ -9444,7 +8728,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpDeterminant,
     true);
-constexpr const TFunction function_determinant_A0B(
+constexpr const TFunction determinant_A0B(
     BuiltInId::determinant_Float3x3,
     BuiltInName::determinant,
     TExtension::UNDEFINED,
@@ -9453,7 +8737,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpDeterminant,
     true);
-constexpr const TFunction function_determinant_F0B(
+constexpr const TFunction determinant_F0B(
     BuiltInId::determinant_Float4x4,
     BuiltInName::determinant,
     TExtension::UNDEFINED,
@@ -9462,115 +8746,103 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpDeterminant,
     true);
-constexpr const TFunction function_inverse_50B(
-    BuiltInId::inverse_Float2x2,
-    BuiltInName::inverse,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p50B50B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 2>(),
-    EOpInverse,
-    true);
-constexpr const TFunction function_inverse_A0B(
-    BuiltInId::inverse_Float3x3,
-    BuiltInName::inverse,
-    TExtension::UNDEFINED,
-    BuiltInParameters::pA0BA0B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 3>(),
-    EOpInverse,
-    true);
-constexpr const TFunction function_inverse_F0B(
-    BuiltInId::inverse_Float4x4,
-    BuiltInName::inverse,
-    TExtension::UNDEFINED,
-    BuiltInParameters::pF0BF0B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 4>(),
-    EOpInverse,
-    true);
-constexpr const TFunction function_lessThan_10B10B(
-    BuiltInId::lessThan_Float2_Float2,
-    BuiltInName::lessThan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B10B00B,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpLessThanComponentWise,
-    true);
-constexpr const TFunction function_lessThan_20B20B(
-    BuiltInId::lessThan_Float3_Float3,
-    BuiltInName::lessThan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpLessThanComponentWise,
-    true);
-constexpr const TFunction function_lessThan_30B30B(
-    BuiltInId::lessThan_Float4_Float4,
-    BuiltInName::lessThan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30B30F,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpLessThanComponentWise,
-    true);
-constexpr const TFunction function_lessThan_10D10D(
-    BuiltInId::lessThan_Int2_Int2,
-    BuiltInName::lessThan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10D10D_o_10D_o_10D,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpLessThanComponentWise,
-    true);
-constexpr const TFunction function_lessThan_20D20D(
-    BuiltInId::lessThan_Int3_Int3,
-    BuiltInName::lessThan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20D20D00D00D,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpLessThanComponentWise,
-    true);
-constexpr const TFunction function_lessThan_30D30D(
-    BuiltInId::lessThan_Int4_Int4,
-    BuiltInName::lessThan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30D30D30F,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpLessThanComponentWise,
-    true);
-constexpr const TFunction function_lessThan_10E10E(
-    BuiltInId::lessThan_UInt2_UInt2,
-    BuiltInName::lessThan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10E10E00D00D,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpLessThanComponentWise,
-    true);
-constexpr const TFunction function_lessThan_20E20E(
-    BuiltInId::lessThan_UInt3_UInt3,
-    BuiltInName::lessThan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20E20E00D00D,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpLessThanComponentWise,
-    true);
-constexpr const TFunction function_lessThan_30E30E(
-    BuiltInId::lessThan_UInt4_UInt4,
-    BuiltInName::lessThan,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30E30E00D00D,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpLessThanComponentWise,
-    true);
-constexpr const TFunction function_lessThanEqual_10B10B(
+constexpr const TFunction inverse_50B(BuiltInId::inverse_Float2x2,
+                                      BuiltInName::inverse,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p50B50B,
+                                      1,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 2>(),
+                                      EOpInverse,
+                                      true);
+constexpr const TFunction inverse_A0B(BuiltInId::inverse_Float3x3,
+                                      BuiltInName::inverse,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::pA0BA0B,
+                                      1,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 3>(),
+                                      EOpInverse,
+                                      true);
+constexpr const TFunction inverse_F0B(BuiltInId::inverse_Float4x4,
+                                      BuiltInName::inverse,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::pF0BF0B,
+                                      1,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 4>(),
+                                      EOpInverse,
+                                      true);
+constexpr const TFunction lessThan_10B10B(BuiltInId::lessThan_Float2_Float2,
+                                          BuiltInName::lessThan,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p10B10B00B,
+                                          2,
+                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
+                                          EOpLessThanComponentWise,
+                                          true);
+constexpr const TFunction lessThan_20B20B(BuiltInId::lessThan_Float3_Float3,
+                                          BuiltInName::lessThan,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p20B20B00B,
+                                          2,
+                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
+                                          EOpLessThanComponentWise,
+                                          true);
+constexpr const TFunction lessThan_30B30B(BuiltInId::lessThan_Float4_Float4,
+                                          BuiltInName::lessThan,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p30B30B30F,
+                                          2,
+                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
+                                          EOpLessThanComponentWise,
+                                          true);
+constexpr const TFunction lessThan_10D10D(BuiltInId::lessThan_Int2_Int2,
+                                          BuiltInName::lessThan,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p10D10D_o_10D_o_10D,
+                                          2,
+                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
+                                          EOpLessThanComponentWise,
+                                          true);
+constexpr const TFunction lessThan_20D20D(BuiltInId::lessThan_Int3_Int3,
+                                          BuiltInName::lessThan,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p20D20D00D00D,
+                                          2,
+                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
+                                          EOpLessThanComponentWise,
+                                          true);
+constexpr const TFunction lessThan_30D30D(BuiltInId::lessThan_Int4_Int4,
+                                          BuiltInName::lessThan,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p30D30D30F,
+                                          2,
+                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
+                                          EOpLessThanComponentWise,
+                                          true);
+constexpr const TFunction lessThan_10E10E(BuiltInId::lessThan_UInt2_UInt2,
+                                          BuiltInName::lessThan,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p10E10E00D00D,
+                                          2,
+                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
+                                          EOpLessThanComponentWise,
+                                          true);
+constexpr const TFunction lessThan_20E20E(BuiltInId::lessThan_UInt3_UInt3,
+                                          BuiltInName::lessThan,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p20E20E00D00D,
+                                          2,
+                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
+                                          EOpLessThanComponentWise,
+                                          true);
+constexpr const TFunction lessThan_30E30E(BuiltInId::lessThan_UInt4_UInt4,
+                                          BuiltInName::lessThan,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p30E30E00D00D,
+                                          2,
+                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
+                                          EOpLessThanComponentWise,
+                                          true);
+constexpr const TFunction lessThanEqual_10B10B(
     BuiltInId::lessThanEqual_Float2_Float2,
     BuiltInName::lessThanEqual,
     TExtension::UNDEFINED,
@@ -9579,7 +8851,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpLessThanEqualComponentWise,
     true);
-constexpr const TFunction function_lessThanEqual_20B20B(
+constexpr const TFunction lessThanEqual_20B20B(
     BuiltInId::lessThanEqual_Float3_Float3,
     BuiltInName::lessThanEqual,
     TExtension::UNDEFINED,
@@ -9588,7 +8860,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpLessThanEqualComponentWise,
     true);
-constexpr const TFunction function_lessThanEqual_30B30B(
+constexpr const TFunction lessThanEqual_30B30B(
     BuiltInId::lessThanEqual_Float4_Float4,
     BuiltInName::lessThanEqual,
     TExtension::UNDEFINED,
@@ -9597,7 +8869,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpLessThanEqualComponentWise,
     true);
-constexpr const TFunction function_lessThanEqual_10D10D(
+constexpr const TFunction lessThanEqual_10D10D(
     BuiltInId::lessThanEqual_Int2_Int2,
     BuiltInName::lessThanEqual,
     TExtension::UNDEFINED,
@@ -9606,7 +8878,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpLessThanEqualComponentWise,
     true);
-constexpr const TFunction function_lessThanEqual_20D20D(
+constexpr const TFunction lessThanEqual_20D20D(
     BuiltInId::lessThanEqual_Int3_Int3,
     BuiltInName::lessThanEqual,
     TExtension::UNDEFINED,
@@ -9615,7 +8887,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpLessThanEqualComponentWise,
     true);
-constexpr const TFunction function_lessThanEqual_30D30D(
+constexpr const TFunction lessThanEqual_30D30D(
     BuiltInId::lessThanEqual_Int4_Int4,
     BuiltInName::lessThanEqual,
     TExtension::UNDEFINED,
@@ -9624,7 +8896,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpLessThanEqualComponentWise,
     true);
-constexpr const TFunction function_lessThanEqual_10E10E(
+constexpr const TFunction lessThanEqual_10E10E(
     BuiltInId::lessThanEqual_UInt2_UInt2,
     BuiltInName::lessThanEqual,
     TExtension::UNDEFINED,
@@ -9633,7 +8905,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpLessThanEqualComponentWise,
     true);
-constexpr const TFunction function_lessThanEqual_20E20E(
+constexpr const TFunction lessThanEqual_20E20E(
     BuiltInId::lessThanEqual_UInt3_UInt3,
     BuiltInName::lessThanEqual,
     TExtension::UNDEFINED,
@@ -9642,7 +8914,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpLessThanEqualComponentWise,
     true);
-constexpr const TFunction function_lessThanEqual_30E30E(
+constexpr const TFunction lessThanEqual_30E30E(
     BuiltInId::lessThanEqual_UInt4_UInt4,
     BuiltInName::lessThanEqual,
     TExtension::UNDEFINED,
@@ -9651,7 +8923,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpLessThanEqualComponentWise,
     true);
-constexpr const TFunction function_greaterThan_10B10B(
+constexpr const TFunction greaterThan_10B10B(
     BuiltInId::greaterThan_Float2_Float2,
     BuiltInName::greaterThan,
     TExtension::UNDEFINED,
@@ -9660,7 +8932,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpGreaterThanComponentWise,
     true);
-constexpr const TFunction function_greaterThan_20B20B(
+constexpr const TFunction greaterThan_20B20B(
     BuiltInId::greaterThan_Float3_Float3,
     BuiltInName::greaterThan,
     TExtension::UNDEFINED,
@@ -9669,7 +8941,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpGreaterThanComponentWise,
     true);
-constexpr const TFunction function_greaterThan_30B30B(
+constexpr const TFunction greaterThan_30B30B(
     BuiltInId::greaterThan_Float4_Float4,
     BuiltInName::greaterThan,
     TExtension::UNDEFINED,
@@ -9678,7 +8950,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpGreaterThanComponentWise,
     true);
-constexpr const TFunction function_greaterThan_10D10D(
+constexpr const TFunction greaterThan_10D10D(
     BuiltInId::greaterThan_Int2_Int2,
     BuiltInName::greaterThan,
     TExtension::UNDEFINED,
@@ -9687,7 +8959,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpGreaterThanComponentWise,
     true);
-constexpr const TFunction function_greaterThan_20D20D(
+constexpr const TFunction greaterThan_20D20D(
     BuiltInId::greaterThan_Int3_Int3,
     BuiltInName::greaterThan,
     TExtension::UNDEFINED,
@@ -9696,7 +8968,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpGreaterThanComponentWise,
     true);
-constexpr const TFunction function_greaterThan_30D30D(
+constexpr const TFunction greaterThan_30D30D(
     BuiltInId::greaterThan_Int4_Int4,
     BuiltInName::greaterThan,
     TExtension::UNDEFINED,
@@ -9705,7 +8977,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpGreaterThanComponentWise,
     true);
-constexpr const TFunction function_greaterThan_10E10E(
+constexpr const TFunction greaterThan_10E10E(
     BuiltInId::greaterThan_UInt2_UInt2,
     BuiltInName::greaterThan,
     TExtension::UNDEFINED,
@@ -9714,7 +8986,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpGreaterThanComponentWise,
     true);
-constexpr const TFunction function_greaterThan_20E20E(
+constexpr const TFunction greaterThan_20E20E(
     BuiltInId::greaterThan_UInt3_UInt3,
     BuiltInName::greaterThan,
     TExtension::UNDEFINED,
@@ -9723,7 +8995,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpGreaterThanComponentWise,
     true);
-constexpr const TFunction function_greaterThan_30E30E(
+constexpr const TFunction greaterThan_30E30E(
     BuiltInId::greaterThan_UInt4_UInt4,
     BuiltInName::greaterThan,
     TExtension::UNDEFINED,
@@ -9732,7 +9004,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpGreaterThanComponentWise,
     true);
-constexpr const TFunction function_greaterThanEqual_10B10B(
+constexpr const TFunction greaterThanEqual_10B10B(
     BuiltInId::greaterThanEqual_Float2_Float2,
     BuiltInName::greaterThanEqual,
     TExtension::UNDEFINED,
@@ -9741,7 +9013,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpGreaterThanEqualComponentWise,
     true);
-constexpr const TFunction function_greaterThanEqual_20B20B(
+constexpr const TFunction greaterThanEqual_20B20B(
     BuiltInId::greaterThanEqual_Float3_Float3,
     BuiltInName::greaterThanEqual,
     TExtension::UNDEFINED,
@@ -9750,7 +9022,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpGreaterThanEqualComponentWise,
     true);
-constexpr const TFunction function_greaterThanEqual_30B30B(
+constexpr const TFunction greaterThanEqual_30B30B(
     BuiltInId::greaterThanEqual_Float4_Float4,
     BuiltInName::greaterThanEqual,
     TExtension::UNDEFINED,
@@ -9759,7 +9031,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpGreaterThanEqualComponentWise,
     true);
-constexpr const TFunction function_greaterThanEqual_10D10D(
+constexpr const TFunction greaterThanEqual_10D10D(
     BuiltInId::greaterThanEqual_Int2_Int2,
     BuiltInName::greaterThanEqual,
     TExtension::UNDEFINED,
@@ -9768,7 +9040,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpGreaterThanEqualComponentWise,
     true);
-constexpr const TFunction function_greaterThanEqual_20D20D(
+constexpr const TFunction greaterThanEqual_20D20D(
     BuiltInId::greaterThanEqual_Int3_Int3,
     BuiltInName::greaterThanEqual,
     TExtension::UNDEFINED,
@@ -9777,7 +9049,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpGreaterThanEqualComponentWise,
     true);
-constexpr const TFunction function_greaterThanEqual_30D30D(
+constexpr const TFunction greaterThanEqual_30D30D(
     BuiltInId::greaterThanEqual_Int4_Int4,
     BuiltInName::greaterThanEqual,
     TExtension::UNDEFINED,
@@ -9786,7 +9058,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpGreaterThanEqualComponentWise,
     true);
-constexpr const TFunction function_greaterThanEqual_10E10E(
+constexpr const TFunction greaterThanEqual_10E10E(
     BuiltInId::greaterThanEqual_UInt2_UInt2,
     BuiltInName::greaterThanEqual,
     TExtension::UNDEFINED,
@@ -9795,7 +9067,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpGreaterThanEqualComponentWise,
     true);
-constexpr const TFunction function_greaterThanEqual_20E20E(
+constexpr const TFunction greaterThanEqual_20E20E(
     BuiltInId::greaterThanEqual_UInt3_UInt3,
     BuiltInName::greaterThanEqual,
     TExtension::UNDEFINED,
@@ -9804,7 +9076,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpGreaterThanEqualComponentWise,
     true);
-constexpr const TFunction function_greaterThanEqual_30E30E(
+constexpr const TFunction greaterThanEqual_30E30E(
     BuiltInId::greaterThanEqual_UInt4_UInt4,
     BuiltInName::greaterThanEqual,
     TExtension::UNDEFINED,
@@ -9813,304 +9085,271 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpGreaterThanEqualComponentWise,
     true);
-constexpr const TFunction function_equal_10B10B(
-    BuiltInId::equal_Float2_Float2,
-    BuiltInName::equal,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B10B00B,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpEqualComponentWise,
-    true);
-constexpr const TFunction function_equal_20B20B(
-    BuiltInId::equal_Float3_Float3,
-    BuiltInName::equal,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpEqualComponentWise,
-    true);
-constexpr const TFunction function_equal_30B30B(
-    BuiltInId::equal_Float4_Float4,
-    BuiltInName::equal,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30B30F,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpEqualComponentWise,
-    true);
-constexpr const TFunction function_equal_10D10D(
-    BuiltInId::equal_Int2_Int2,
-    BuiltInName::equal,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10D10D_o_10D_o_10D,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpEqualComponentWise,
-    true);
-constexpr const TFunction function_equal_20D20D(
-    BuiltInId::equal_Int3_Int3,
-    BuiltInName::equal,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20D20D00D00D,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpEqualComponentWise,
-    true);
-constexpr const TFunction function_equal_30D30D(
-    BuiltInId::equal_Int4_Int4,
-    BuiltInName::equal,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30D30D30F,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpEqualComponentWise,
-    true);
-constexpr const TFunction function_equal_10E10E(
-    BuiltInId::equal_UInt2_UInt2,
-    BuiltInName::equal,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10E10E00D00D,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpEqualComponentWise,
-    true);
-constexpr const TFunction function_equal_20E20E(
-    BuiltInId::equal_UInt3_UInt3,
-    BuiltInName::equal,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20E20E00D00D,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpEqualComponentWise,
-    true);
-constexpr const TFunction function_equal_30E30E(
-    BuiltInId::equal_UInt4_UInt4,
-    BuiltInName::equal,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30E30E00D00D,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpEqualComponentWise,
-    true);
-constexpr const TFunction function_equal_10F10F(
-    BuiltInId::equal_Bool2_Bool2,
-    BuiltInName::equal,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10F10F10F,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpEqualComponentWise,
-    true);
-constexpr const TFunction function_equal_20F20F(
-    BuiltInId::equal_Bool3_Bool3,
-    BuiltInName::equal,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20F20F20F,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpEqualComponentWise,
-    true);
-constexpr const TFunction function_equal_30F30F(
-    BuiltInId::equal_Bool4_Bool4,
-    BuiltInName::equal,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30F30F30F,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpEqualComponentWise,
-    true);
-constexpr const TFunction function_notEqual_10B10B(
-    BuiltInId::notEqual_Float2_Float2,
-    BuiltInName::notEqual,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B10B00B,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpNotEqualComponentWise,
-    true);
-constexpr const TFunction function_notEqual_20B20B(
-    BuiltInId::notEqual_Float3_Float3,
-    BuiltInName::notEqual,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpNotEqualComponentWise,
-    true);
-constexpr const TFunction function_notEqual_30B30B(
-    BuiltInId::notEqual_Float4_Float4,
-    BuiltInName::notEqual,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30B30F,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpNotEqualComponentWise,
-    true);
-constexpr const TFunction function_notEqual_10D10D(
-    BuiltInId::notEqual_Int2_Int2,
-    BuiltInName::notEqual,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10D10D_o_10D_o_10D,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpNotEqualComponentWise,
-    true);
-constexpr const TFunction function_notEqual_20D20D(
-    BuiltInId::notEqual_Int3_Int3,
-    BuiltInName::notEqual,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20D20D00D00D,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpNotEqualComponentWise,
-    true);
-constexpr const TFunction function_notEqual_30D30D(
-    BuiltInId::notEqual_Int4_Int4,
-    BuiltInName::notEqual,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30D30D30F,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpNotEqualComponentWise,
-    true);
-constexpr const TFunction function_notEqual_10E10E(
-    BuiltInId::notEqual_UInt2_UInt2,
-    BuiltInName::notEqual,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10E10E00D00D,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpNotEqualComponentWise,
-    true);
-constexpr const TFunction function_notEqual_20E20E(
-    BuiltInId::notEqual_UInt3_UInt3,
-    BuiltInName::notEqual,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20E20E00D00D,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpNotEqualComponentWise,
-    true);
-constexpr const TFunction function_notEqual_30E30E(
-    BuiltInId::notEqual_UInt4_UInt4,
-    BuiltInName::notEqual,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30E30E00D00D,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpNotEqualComponentWise,
-    true);
-constexpr const TFunction function_notEqual_10F10F(
-    BuiltInId::notEqual_Bool2_Bool2,
-    BuiltInName::notEqual,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10F10F10F,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpNotEqualComponentWise,
-    true);
-constexpr const TFunction function_notEqual_20F20F(
-    BuiltInId::notEqual_Bool3_Bool3,
-    BuiltInName::notEqual,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20F20F20F,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpNotEqualComponentWise,
-    true);
-constexpr const TFunction function_notEqual_30F30F(
-    BuiltInId::notEqual_Bool4_Bool4,
-    BuiltInName::notEqual,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30F30F30F,
-    2,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpNotEqualComponentWise,
-    true);
-constexpr const TFunction function_any_10F(
-    BuiltInId::any_Bool2,
-    BuiltInName::any,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10F10F10F,
-    1,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpAny,
-    true);
-constexpr const TFunction function_any_20F(
-    BuiltInId::any_Bool3,
-    BuiltInName::any,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20F20F20F,
-    1,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpAny,
-    true);
-constexpr const TFunction function_any_30F(
-    BuiltInId::any_Bool4,
-    BuiltInName::any,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30F30F30F,
-    1,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpAny,
-    true);
-constexpr const TFunction function_all_10F(
-    BuiltInId::all_Bool2,
-    BuiltInName::all,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10F10F10F,
-    1,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpAll,
-    true);
-constexpr const TFunction function_all_20F(
-    BuiltInId::all_Bool3,
-    BuiltInName::all,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20F20F20F,
-    1,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpAll,
-    true);
-constexpr const TFunction function_all_30F(
-    BuiltInId::all_Bool4,
-    BuiltInName::all,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30F30F30F,
-    1,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpAll,
-    true);
-constexpr const TFunction function_notFunc_10F(
-    BuiltInId::notFunc_Bool2,
-    BuiltInName::notFunc,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10F10F10F,
-    1,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpLogicalNotComponentWise,
-    true);
-constexpr const TFunction function_notFunc_20F(
-    BuiltInId::notFunc_Bool3,
-    BuiltInName::notFunc,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20F20F20F,
-    1,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpLogicalNotComponentWise,
-    true);
-constexpr const TFunction function_notFunc_30F(
-    BuiltInId::notFunc_Bool4,
-    BuiltInName::notFunc,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30F30F30F,
-    1,
-    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpLogicalNotComponentWise,
-    true);
-constexpr const TFunction function_bitfieldExtract_00D00D00D(
+constexpr const TFunction equal_10B10B(BuiltInId::equal_Float2_Float2,
+                                       BuiltInName::equal,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p10B10B00B,
+                                       2,
+                                       StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
+                                       EOpEqualComponentWise,
+                                       true);
+constexpr const TFunction equal_20B20B(BuiltInId::equal_Float3_Float3,
+                                       BuiltInName::equal,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p20B20B00B,
+                                       2,
+                                       StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
+                                       EOpEqualComponentWise,
+                                       true);
+constexpr const TFunction equal_30B30B(BuiltInId::equal_Float4_Float4,
+                                       BuiltInName::equal,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p30B30B30F,
+                                       2,
+                                       StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
+                                       EOpEqualComponentWise,
+                                       true);
+constexpr const TFunction equal_10D10D(BuiltInId::equal_Int2_Int2,
+                                       BuiltInName::equal,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p10D10D_o_10D_o_10D,
+                                       2,
+                                       StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
+                                       EOpEqualComponentWise,
+                                       true);
+constexpr const TFunction equal_20D20D(BuiltInId::equal_Int3_Int3,
+                                       BuiltInName::equal,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p20D20D00D00D,
+                                       2,
+                                       StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
+                                       EOpEqualComponentWise,
+                                       true);
+constexpr const TFunction equal_30D30D(BuiltInId::equal_Int4_Int4,
+                                       BuiltInName::equal,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p30D30D30F,
+                                       2,
+                                       StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
+                                       EOpEqualComponentWise,
+                                       true);
+constexpr const TFunction equal_10E10E(BuiltInId::equal_UInt2_UInt2,
+                                       BuiltInName::equal,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p10E10E00D00D,
+                                       2,
+                                       StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
+                                       EOpEqualComponentWise,
+                                       true);
+constexpr const TFunction equal_20E20E(BuiltInId::equal_UInt3_UInt3,
+                                       BuiltInName::equal,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p20E20E00D00D,
+                                       2,
+                                       StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
+                                       EOpEqualComponentWise,
+                                       true);
+constexpr const TFunction equal_30E30E(BuiltInId::equal_UInt4_UInt4,
+                                       BuiltInName::equal,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p30E30E00D00D,
+                                       2,
+                                       StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
+                                       EOpEqualComponentWise,
+                                       true);
+constexpr const TFunction equal_10F10F(BuiltInId::equal_Bool2_Bool2,
+                                       BuiltInName::equal,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p10F10F10F,
+                                       2,
+                                       StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
+                                       EOpEqualComponentWise,
+                                       true);
+constexpr const TFunction equal_20F20F(BuiltInId::equal_Bool3_Bool3,
+                                       BuiltInName::equal,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p20F20F20F,
+                                       2,
+                                       StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
+                                       EOpEqualComponentWise,
+                                       true);
+constexpr const TFunction equal_30F30F(BuiltInId::equal_Bool4_Bool4,
+                                       BuiltInName::equal,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p30F30F30F,
+                                       2,
+                                       StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
+                                       EOpEqualComponentWise,
+                                       true);
+constexpr const TFunction notEqual_10B10B(BuiltInId::notEqual_Float2_Float2,
+                                          BuiltInName::notEqual,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p10B10B00B,
+                                          2,
+                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
+                                          EOpNotEqualComponentWise,
+                                          true);
+constexpr const TFunction notEqual_20B20B(BuiltInId::notEqual_Float3_Float3,
+                                          BuiltInName::notEqual,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p20B20B00B,
+                                          2,
+                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
+                                          EOpNotEqualComponentWise,
+                                          true);
+constexpr const TFunction notEqual_30B30B(BuiltInId::notEqual_Float4_Float4,
+                                          BuiltInName::notEqual,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p30B30B30F,
+                                          2,
+                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
+                                          EOpNotEqualComponentWise,
+                                          true);
+constexpr const TFunction notEqual_10D10D(BuiltInId::notEqual_Int2_Int2,
+                                          BuiltInName::notEqual,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p10D10D_o_10D_o_10D,
+                                          2,
+                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
+                                          EOpNotEqualComponentWise,
+                                          true);
+constexpr const TFunction notEqual_20D20D(BuiltInId::notEqual_Int3_Int3,
+                                          BuiltInName::notEqual,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p20D20D00D00D,
+                                          2,
+                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
+                                          EOpNotEqualComponentWise,
+                                          true);
+constexpr const TFunction notEqual_30D30D(BuiltInId::notEqual_Int4_Int4,
+                                          BuiltInName::notEqual,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p30D30D30F,
+                                          2,
+                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
+                                          EOpNotEqualComponentWise,
+                                          true);
+constexpr const TFunction notEqual_10E10E(BuiltInId::notEqual_UInt2_UInt2,
+                                          BuiltInName::notEqual,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p10E10E00D00D,
+                                          2,
+                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
+                                          EOpNotEqualComponentWise,
+                                          true);
+constexpr const TFunction notEqual_20E20E(BuiltInId::notEqual_UInt3_UInt3,
+                                          BuiltInName::notEqual,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p20E20E00D00D,
+                                          2,
+                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
+                                          EOpNotEqualComponentWise,
+                                          true);
+constexpr const TFunction notEqual_30E30E(BuiltInId::notEqual_UInt4_UInt4,
+                                          BuiltInName::notEqual,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p30E30E00D00D,
+                                          2,
+                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
+                                          EOpNotEqualComponentWise,
+                                          true);
+constexpr const TFunction notEqual_10F10F(BuiltInId::notEqual_Bool2_Bool2,
+                                          BuiltInName::notEqual,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p10F10F10F,
+                                          2,
+                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
+                                          EOpNotEqualComponentWise,
+                                          true);
+constexpr const TFunction notEqual_20F20F(BuiltInId::notEqual_Bool3_Bool3,
+                                          BuiltInName::notEqual,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p20F20F20F,
+                                          2,
+                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
+                                          EOpNotEqualComponentWise,
+                                          true);
+constexpr const TFunction notEqual_30F30F(BuiltInId::notEqual_Bool4_Bool4,
+                                          BuiltInName::notEqual,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p30F30F30F,
+                                          2,
+                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
+                                          EOpNotEqualComponentWise,
+                                          true);
+constexpr const TFunction any_10F(BuiltInId::any_Bool2,
+                                  BuiltInName::any,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p10F10F10F,
+                                  1,
+                                  StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
+                                  EOpAny,
+                                  true);
+constexpr const TFunction any_20F(BuiltInId::any_Bool3,
+                                  BuiltInName::any,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p20F20F20F,
+                                  1,
+                                  StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
+                                  EOpAny,
+                                  true);
+constexpr const TFunction any_30F(BuiltInId::any_Bool4,
+                                  BuiltInName::any,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p30F30F30F,
+                                  1,
+                                  StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
+                                  EOpAny,
+                                  true);
+constexpr const TFunction all_10F(BuiltInId::all_Bool2,
+                                  BuiltInName::all,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p10F10F10F,
+                                  1,
+                                  StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
+                                  EOpAll,
+                                  true);
+constexpr const TFunction all_20F(BuiltInId::all_Bool3,
+                                  BuiltInName::all,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p20F20F20F,
+                                  1,
+                                  StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
+                                  EOpAll,
+                                  true);
+constexpr const TFunction all_30F(BuiltInId::all_Bool4,
+                                  BuiltInName::all,
+                                  TExtension::UNDEFINED,
+                                  BuiltInParameters::p30F30F30F,
+                                  1,
+                                  StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
+                                  EOpAll,
+                                  true);
+constexpr const TFunction notFunc_10F(BuiltInId::notFunc_Bool2,
+                                      BuiltInName::notFunc,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p10F10F10F,
+                                      1,
+                                      StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
+                                      EOpLogicalNotComponentWise,
+                                      true);
+constexpr const TFunction notFunc_20F(BuiltInId::notFunc_Bool3,
+                                      BuiltInName::notFunc,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p20F20F20F,
+                                      1,
+                                      StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
+                                      EOpLogicalNotComponentWise,
+                                      true);
+constexpr const TFunction notFunc_30F(BuiltInId::notFunc_Bool4,
+                                      BuiltInName::notFunc,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p30F30F30F,
+                                      1,
+                                      StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
+                                      EOpLogicalNotComponentWise,
+                                      true);
+constexpr const TFunction bitfieldExtract_00D00D00D(
     BuiltInId::bitfieldExtract_Int1_Int1_Int1,
     BuiltInName::bitfieldExtract,
     TExtension::UNDEFINED,
@@ -10119,7 +9358,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpBitfieldExtract,
     true);
-constexpr const TFunction function_bitfieldExtract_10D00D00D(
+constexpr const TFunction bitfieldExtract_10D00D00D(
     BuiltInId::bitfieldExtract_Int2_Int1_Int1,
     BuiltInName::bitfieldExtract,
     TExtension::UNDEFINED,
@@ -10128,7 +9367,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpBitfieldExtract,
     true);
-constexpr const TFunction function_bitfieldExtract_20D00D00D(
+constexpr const TFunction bitfieldExtract_20D00D00D(
     BuiltInId::bitfieldExtract_Int3_Int1_Int1,
     BuiltInName::bitfieldExtract,
     TExtension::UNDEFINED,
@@ -10137,7 +9376,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpBitfieldExtract,
     true);
-constexpr const TFunction function_bitfieldExtract_30D00D00D(
+constexpr const TFunction bitfieldExtract_30D00D00D(
     BuiltInId::bitfieldExtract_Int4_Int1_Int1,
     BuiltInName::bitfieldExtract,
     TExtension::UNDEFINED,
@@ -10146,7 +9385,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpBitfieldExtract,
     true);
-constexpr const TFunction function_bitfieldExtract_00E00D00D(
+constexpr const TFunction bitfieldExtract_00E00D00D(
     BuiltInId::bitfieldExtract_UInt1_Int1_Int1,
     BuiltInName::bitfieldExtract,
     TExtension::UNDEFINED,
@@ -10155,7 +9394,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpBitfieldExtract,
     true);
-constexpr const TFunction function_bitfieldExtract_10E00D00D(
+constexpr const TFunction bitfieldExtract_10E00D00D(
     BuiltInId::bitfieldExtract_UInt2_Int1_Int1,
     BuiltInName::bitfieldExtract,
     TExtension::UNDEFINED,
@@ -10164,7 +9403,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpBitfieldExtract,
     true);
-constexpr const TFunction function_bitfieldExtract_20E00D00D(
+constexpr const TFunction bitfieldExtract_20E00D00D(
     BuiltInId::bitfieldExtract_UInt3_Int1_Int1,
     BuiltInName::bitfieldExtract,
     TExtension::UNDEFINED,
@@ -10173,7 +9412,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpBitfieldExtract,
     true);
-constexpr const TFunction function_bitfieldExtract_30E00D00D(
+constexpr const TFunction bitfieldExtract_30E00D00D(
     BuiltInId::bitfieldExtract_UInt4_Int1_Int1,
     BuiltInName::bitfieldExtract,
     TExtension::UNDEFINED,
@@ -10182,7 +9421,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpBitfieldExtract,
     true);
-constexpr const TFunction function_bitfieldInsert_00D00D00D00D(
+constexpr const TFunction bitfieldInsert_00D00D00D00D(
     BuiltInId::bitfieldInsert_Int1_Int1_Int1_Int1,
     BuiltInName::bitfieldInsert,
     TExtension::UNDEFINED,
@@ -10191,7 +9430,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpBitfieldInsert,
     true);
-constexpr const TFunction function_bitfieldInsert_10D10D00D00D(
+constexpr const TFunction bitfieldInsert_10D10D00D00D(
     BuiltInId::bitfieldInsert_Int2_Int2_Int1_Int1,
     BuiltInName::bitfieldInsert,
     TExtension::UNDEFINED,
@@ -10200,7 +9439,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpBitfieldInsert,
     true);
-constexpr const TFunction function_bitfieldInsert_20D20D00D00D(
+constexpr const TFunction bitfieldInsert_20D20D00D00D(
     BuiltInId::bitfieldInsert_Int3_Int3_Int1_Int1,
     BuiltInName::bitfieldInsert,
     TExtension::UNDEFINED,
@@ -10209,7 +9448,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpBitfieldInsert,
     true);
-constexpr const TFunction function_bitfieldInsert_30D30D00D00D(
+constexpr const TFunction bitfieldInsert_30D30D00D00D(
     BuiltInId::bitfieldInsert_Int4_Int4_Int1_Int1,
     BuiltInName::bitfieldInsert,
     TExtension::UNDEFINED,
@@ -10218,7 +9457,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpBitfieldInsert,
     true);
-constexpr const TFunction function_bitfieldInsert_00E00E00D00D(
+constexpr const TFunction bitfieldInsert_00E00E00D00D(
     BuiltInId::bitfieldInsert_UInt1_UInt1_Int1_Int1,
     BuiltInName::bitfieldInsert,
     TExtension::UNDEFINED,
@@ -10227,7 +9466,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpBitfieldInsert,
     true);
-constexpr const TFunction function_bitfieldInsert_10E10E00D00D(
+constexpr const TFunction bitfieldInsert_10E10E00D00D(
     BuiltInId::bitfieldInsert_UInt2_UInt2_Int1_Int1,
     BuiltInName::bitfieldInsert,
     TExtension::UNDEFINED,
@@ -10236,7 +9475,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpBitfieldInsert,
     true);
-constexpr const TFunction function_bitfieldInsert_20E20E00D00D(
+constexpr const TFunction bitfieldInsert_20E20E00D00D(
     BuiltInId::bitfieldInsert_UInt3_UInt3_Int1_Int1,
     BuiltInName::bitfieldInsert,
     TExtension::UNDEFINED,
@@ -10245,7 +9484,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpBitfieldInsert,
     true);
-constexpr const TFunction function_bitfieldInsert_30E30E00D00D(
+constexpr const TFunction bitfieldInsert_30E30E00D00D(
     BuiltInId::bitfieldInsert_UInt4_UInt4_Int1_Int1,
     BuiltInName::bitfieldInsert,
     TExtension::UNDEFINED,
@@ -10254,7 +9493,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpBitfieldInsert,
     true);
-constexpr const TFunction function_bitfieldReverse_00D(
+constexpr const TFunction bitfieldReverse_00D(
     BuiltInId::bitfieldReverse_Int1,
     BuiltInName::bitfieldReverse,
     TExtension::UNDEFINED,
@@ -10263,7 +9502,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpBitfieldReverse,
     true);
-constexpr const TFunction function_bitfieldReverse_10D(
+constexpr const TFunction bitfieldReverse_10D(
     BuiltInId::bitfieldReverse_Int2,
     BuiltInName::bitfieldReverse,
     TExtension::UNDEFINED,
@@ -10272,7 +9511,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpBitfieldReverse,
     true);
-constexpr const TFunction function_bitfieldReverse_20D(
+constexpr const TFunction bitfieldReverse_20D(
     BuiltInId::bitfieldReverse_Int3,
     BuiltInName::bitfieldReverse,
     TExtension::UNDEFINED,
@@ -10281,7 +9520,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpBitfieldReverse,
     true);
-constexpr const TFunction function_bitfieldReverse_30D(
+constexpr const TFunction bitfieldReverse_30D(
     BuiltInId::bitfieldReverse_Int4,
     BuiltInName::bitfieldReverse,
     TExtension::UNDEFINED,
@@ -10290,7 +9529,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpBitfieldReverse,
     true);
-constexpr const TFunction function_bitfieldReverse_00E(
+constexpr const TFunction bitfieldReverse_00E(
     BuiltInId::bitfieldReverse_UInt1,
     BuiltInName::bitfieldReverse,
     TExtension::UNDEFINED,
@@ -10299,7 +9538,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpBitfieldReverse,
     true);
-constexpr const TFunction function_bitfieldReverse_10E(
+constexpr const TFunction bitfieldReverse_10E(
     BuiltInId::bitfieldReverse_UInt2,
     BuiltInName::bitfieldReverse,
     TExtension::UNDEFINED,
@@ -10308,7 +9547,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpBitfieldReverse,
     true);
-constexpr const TFunction function_bitfieldReverse_20E(
+constexpr const TFunction bitfieldReverse_20E(
     BuiltInId::bitfieldReverse_UInt3,
     BuiltInName::bitfieldReverse,
     TExtension::UNDEFINED,
@@ -10317,7 +9556,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpBitfieldReverse,
     true);
-constexpr const TFunction function_bitfieldReverse_30E(
+constexpr const TFunction bitfieldReverse_30E(
     BuiltInId::bitfieldReverse_UInt4,
     BuiltInName::bitfieldReverse,
     TExtension::UNDEFINED,
@@ -10326,223 +9565,199 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpBitfieldReverse,
     true);
-constexpr const TFunction function_bitCount_00D(
-    BuiltInId::bitCount_Int1,
-    BuiltInName::bitCount,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00D00D_o_00D_o_00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpBitCount,
-    true);
-constexpr const TFunction function_bitCount_10D(
-    BuiltInId::bitCount_Int2,
-    BuiltInName::bitCount,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10D10D_o_10D_o_10D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpBitCount,
-    true);
-constexpr const TFunction function_bitCount_20D(
-    BuiltInId::bitCount_Int3,
-    BuiltInName::bitCount,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20D20D00D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpBitCount,
-    true);
-constexpr const TFunction function_bitCount_30D(
-    BuiltInId::bitCount_Int4,
-    BuiltInName::bitCount,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30D30D30F,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpBitCount,
-    true);
-constexpr const TFunction function_bitCount_00E(
-    BuiltInId::bitCount_UInt1,
-    BuiltInName::bitCount,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00E00E00E,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpBitCount,
-    true);
-constexpr const TFunction function_bitCount_10E(
-    BuiltInId::bitCount_UInt2,
-    BuiltInName::bitCount,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10E10E00D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpBitCount,
-    true);
-constexpr const TFunction function_bitCount_20E(
-    BuiltInId::bitCount_UInt3,
-    BuiltInName::bitCount,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20E20E00D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpBitCount,
-    true);
-constexpr const TFunction function_bitCount_30E(
-    BuiltInId::bitCount_UInt4,
-    BuiltInName::bitCount,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30E30E00D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpBitCount,
-    true);
-constexpr const TFunction function_findLSB_00D(
-    BuiltInId::findLSB_Int1,
-    BuiltInName::findLSB,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00D00D_o_00D_o_00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpFindLSB,
-    true);
-constexpr const TFunction function_findLSB_10D(
-    BuiltInId::findLSB_Int2,
-    BuiltInName::findLSB,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10D10D_o_10D_o_10D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpFindLSB,
-    true);
-constexpr const TFunction function_findLSB_20D(
-    BuiltInId::findLSB_Int3,
-    BuiltInName::findLSB,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20D20D00D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpFindLSB,
-    true);
-constexpr const TFunction function_findLSB_30D(
-    BuiltInId::findLSB_Int4,
-    BuiltInName::findLSB,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30D30D30F,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpFindLSB,
-    true);
-constexpr const TFunction function_findLSB_00E(
-    BuiltInId::findLSB_UInt1,
-    BuiltInName::findLSB,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00E00E00E,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpFindLSB,
-    true);
-constexpr const TFunction function_findLSB_10E(
-    BuiltInId::findLSB_UInt2,
-    BuiltInName::findLSB,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10E10E00D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpFindLSB,
-    true);
-constexpr const TFunction function_findLSB_20E(
-    BuiltInId::findLSB_UInt3,
-    BuiltInName::findLSB,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20E20E00D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpFindLSB,
-    true);
-constexpr const TFunction function_findLSB_30E(
-    BuiltInId::findLSB_UInt4,
-    BuiltInName::findLSB,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30E30E00D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpFindLSB,
-    true);
-constexpr const TFunction function_findMSB_00D(
-    BuiltInId::findMSB_Int1,
-    BuiltInName::findMSB,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00D00D_o_00D_o_00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpFindMSB,
-    true);
-constexpr const TFunction function_findMSB_10D(
-    BuiltInId::findMSB_Int2,
-    BuiltInName::findMSB,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10D10D_o_10D_o_10D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpFindMSB,
-    true);
-constexpr const TFunction function_findMSB_20D(
-    BuiltInId::findMSB_Int3,
-    BuiltInName::findMSB,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20D20D00D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpFindMSB,
-    true);
-constexpr const TFunction function_findMSB_30D(
-    BuiltInId::findMSB_Int4,
-    BuiltInName::findMSB,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30D30D30F,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpFindMSB,
-    true);
-constexpr const TFunction function_findMSB_00E(
-    BuiltInId::findMSB_UInt1,
-    BuiltInName::findMSB,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00E00E00E,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpFindMSB,
-    true);
-constexpr const TFunction function_findMSB_10E(
-    BuiltInId::findMSB_UInt2,
-    BuiltInName::findMSB,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10E10E00D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpFindMSB,
-    true);
-constexpr const TFunction function_findMSB_20E(
-    BuiltInId::findMSB_UInt3,
-    BuiltInName::findMSB,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20E20E00D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpFindMSB,
-    true);
-constexpr const TFunction function_findMSB_30E(
-    BuiltInId::findMSB_UInt4,
-    BuiltInName::findMSB,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30E30E00D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpFindMSB,
-    true);
-constexpr const TFunction function_uaddCarry_00E00E00E(
+constexpr const TFunction bitCount_00D(BuiltInId::bitCount_Int1,
+                                       BuiltInName::bitCount,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p00D00D_o_00D_o_00D,
+                                       1,
+                                       StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                       EOpBitCount,
+                                       true);
+constexpr const TFunction bitCount_10D(BuiltInId::bitCount_Int2,
+                                       BuiltInName::bitCount,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p10D10D_o_10D_o_10D,
+                                       1,
+                                       StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                       EOpBitCount,
+                                       true);
+constexpr const TFunction bitCount_20D(BuiltInId::bitCount_Int3,
+                                       BuiltInName::bitCount,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p20D20D00D00D,
+                                       1,
+                                       StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                       EOpBitCount,
+                                       true);
+constexpr const TFunction bitCount_30D(BuiltInId::bitCount_Int4,
+                                       BuiltInName::bitCount,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p30D30D30F,
+                                       1,
+                                       StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                       EOpBitCount,
+                                       true);
+constexpr const TFunction bitCount_00E(BuiltInId::bitCount_UInt1,
+                                       BuiltInName::bitCount,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p00E00E00E,
+                                       1,
+                                       StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                       EOpBitCount,
+                                       true);
+constexpr const TFunction bitCount_10E(BuiltInId::bitCount_UInt2,
+                                       BuiltInName::bitCount,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p10E10E00D00D,
+                                       1,
+                                       StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                       EOpBitCount,
+                                       true);
+constexpr const TFunction bitCount_20E(BuiltInId::bitCount_UInt3,
+                                       BuiltInName::bitCount,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p20E20E00D00D,
+                                       1,
+                                       StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                       EOpBitCount,
+                                       true);
+constexpr const TFunction bitCount_30E(BuiltInId::bitCount_UInt4,
+                                       BuiltInName::bitCount,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p30E30E00D00D,
+                                       1,
+                                       StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                       EOpBitCount,
+                                       true);
+constexpr const TFunction findLSB_00D(BuiltInId::findLSB_Int1,
+                                      BuiltInName::findLSB,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p00D00D_o_00D_o_00D,
+                                      1,
+                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                      EOpFindLSB,
+                                      true);
+constexpr const TFunction findLSB_10D(BuiltInId::findLSB_Int2,
+                                      BuiltInName::findLSB,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p10D10D_o_10D_o_10D,
+                                      1,
+                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                      EOpFindLSB,
+                                      true);
+constexpr const TFunction findLSB_20D(BuiltInId::findLSB_Int3,
+                                      BuiltInName::findLSB,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p20D20D00D00D,
+                                      1,
+                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                      EOpFindLSB,
+                                      true);
+constexpr const TFunction findLSB_30D(BuiltInId::findLSB_Int4,
+                                      BuiltInName::findLSB,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p30D30D30F,
+                                      1,
+                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                      EOpFindLSB,
+                                      true);
+constexpr const TFunction findLSB_00E(BuiltInId::findLSB_UInt1,
+                                      BuiltInName::findLSB,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p00E00E00E,
+                                      1,
+                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                      EOpFindLSB,
+                                      true);
+constexpr const TFunction findLSB_10E(BuiltInId::findLSB_UInt2,
+                                      BuiltInName::findLSB,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p10E10E00D00D,
+                                      1,
+                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                      EOpFindLSB,
+                                      true);
+constexpr const TFunction findLSB_20E(BuiltInId::findLSB_UInt3,
+                                      BuiltInName::findLSB,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p20E20E00D00D,
+                                      1,
+                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                      EOpFindLSB,
+                                      true);
+constexpr const TFunction findLSB_30E(BuiltInId::findLSB_UInt4,
+                                      BuiltInName::findLSB,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p30E30E00D00D,
+                                      1,
+                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                      EOpFindLSB,
+                                      true);
+constexpr const TFunction findMSB_00D(BuiltInId::findMSB_Int1,
+                                      BuiltInName::findMSB,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p00D00D_o_00D_o_00D,
+                                      1,
+                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                      EOpFindMSB,
+                                      true);
+constexpr const TFunction findMSB_10D(BuiltInId::findMSB_Int2,
+                                      BuiltInName::findMSB,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p10D10D_o_10D_o_10D,
+                                      1,
+                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                      EOpFindMSB,
+                                      true);
+constexpr const TFunction findMSB_20D(BuiltInId::findMSB_Int3,
+                                      BuiltInName::findMSB,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p20D20D00D00D,
+                                      1,
+                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                      EOpFindMSB,
+                                      true);
+constexpr const TFunction findMSB_30D(BuiltInId::findMSB_Int4,
+                                      BuiltInName::findMSB,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p30D30D30F,
+                                      1,
+                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                      EOpFindMSB,
+                                      true);
+constexpr const TFunction findMSB_00E(BuiltInId::findMSB_UInt1,
+                                      BuiltInName::findMSB,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p00E00E00E,
+                                      1,
+                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                      EOpFindMSB,
+                                      true);
+constexpr const TFunction findMSB_10E(BuiltInId::findMSB_UInt2,
+                                      BuiltInName::findMSB,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p10E10E00D00D,
+                                      1,
+                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                      EOpFindMSB,
+                                      true);
+constexpr const TFunction findMSB_20E(BuiltInId::findMSB_UInt3,
+                                      BuiltInName::findMSB,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p20E20E00D00D,
+                                      1,
+                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                      EOpFindMSB,
+                                      true);
+constexpr const TFunction findMSB_30E(BuiltInId::findMSB_UInt4,
+                                      BuiltInName::findMSB,
+                                      TExtension::UNDEFINED,
+                                      BuiltInParameters::p30E30E00D00D,
+                                      1,
+                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                      EOpFindMSB,
+                                      true);
+constexpr const TFunction uaddCarry_00E00E00E(
     BuiltInId::uaddCarry_UInt1_UInt1_UInt1,
     BuiltInName::uaddCarry,
     TExtension::UNDEFINED,
@@ -10551,7 +9766,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpUaddCarry,
     false);
-constexpr const TFunction function_uaddCarry_10E10E10E(
+constexpr const TFunction uaddCarry_10E10E10E(
     BuiltInId::uaddCarry_UInt2_UInt2_UInt2,
     BuiltInName::uaddCarry,
     TExtension::UNDEFINED,
@@ -10560,7 +9775,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpUaddCarry,
     false);
-constexpr const TFunction function_uaddCarry_20E20E20E(
+constexpr const TFunction uaddCarry_20E20E20E(
     BuiltInId::uaddCarry_UInt3_UInt3_UInt3,
     BuiltInName::uaddCarry,
     TExtension::UNDEFINED,
@@ -10569,7 +9784,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpUaddCarry,
     false);
-constexpr const TFunction function_uaddCarry_30E30E30E(
+constexpr const TFunction uaddCarry_30E30E30E(
     BuiltInId::uaddCarry_UInt4_UInt4_UInt4,
     BuiltInName::uaddCarry,
     TExtension::UNDEFINED,
@@ -10578,7 +9793,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpUaddCarry,
     false);
-constexpr const TFunction function_usubBorrow_00E00E00E(
+constexpr const TFunction usubBorrow_00E00E00E(
     BuiltInId::usubBorrow_UInt1_UInt1_UInt1,
     BuiltInName::usubBorrow,
     TExtension::UNDEFINED,
@@ -10587,7 +9802,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpUsubBorrow,
     false);
-constexpr const TFunction function_usubBorrow_10E10E10E(
+constexpr const TFunction usubBorrow_10E10E10E(
     BuiltInId::usubBorrow_UInt2_UInt2_UInt2,
     BuiltInName::usubBorrow,
     TExtension::UNDEFINED,
@@ -10596,7 +9811,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpUsubBorrow,
     false);
-constexpr const TFunction function_usubBorrow_20E20E20E(
+constexpr const TFunction usubBorrow_20E20E20E(
     BuiltInId::usubBorrow_UInt3_UInt3_UInt3,
     BuiltInName::usubBorrow,
     TExtension::UNDEFINED,
@@ -10605,7 +9820,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpUsubBorrow,
     false);
-constexpr const TFunction function_usubBorrow_30E30E30E(
+constexpr const TFunction usubBorrow_30E30E30E(
     BuiltInId::usubBorrow_UInt4_UInt4_UInt4,
     BuiltInName::usubBorrow,
     TExtension::UNDEFINED,
@@ -10614,7 +9829,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpUsubBorrow,
     false);
-constexpr const TFunction function_umulExtended_00E00E00E00E(
+constexpr const TFunction umulExtended_00E00E00E00E(
     BuiltInId::umulExtended_UInt1_UInt1_UInt1_UInt1,
     BuiltInName::umulExtended,
     TExtension::UNDEFINED,
@@ -10623,7 +9838,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpUmulExtended,
     false);
-constexpr const TFunction function_umulExtended_10E10E10E10E(
+constexpr const TFunction umulExtended_10E10E10E10E(
     BuiltInId::umulExtended_UInt2_UInt2_UInt2_UInt2,
     BuiltInName::umulExtended,
     TExtension::UNDEFINED,
@@ -10632,7 +9847,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpUmulExtended,
     false);
-constexpr const TFunction function_umulExtended_20E20E20E20E(
+constexpr const TFunction umulExtended_20E20E20E20E(
     BuiltInId::umulExtended_UInt3_UInt3_UInt3_UInt3,
     BuiltInName::umulExtended,
     TExtension::UNDEFINED,
@@ -10641,7 +9856,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpUmulExtended,
     false);
-constexpr const TFunction function_umulExtended_30E30E30E30E(
+constexpr const TFunction umulExtended_30E30E30E30E(
     BuiltInId::umulExtended_UInt4_UInt4_UInt4_UInt4,
     BuiltInName::umulExtended,
     TExtension::UNDEFINED,
@@ -10650,7 +9865,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpUmulExtended,
     false);
-constexpr const TFunction function_imulExtended_00D00D00D00D(
+constexpr const TFunction imulExtended_00D00D00D00D(
     BuiltInId::imulExtended_Int1_Int1_Int1_Int1,
     BuiltInName::imulExtended,
     TExtension::UNDEFINED,
@@ -10659,7 +9874,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpImulExtended,
     false);
-constexpr const TFunction function_imulExtended_10D10D10D10D(
+constexpr const TFunction imulExtended_10D10D10D10D(
     BuiltInId::imulExtended_Int2_Int2_Int2_Int2,
     BuiltInName::imulExtended,
     TExtension::UNDEFINED,
@@ -10668,7 +9883,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpImulExtended,
     false);
-constexpr const TFunction function_imulExtended_20D20D20D20D(
+constexpr const TFunction imulExtended_20D20D20D20D(
     BuiltInId::imulExtended_Int3_Int3_Int3_Int3,
     BuiltInName::imulExtended,
     TExtension::UNDEFINED,
@@ -10677,7 +9892,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpImulExtended,
     false);
-constexpr const TFunction function_imulExtended_30D30D30D30D(
+constexpr const TFunction imulExtended_30D30D30D30D(
     BuiltInId::imulExtended_Int4_Int4_Int4_Int4,
     BuiltInName::imulExtended,
     TExtension::UNDEFINED,
@@ -10686,7 +9901,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpImulExtended,
     false);
-constexpr const TFunction function_texture2D_00I10B(
+constexpr const TFunction texture2D_00I10B(
     BuiltInId::texture2D_Sampler2D1_Float2,
     BuiltInName::texture2D,
     TExtension::UNDEFINED,
@@ -10695,7 +9910,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture2DProj_00I20B(
+constexpr const TFunction texture2DProj_00I20B(
     BuiltInId::texture2DProj_Sampler2D1_Float3,
     BuiltInName::texture2DProj,
     TExtension::UNDEFINED,
@@ -10704,7 +9919,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture2DProj_00I30B(
+constexpr const TFunction texture2DProj_00I30B(
     BuiltInId::texture2DProj_Sampler2D1_Float4,
     BuiltInName::texture2DProj,
     TExtension::UNDEFINED,
@@ -10713,7 +9928,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureCube_00K20B(
+constexpr const TFunction textureCube_00K20B(
     BuiltInId::textureCube_SamplerCube1_Float3,
     BuiltInName::textureCube,
     TExtension::UNDEFINED,
@@ -10722,7 +9937,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture1D_00g00B(
+constexpr const TFunction texture1D_00g00B(
     BuiltInId::texture1D_Sampler1D1_Float1,
     BuiltInName::texture1D,
     TExtension::UNDEFINED,
@@ -10731,7 +9946,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture1DProj_00g10B(
+constexpr const TFunction texture1DProj_00g10B(
     BuiltInId::texture1DProj_Sampler1D1_Float2,
     BuiltInName::texture1DProj,
     TExtension::UNDEFINED,
@@ -10740,7 +9955,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture1DProj_00g30B(
+constexpr const TFunction texture1DProj_00g30B(
     BuiltInId::texture1DProj_Sampler1D1_Float4,
     BuiltInName::texture1DProj,
     TExtension::UNDEFINED,
@@ -10749,7 +9964,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture3D_00J20B(
+constexpr const TFunction texture3D_00J20B(
     BuiltInId::texture3D_Sampler3D1_Float3,
     BuiltInName::texture3D,
     TExtension::UNDEFINED,
@@ -10758,7 +9973,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture3DProj_00J30B(
+constexpr const TFunction texture3DProj_00J30B(
     BuiltInId::texture3DProj_Sampler3D1_Float4,
     BuiltInName::texture3DProj,
     TExtension::UNDEFINED,
@@ -10767,7 +9982,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_shadow1D_00m20B(
+constexpr const TFunction shadow1D_00m20B(
     BuiltInId::shadow1D_Sampler1DShadow1_Float3,
     BuiltInName::shadow1D,
     TExtension::UNDEFINED,
@@ -10776,7 +9991,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_shadow1DProj_00m30B(
+constexpr const TFunction shadow1DProj_00m30B(
     BuiltInId::shadow1DProj_Sampler1DShadow1_Float4,
     BuiltInName::shadow1DProj,
     TExtension::UNDEFINED,
@@ -10785,7 +10000,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_shadow2D_00d20B(
+constexpr const TFunction shadow2D_00d20B(
     BuiltInId::shadow2D_Sampler2DShadow1_Float3,
     BuiltInName::shadow2D,
     TExtension::UNDEFINED,
@@ -10794,7 +10009,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_shadow2DProj_00d30B(
+constexpr const TFunction shadow2DProj_00d30B(
     BuiltInId::shadow2DProj_Sampler2DShadow1_Float4,
     BuiltInName::shadow2DProj,
     TExtension::UNDEFINED,
@@ -10803,7 +10018,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture2D_00M10B(
+constexpr const TFunction texture2D_00M10B(
     BuiltInId::texture2D_SamplerExternalOES1_Float2,
     BuiltInName::texture2D,
     TExtension::UNDEFINED,
@@ -10812,7 +10027,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture2DProj_00M20B(
+constexpr const TFunction texture2DProj_00M20B(
     BuiltInId::texture2DProj_SamplerExternalOES1_Float3,
     BuiltInName::texture2DProj,
     TExtension::UNDEFINED,
@@ -10821,7 +10036,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture2DProj_00M30B(
+constexpr const TFunction texture2DProj_00M30B(
     BuiltInId::texture2DProj_SamplerExternalOES1_Float4,
     BuiltInName::texture2DProj,
     TExtension::UNDEFINED,
@@ -10830,7 +10045,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture2DRect_00O10B(
+constexpr const TFunction texture2DRect_00O10B(
     BuiltInId::texture2DRect_Sampler2DRect1_Float2,
     BuiltInName::texture2DRect,
     TExtension::ARB_texture_rectangle,
@@ -10839,7 +10054,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture2DRectProj_00O20B(
+constexpr const TFunction texture2DRectProj_00O20B(
     BuiltInId::texture2DRectProj_Sampler2DRect1_Float3,
     BuiltInName::texture2DRectProj,
     TExtension::ARB_texture_rectangle,
@@ -10848,7 +10063,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture2DRectProj_00O30B(
+constexpr const TFunction texture2DRectProj_00O30B(
     BuiltInId::texture2DRectProj_Sampler2DRect1_Float4,
     BuiltInName::texture2DRectProj,
     TExtension::ARB_texture_rectangle,
@@ -10857,16 +10072,15 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture_00O10B(
-    BuiltInId::texture_Sampler2DRect1_Float2,
-    BuiltInName::texture,
-    TExtension::ARB_texture_rectangle,
-    BuiltInParameters::p00O10B70D00D,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_textureProj_00O20B(
+constexpr const TFunction texture_00O10B(BuiltInId::texture_Sampler2DRect1_Float2,
+                                         BuiltInName::texture,
+                                         TExtension::ARB_texture_rectangle,
+                                         BuiltInParameters::p00O10B70D00D,
+                                         2,
+                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction textureProj_00O20B(
     BuiltInId::textureProj_Sampler2DRect1_Float3,
     BuiltInName::textureProj,
     TExtension::ARB_texture_rectangle,
@@ -10875,7 +10089,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00O30B(
+constexpr const TFunction textureProj_00O30B(
     BuiltInId::textureProj_Sampler2DRect1_Float4,
     BuiltInName::textureProj,
     TExtension::ARB_texture_rectangle,
@@ -10884,7 +10098,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture2DGradEXT_00I10B10B10B(
+constexpr const TFunction texture2DGradEXT_00I10B10B10B(
     BuiltInId::texture2DGradEXT_Sampler2D1_Float2_Float2_Float2,
     BuiltInName::texture2DGradEXT,
     TExtension::EXT_shader_texture_lod,
@@ -10893,7 +10107,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture2DProjGradEXT_00I20B10B10B(
+constexpr const TFunction texture2DProjGradEXT_00I20B10B10B(
     BuiltInId::texture2DProjGradEXT_Sampler2D1_Float3_Float2_Float2,
     BuiltInName::texture2DProjGradEXT,
     TExtension::EXT_shader_texture_lod,
@@ -10902,7 +10116,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture2DProjGradEXT_00I30B10B10B(
+constexpr const TFunction texture2DProjGradEXT_00I30B10B10B(
     BuiltInId::texture2DProjGradEXT_Sampler2D1_Float4_Float2_Float2,
     BuiltInName::texture2DProjGradEXT,
     TExtension::EXT_shader_texture_lod,
@@ -10911,7 +10125,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureCubeGradEXT_00K20B20B20B(
+constexpr const TFunction textureCubeGradEXT_00K20B20B20B(
     BuiltInId::textureCubeGradEXT_SamplerCube1_Float3_Float3_Float3,
     BuiltInName::textureCubeGradEXT,
     TExtension::EXT_shader_texture_lod,
@@ -10920,7 +10134,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture2D_00I10B00B(
+constexpr const TFunction texture2D_00I10B00B(
     BuiltInId::texture2D_Sampler2D1_Float2_Float1,
     BuiltInName::texture2D,
     TExtension::UNDEFINED,
@@ -10929,7 +10143,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture2DProj_00I20B00B(
+constexpr const TFunction texture2DProj_00I20B00B(
     BuiltInId::texture2DProj_Sampler2D1_Float3_Float1,
     BuiltInName::texture2DProj,
     TExtension::UNDEFINED,
@@ -10938,7 +10152,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture2DProj_00I30B00B(
+constexpr const TFunction texture2DProj_00I30B00B(
     BuiltInId::texture2DProj_Sampler2D1_Float4_Float1,
     BuiltInName::texture2DProj,
     TExtension::UNDEFINED,
@@ -10947,7 +10161,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureCube_00K20B00B(
+constexpr const TFunction textureCube_00K20B00B(
     BuiltInId::textureCube_SamplerCube1_Float3_Float1,
     BuiltInName::textureCube,
     TExtension::UNDEFINED,
@@ -10956,7 +10170,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture3D_00J20B00B(
+constexpr const TFunction texture3D_00J20B00B(
     BuiltInId::texture3D_Sampler3D1_Float3_Float1,
     BuiltInName::texture3D,
     TExtension::UNDEFINED,
@@ -10965,7 +10179,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture3DProj_00J30B00B(
+constexpr const TFunction texture3DProj_00J30B00B(
     BuiltInId::texture3DProj_Sampler3D1_Float4_Float1,
     BuiltInName::texture3DProj,
     TExtension::UNDEFINED,
@@ -10974,7 +10188,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture3DLod_00J20B00B(
+constexpr const TFunction texture3DLod_00J20B00B(
     BuiltInId::texture3DLod_Sampler3D1_Float3_Float1,
     BuiltInName::texture3DLod,
     TExtension::UNDEFINED,
@@ -10983,7 +10197,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture3DProjLod_00J30B00B(
+constexpr const TFunction texture3DProjLod_00J30B00B(
     BuiltInId::texture3DProjLod_Sampler3D1_Float4_Float1,
     BuiltInName::texture3DProjLod,
     TExtension::UNDEFINED,
@@ -10992,7 +10206,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture1D_00g00B00B(
+constexpr const TFunction texture1D_00g00B00B(
     BuiltInId::texture1D_Sampler1D1_Float1_Float1,
     BuiltInName::texture1D,
     TExtension::UNDEFINED,
@@ -11001,7 +10215,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture1DProj_00g10B00B(
+constexpr const TFunction texture1DProj_00g10B00B(
     BuiltInId::texture1DProj_Sampler1D1_Float2_Float1,
     BuiltInName::texture1DProj,
     TExtension::UNDEFINED,
@@ -11010,7 +10224,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture1DProj_00g30B00B(
+constexpr const TFunction texture1DProj_00g30B00B(
     BuiltInId::texture1DProj_Sampler1D1_Float4_Float1,
     BuiltInName::texture1DProj,
     TExtension::UNDEFINED,
@@ -11019,7 +10233,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_shadow1D_00m20B00B(
+constexpr const TFunction shadow1D_00m20B00B(
     BuiltInId::shadow1D_Sampler1DShadow1_Float3_Float1,
     BuiltInName::shadow1D,
     TExtension::UNDEFINED,
@@ -11028,7 +10242,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_shadow1DProj_00m30B00B(
+constexpr const TFunction shadow1DProj_00m30B00B(
     BuiltInId::shadow1DProj_Sampler1DShadow1_Float4_Float1,
     BuiltInName::shadow1DProj,
     TExtension::UNDEFINED,
@@ -11037,7 +10251,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_shadow2D_00d20B00B(
+constexpr const TFunction shadow2D_00d20B00B(
     BuiltInId::shadow2D_Sampler2DShadow1_Float3_Float1,
     BuiltInName::shadow2D,
     TExtension::UNDEFINED,
@@ -11046,7 +10260,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_shadow2DProj_00d30B00B(
+constexpr const TFunction shadow2DProj_00d30B00B(
     BuiltInId::shadow2DProj_Sampler2DShadow1_Float4_Float1,
     BuiltInName::shadow2DProj,
     TExtension::UNDEFINED,
@@ -11055,115 +10269,103 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_dFdxExt_00B(
-    BuiltInId::dFdxExt_Float1,
-    BuiltInName::dFdxExt,
-    TExtension::OES_standard_derivatives,
-    BuiltInParameters::p00B00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpDFdx,
-    false);
-constexpr const TFunction function_dFdxExt_10B(
-    BuiltInId::dFdxExt_Float2,
-    BuiltInName::dFdxExt,
-    TExtension::OES_standard_derivatives,
-    BuiltInParameters::p10B_o_10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpDFdx,
-    false);
-constexpr const TFunction function_dFdxExt_20B(
-    BuiltInId::dFdxExt_Float3,
-    BuiltInName::dFdxExt,
-    TExtension::OES_standard_derivatives,
-    BuiltInParameters::p20B20B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpDFdx,
-    false);
-constexpr const TFunction function_dFdxExt_30B(
-    BuiltInId::dFdxExt_Float4,
-    BuiltInName::dFdxExt,
-    TExtension::OES_standard_derivatives,
-    BuiltInParameters::p30B30D,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpDFdx,
-    false);
-constexpr const TFunction function_dFdyExt_00B(
-    BuiltInId::dFdyExt_Float1,
-    BuiltInName::dFdyExt,
-    TExtension::OES_standard_derivatives,
-    BuiltInParameters::p00B00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpDFdy,
-    false);
-constexpr const TFunction function_dFdyExt_10B(
-    BuiltInId::dFdyExt_Float2,
-    BuiltInName::dFdyExt,
-    TExtension::OES_standard_derivatives,
-    BuiltInParameters::p10B_o_10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpDFdy,
-    false);
-constexpr const TFunction function_dFdyExt_20B(
-    BuiltInId::dFdyExt_Float3,
-    BuiltInName::dFdyExt,
-    TExtension::OES_standard_derivatives,
-    BuiltInParameters::p20B20B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpDFdy,
-    false);
-constexpr const TFunction function_dFdyExt_30B(
-    BuiltInId::dFdyExt_Float4,
-    BuiltInName::dFdyExt,
-    TExtension::OES_standard_derivatives,
-    BuiltInParameters::p30B30D,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpDFdy,
-    false);
-constexpr const TFunction function_fwidthExt_00B(
-    BuiltInId::fwidthExt_Float1,
-    BuiltInName::fwidthExt,
-    TExtension::OES_standard_derivatives,
-    BuiltInParameters::p00B00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpFwidth,
-    false);
-constexpr const TFunction function_fwidthExt_10B(
-    BuiltInId::fwidthExt_Float2,
-    BuiltInName::fwidthExt,
-    TExtension::OES_standard_derivatives,
-    BuiltInParameters::p10B_o_10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpFwidth,
-    false);
-constexpr const TFunction function_fwidthExt_20B(
-    BuiltInId::fwidthExt_Float3,
-    BuiltInName::fwidthExt,
-    TExtension::OES_standard_derivatives,
-    BuiltInParameters::p20B20B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpFwidth,
-    false);
-constexpr const TFunction function_fwidthExt_30B(
-    BuiltInId::fwidthExt_Float4,
-    BuiltInName::fwidthExt,
-    TExtension::OES_standard_derivatives,
-    BuiltInParameters::p30B30D,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpFwidth,
-    false);
-constexpr const TFunction function_texture2DLodEXT_00I10B00B(
+constexpr const TFunction dFdxExt_00B(BuiltInId::dFdxExt_Float1,
+                                      BuiltInName::dFdxExt,
+                                      TExtension::OES_standard_derivatives,
+                                      BuiltInParameters::p00B00B30B,
+                                      1,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                      EOpDFdx,
+                                      false);
+constexpr const TFunction dFdxExt_10B(BuiltInId::dFdxExt_Float2,
+                                      BuiltInName::dFdxExt,
+                                      TExtension::OES_standard_derivatives,
+                                      BuiltInParameters::p10B_o_10B,
+                                      1,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                      EOpDFdx,
+                                      false);
+constexpr const TFunction dFdxExt_20B(BuiltInId::dFdxExt_Float3,
+                                      BuiltInName::dFdxExt,
+                                      TExtension::OES_standard_derivatives,
+                                      BuiltInParameters::p20B20B00B,
+                                      1,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                      EOpDFdx,
+                                      false);
+constexpr const TFunction dFdxExt_30B(BuiltInId::dFdxExt_Float4,
+                                      BuiltInName::dFdxExt,
+                                      TExtension::OES_standard_derivatives,
+                                      BuiltInParameters::p30B30D,
+                                      1,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                      EOpDFdx,
+                                      false);
+constexpr const TFunction dFdyExt_00B(BuiltInId::dFdyExt_Float1,
+                                      BuiltInName::dFdyExt,
+                                      TExtension::OES_standard_derivatives,
+                                      BuiltInParameters::p00B00B30B,
+                                      1,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                      EOpDFdy,
+                                      false);
+constexpr const TFunction dFdyExt_10B(BuiltInId::dFdyExt_Float2,
+                                      BuiltInName::dFdyExt,
+                                      TExtension::OES_standard_derivatives,
+                                      BuiltInParameters::p10B_o_10B,
+                                      1,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                      EOpDFdy,
+                                      false);
+constexpr const TFunction dFdyExt_20B(BuiltInId::dFdyExt_Float3,
+                                      BuiltInName::dFdyExt,
+                                      TExtension::OES_standard_derivatives,
+                                      BuiltInParameters::p20B20B00B,
+                                      1,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                      EOpDFdy,
+                                      false);
+constexpr const TFunction dFdyExt_30B(BuiltInId::dFdyExt_Float4,
+                                      BuiltInName::dFdyExt,
+                                      TExtension::OES_standard_derivatives,
+                                      BuiltInParameters::p30B30D,
+                                      1,
+                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                      EOpDFdy,
+                                      false);
+constexpr const TFunction fwidthExt_00B(BuiltInId::fwidthExt_Float1,
+                                        BuiltInName::fwidthExt,
+                                        TExtension::OES_standard_derivatives,
+                                        BuiltInParameters::p00B00B30B,
+                                        1,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                        EOpFwidth,
+                                        false);
+constexpr const TFunction fwidthExt_10B(BuiltInId::fwidthExt_Float2,
+                                        BuiltInName::fwidthExt,
+                                        TExtension::OES_standard_derivatives,
+                                        BuiltInParameters::p10B_o_10B,
+                                        1,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                        EOpFwidth,
+                                        false);
+constexpr const TFunction fwidthExt_20B(BuiltInId::fwidthExt_Float3,
+                                        BuiltInName::fwidthExt,
+                                        TExtension::OES_standard_derivatives,
+                                        BuiltInParameters::p20B20B00B,
+                                        1,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                        EOpFwidth,
+                                        false);
+constexpr const TFunction fwidthExt_30B(BuiltInId::fwidthExt_Float4,
+                                        BuiltInName::fwidthExt,
+                                        TExtension::OES_standard_derivatives,
+                                        BuiltInParameters::p30B30D,
+                                        1,
+                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                        EOpFwidth,
+                                        false);
+constexpr const TFunction texture2DLodEXT_00I10B00B(
     BuiltInId::texture2DLodEXT_Sampler2D1_Float2_Float1,
     BuiltInName::texture2DLodEXT,
     TExtension::EXT_shader_texture_lod,
@@ -11172,7 +10374,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture2DProjLodEXT_00I20B00B(
+constexpr const TFunction texture2DProjLodEXT_00I20B00B(
     BuiltInId::texture2DProjLodEXT_Sampler2D1_Float3_Float1,
     BuiltInName::texture2DProjLodEXT,
     TExtension::EXT_shader_texture_lod,
@@ -11181,7 +10383,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture2DProjLodEXT_00I30B00B(
+constexpr const TFunction texture2DProjLodEXT_00I30B00B(
     BuiltInId::texture2DProjLodEXT_Sampler2D1_Float4_Float1,
     BuiltInName::texture2DProjLodEXT,
     TExtension::EXT_shader_texture_lod,
@@ -11190,7 +10392,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureCubeLodEXT_00K20B00B(
+constexpr const TFunction textureCubeLodEXT_00K20B00B(
     BuiltInId::textureCubeLodEXT_SamplerCube1_Float3_Float1,
     BuiltInName::textureCubeLodEXT,
     TExtension::EXT_shader_texture_lod,
@@ -11199,7 +10401,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture2DLod_00I10B00B(
+constexpr const TFunction texture2DLod_00I10B00B(
     BuiltInId::texture2DLod_Sampler2D1_Float2_Float1,
     BuiltInName::texture2DLod,
     TExtension::UNDEFINED,
@@ -11208,7 +10410,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture2DProjLod_00I20B00B(
+constexpr const TFunction texture2DProjLod_00I20B00B(
     BuiltInId::texture2DProjLod_Sampler2D1_Float3_Float1,
     BuiltInName::texture2DProjLod,
     TExtension::UNDEFINED,
@@ -11217,7 +10419,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture2DProjLod_00I30B00B(
+constexpr const TFunction texture2DProjLod_00I30B00B(
     BuiltInId::texture2DProjLod_Sampler2D1_Float4_Float1,
     BuiltInName::texture2DProjLod,
     TExtension::UNDEFINED,
@@ -11226,7 +10428,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureCubeLod_00K20B00B(
+constexpr const TFunction textureCubeLod_00K20B00B(
     BuiltInId::textureCubeLod_SamplerCube1_Float3_Float1,
     BuiltInName::textureCubeLod,
     TExtension::UNDEFINED,
@@ -11235,7 +10437,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture1DLod_00g00B00B(
+constexpr const TFunction texture1DLod_00g00B00B(
     BuiltInId::texture1DLod_Sampler1D1_Float1_Float1,
     BuiltInName::texture1DLod,
     TExtension::UNDEFINED,
@@ -11244,7 +10446,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture1DProjLod_00g10B00B(
+constexpr const TFunction texture1DProjLod_00g10B00B(
     BuiltInId::texture1DProjLod_Sampler1D1_Float2_Float1,
     BuiltInName::texture1DProjLod,
     TExtension::UNDEFINED,
@@ -11253,7 +10455,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture1DProjLod_00g30B00B(
+constexpr const TFunction texture1DProjLod_00g30B00B(
     BuiltInId::texture1DProjLod_Sampler1D1_Float4_Float1,
     BuiltInName::texture1DProjLod,
     TExtension::UNDEFINED,
@@ -11262,7 +10464,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_shadow1DLod_00m20B00B(
+constexpr const TFunction shadow1DLod_00m20B00B(
     BuiltInId::shadow1DLod_Sampler1DShadow1_Float3_Float1,
     BuiltInName::shadow1DLod,
     TExtension::UNDEFINED,
@@ -11271,7 +10473,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_shadow1DProjLod_00m30B00B(
+constexpr const TFunction shadow1DProjLod_00m30B00B(
     BuiltInId::shadow1DProjLod_Sampler1DShadow1_Float4_Float1,
     BuiltInName::shadow1DProjLod,
     TExtension::UNDEFINED,
@@ -11280,7 +10482,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_shadow2DLod_00d20B00B(
+constexpr const TFunction shadow2DLod_00d20B00B(
     BuiltInId::shadow2DLod_Sampler2DShadow1_Float3_Float1,
     BuiltInName::shadow2DLod,
     TExtension::UNDEFINED,
@@ -11289,7 +10491,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_shadow2DProjLod_00d30B00B(
+constexpr const TFunction shadow2DProjLod_00d30B00B(
     BuiltInId::shadow2DProjLod_Sampler2DShadow1_Float4_Float1,
     BuiltInName::shadow2DProjLod,
     TExtension::UNDEFINED,
@@ -11298,241 +10500,215 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture_00I10B(
-    BuiltInId::texture_Sampler2D1_Float2,
-    BuiltInName::texture,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00I10B00D,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_texture_00R10B(
-    BuiltInId::texture_ISampler2D1_Float2,
-    BuiltInName::texture,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00R10B70D00D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_texture_00X10B(
-    BuiltInId::texture_USampler2D1_Float2,
-    BuiltInName::texture,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00X10B70D00D,
-    2,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_texture_00J20B(
-    BuiltInId::texture_Sampler3D1_Float3,
-    BuiltInName::texture,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00J20B00B20D,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_texture_00S20B(
-    BuiltInId::texture_ISampler3D1_Float3,
-    BuiltInName::texture,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00S20B20B20B20D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_texture_00Y20B(
-    BuiltInId::texture_USampler3D1_Float3,
-    BuiltInName::texture,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00Y20B20B20B20D,
-    2,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_texture_00K20B(
-    BuiltInId::texture_SamplerCube1_Float3,
-    BuiltInName::texture,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00K20B20B20B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_texture_00T20B(
-    BuiltInId::texture_ISamplerCube1_Float3,
-    BuiltInName::texture,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00T20B00D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_texture_00Z20B(
-    BuiltInId::texture_USamplerCube1_Float3,
-    BuiltInName::texture,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00Z20B00B,
-    2,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_texture_00L20B(
-    BuiltInId::texture_Sampler2DArray1_Float3,
-    BuiltInName::texture,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00L20B10D00D,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_texture_00U20B(
-    BuiltInId::texture_ISampler2DArray1_Float3,
-    BuiltInName::texture,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00U20B10D00D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_texture_00a20B(
-    BuiltInId::texture_USampler2DArray1_Float3,
-    BuiltInName::texture,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00a20B10B10B10D,
-    2,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_texture_00d20B(
-    BuiltInId::texture_Sampler2DShadow1_Float3,
-    BuiltInName::texture,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00d20B00B10D,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_texture_00e30B(
-    BuiltInId::texture_SamplerCubeShadow1_Float4,
-    BuiltInName::texture,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00e30B20B20B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_texture_00f30B(
-    BuiltInId::texture_Sampler2DArrayShadow1_Float4,
-    BuiltInName::texture,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00f30B10B10B10D,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_texture_00g00B(
-    BuiltInId::texture_Sampler1D1_Float1,
-    BuiltInName::texture,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00g00B00B00B00D,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_texture_00o00B(
-    BuiltInId::texture_ISampler1D1_Float1,
-    BuiltInName::texture,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00o00B00B00D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_texture_00t00B(
-    BuiltInId::texture_USampler1D1_Float1,
-    BuiltInName::texture,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00t00B00B00D,
-    2,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_texture_00m20B(
-    BuiltInId::texture_Sampler1DShadow1_Float3,
-    BuiltInName::texture,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00m20B00B00D,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_texture_00h20B(
-    BuiltInId::texture_Sampler1DArray1_Float3,
-    BuiltInName::texture,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00h20B00B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_texture_00p20B(
-    BuiltInId::texture_ISampler1DArray1_Float3,
-    BuiltInName::texture,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00p20B00B,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_texture_00u20B(
-    BuiltInId::texture_USampler1DArray1_Float3,
-    BuiltInName::texture,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00u20B00B,
-    2,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_texture_00i20B(
-    BuiltInId::texture_Sampler1DArrayShadow1_Float3,
-    BuiltInName::texture,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00i20B00B00D,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_texture_00q10B(
-    BuiltInId::texture_ISampler2DRect1_Float2,
-    BuiltInName::texture,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00q10B10D00D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_texture_00v10B(
-    BuiltInId::texture_USampler2DRect1_Float2,
-    BuiltInName::texture,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00v10B70D00D,
-    2,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_texture_00n20B(
-    BuiltInId::texture_Sampler2DRectShadow1_Float3,
-    BuiltInName::texture,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00n20B10B10B10D,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_texture_00l30B00B(
+constexpr const TFunction texture_00I10B(BuiltInId::texture_Sampler2D1_Float2,
+                                         BuiltInName::texture,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p00I10B00D,
+                                         2,
+                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction texture_00R10B(BuiltInId::texture_ISampler2D1_Float2,
+                                         BuiltInName::texture,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p00R10B70D00D,
+                                         2,
+                                         StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction texture_00X10B(BuiltInId::texture_USampler2D1_Float2,
+                                         BuiltInName::texture,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p00X10B70D00D,
+                                         2,
+                                         StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction texture_00J20B(BuiltInId::texture_Sampler3D1_Float3,
+                                         BuiltInName::texture,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p00J20B00B20D,
+                                         2,
+                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction texture_00S20B(BuiltInId::texture_ISampler3D1_Float3,
+                                         BuiltInName::texture,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p00S20B20B20B20D,
+                                         2,
+                                         StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction texture_00Y20B(BuiltInId::texture_USampler3D1_Float3,
+                                         BuiltInName::texture,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p00Y20B20B20B20D,
+                                         2,
+                                         StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction texture_00K20B(BuiltInId::texture_SamplerCube1_Float3,
+                                         BuiltInName::texture,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p00K20B20B20B,
+                                         2,
+                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction texture_00T20B(BuiltInId::texture_ISamplerCube1_Float3,
+                                         BuiltInName::texture,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p00T20B00D,
+                                         2,
+                                         StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction texture_00Z20B(BuiltInId::texture_USamplerCube1_Float3,
+                                         BuiltInName::texture,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p00Z20B00B,
+                                         2,
+                                         StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction texture_00L20B(BuiltInId::texture_Sampler2DArray1_Float3,
+                                         BuiltInName::texture,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p00L20B10D00D,
+                                         2,
+                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction texture_00U20B(BuiltInId::texture_ISampler2DArray1_Float3,
+                                         BuiltInName::texture,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p00U20B10D00D,
+                                         2,
+                                         StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction texture_00a20B(BuiltInId::texture_USampler2DArray1_Float3,
+                                         BuiltInName::texture,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p00a20B10B10B10D,
+                                         2,
+                                         StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction texture_00d20B(BuiltInId::texture_Sampler2DShadow1_Float3,
+                                         BuiltInName::texture,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p00d20B00B10D,
+                                         2,
+                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction texture_00e30B(BuiltInId::texture_SamplerCubeShadow1_Float4,
+                                         BuiltInName::texture,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p00e30B20B20B,
+                                         2,
+                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction texture_00f30B(BuiltInId::texture_Sampler2DArrayShadow1_Float4,
+                                         BuiltInName::texture,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p00f30B10B10B10D,
+                                         2,
+                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction texture_00g00B(BuiltInId::texture_Sampler1D1_Float1,
+                                         BuiltInName::texture,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p00g00B00B00B00D,
+                                         2,
+                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction texture_00o00B(BuiltInId::texture_ISampler1D1_Float1,
+                                         BuiltInName::texture,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p00o00B00B00D,
+                                         2,
+                                         StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction texture_00t00B(BuiltInId::texture_USampler1D1_Float1,
+                                         BuiltInName::texture,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p00t00B00B00D,
+                                         2,
+                                         StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction texture_00m20B(BuiltInId::texture_Sampler1DShadow1_Float3,
+                                         BuiltInName::texture,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p00m20B00B00D,
+                                         2,
+                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction texture_00h20B(BuiltInId::texture_Sampler1DArray1_Float3,
+                                         BuiltInName::texture,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p00h20B00B,
+                                         2,
+                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction texture_00p20B(BuiltInId::texture_ISampler1DArray1_Float3,
+                                         BuiltInName::texture,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p00p20B00B,
+                                         2,
+                                         StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction texture_00u20B(BuiltInId::texture_USampler1DArray1_Float3,
+                                         BuiltInName::texture,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p00u20B00B,
+                                         2,
+                                         StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction texture_00i20B(BuiltInId::texture_Sampler1DArrayShadow1_Float3,
+                                         BuiltInName::texture,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p00i20B00B00D,
+                                         2,
+                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction texture_00q10B(BuiltInId::texture_ISampler2DRect1_Float2,
+                                         BuiltInName::texture,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p00q10B10D00D,
+                                         2,
+                                         StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction texture_00v10B(BuiltInId::texture_USampler2DRect1_Float2,
+                                         BuiltInName::texture,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p00v10B70D00D,
+                                         2,
+                                         StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction texture_00n20B(BuiltInId::texture_Sampler2DRectShadow1_Float3,
+                                         BuiltInName::texture,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p00n20B10B10B10D,
+                                         2,
+                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction texture_00l30B00B(
     BuiltInId::texture_SamplerCubeArrayShadow1_Float4_Float1,
     BuiltInName::texture,
     TExtension::UNDEFINED,
@@ -11541,7 +10717,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00I20B(
+constexpr const TFunction textureProj_00I20B(
     BuiltInId::textureProj_Sampler2D1_Float3,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -11550,7 +10726,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00R20B(
+constexpr const TFunction textureProj_00R20B(
     BuiltInId::textureProj_ISampler2D1_Float3,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -11559,7 +10735,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00X20B(
+constexpr const TFunction textureProj_00X20B(
     BuiltInId::textureProj_USampler2D1_Float3,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -11568,7 +10744,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00I30B(
+constexpr const TFunction textureProj_00I30B(
     BuiltInId::textureProj_Sampler2D1_Float4,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -11577,7 +10753,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00R30B(
+constexpr const TFunction textureProj_00R30B(
     BuiltInId::textureProj_ISampler2D1_Float4,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -11586,7 +10762,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00X30B(
+constexpr const TFunction textureProj_00X30B(
     BuiltInId::textureProj_USampler2D1_Float4,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -11595,7 +10771,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00J30B(
+constexpr const TFunction textureProj_00J30B(
     BuiltInId::textureProj_Sampler3D1_Float4,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -11604,7 +10780,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00S30B(
+constexpr const TFunction textureProj_00S30B(
     BuiltInId::textureProj_ISampler3D1_Float4,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -11613,7 +10789,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00Y30B(
+constexpr const TFunction textureProj_00Y30B(
     BuiltInId::textureProj_USampler3D1_Float4,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -11622,7 +10798,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00d30B(
+constexpr const TFunction textureProj_00d30B(
     BuiltInId::textureProj_Sampler2DShadow1_Float4,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -11631,7 +10807,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00g10B(
+constexpr const TFunction textureProj_00g10B(
     BuiltInId::textureProj_Sampler1D1_Float2,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -11640,7 +10816,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00o10B(
+constexpr const TFunction textureProj_00o10B(
     BuiltInId::textureProj_ISampler1D1_Float2,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -11649,7 +10825,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00t10B(
+constexpr const TFunction textureProj_00t10B(
     BuiltInId::textureProj_USampler1D1_Float2,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -11658,7 +10834,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00g30B(
+constexpr const TFunction textureProj_00g30B(
     BuiltInId::textureProj_Sampler1D1_Float4,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -11667,7 +10843,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00o30B(
+constexpr const TFunction textureProj_00o30B(
     BuiltInId::textureProj_ISampler1D1_Float4,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -11676,7 +10852,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00t30B(
+constexpr const TFunction textureProj_00t30B(
     BuiltInId::textureProj_USampler1D1_Float4,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -11685,7 +10861,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00m30B(
+constexpr const TFunction textureProj_00m30B(
     BuiltInId::textureProj_Sampler1DShadow1_Float4,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -11694,7 +10870,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00q20B(
+constexpr const TFunction textureProj_00q20B(
     BuiltInId::textureProj_ISampler2DRect1_Float3,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -11703,7 +10879,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00v20B(
+constexpr const TFunction textureProj_00v20B(
     BuiltInId::textureProj_USampler2DRect1_Float3,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -11712,7 +10888,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00q30B(
+constexpr const TFunction textureProj_00q30B(
     BuiltInId::textureProj_ISampler2DRect1_Float4,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -11721,7 +10897,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00v30B(
+constexpr const TFunction textureProj_00v30B(
     BuiltInId::textureProj_USampler2DRect1_Float4,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -11730,7 +10906,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00n30B(
+constexpr const TFunction textureProj_00n30B(
     BuiltInId::textureProj_Sampler2DRectShadow1_Float4,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -11739,7 +10915,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLod_00I10B00B(
+constexpr const TFunction textureLod_00I10B00B(
     BuiltInId::textureLod_Sampler2D1_Float2_Float1,
     BuiltInName::textureLod,
     TExtension::UNDEFINED,
@@ -11748,7 +10924,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLod_00R10B00B(
+constexpr const TFunction textureLod_00R10B00B(
     BuiltInId::textureLod_ISampler2D1_Float2_Float1,
     BuiltInName::textureLod,
     TExtension::UNDEFINED,
@@ -11757,7 +10933,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLod_00X10B00B(
+constexpr const TFunction textureLod_00X10B00B(
     BuiltInId::textureLod_USampler2D1_Float2_Float1,
     BuiltInName::textureLod,
     TExtension::UNDEFINED,
@@ -11766,7 +10942,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLod_00J20B00B(
+constexpr const TFunction textureLod_00J20B00B(
     BuiltInId::textureLod_Sampler3D1_Float3_Float1,
     BuiltInName::textureLod,
     TExtension::UNDEFINED,
@@ -11775,7 +10951,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLod_00S20B00B(
+constexpr const TFunction textureLod_00S20B00B(
     BuiltInId::textureLod_ISampler3D1_Float3_Float1,
     BuiltInName::textureLod,
     TExtension::UNDEFINED,
@@ -11784,7 +10960,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLod_00Y20B00B(
+constexpr const TFunction textureLod_00Y20B00B(
     BuiltInId::textureLod_USampler3D1_Float3_Float1,
     BuiltInName::textureLod,
     TExtension::UNDEFINED,
@@ -11793,7 +10969,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLod_00K20B00B(
+constexpr const TFunction textureLod_00K20B00B(
     BuiltInId::textureLod_SamplerCube1_Float3_Float1,
     BuiltInName::textureLod,
     TExtension::UNDEFINED,
@@ -11802,7 +10978,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLod_00T20B00B(
+constexpr const TFunction textureLod_00T20B00B(
     BuiltInId::textureLod_ISamplerCube1_Float3_Float1,
     BuiltInName::textureLod,
     TExtension::UNDEFINED,
@@ -11811,7 +10987,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLod_00Z20B00B(
+constexpr const TFunction textureLod_00Z20B00B(
     BuiltInId::textureLod_USamplerCube1_Float3_Float1,
     BuiltInName::textureLod,
     TExtension::UNDEFINED,
@@ -11820,7 +10996,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLod_00L20B00B(
+constexpr const TFunction textureLod_00L20B00B(
     BuiltInId::textureLod_Sampler2DArray1_Float3_Float1,
     BuiltInName::textureLod,
     TExtension::UNDEFINED,
@@ -11829,7 +11005,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLod_00U20B00B(
+constexpr const TFunction textureLod_00U20B00B(
     BuiltInId::textureLod_ISampler2DArray1_Float3_Float1,
     BuiltInName::textureLod,
     TExtension::UNDEFINED,
@@ -11838,7 +11014,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLod_00a20B00B(
+constexpr const TFunction textureLod_00a20B00B(
     BuiltInId::textureLod_USampler2DArray1_Float3_Float1,
     BuiltInName::textureLod,
     TExtension::UNDEFINED,
@@ -11847,7 +11023,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLod_00d20B00B(
+constexpr const TFunction textureLod_00d20B00B(
     BuiltInId::textureLod_Sampler2DShadow1_Float3_Float1,
     BuiltInName::textureLod,
     TExtension::UNDEFINED,
@@ -11856,7 +11032,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLod_00g00B00B(
+constexpr const TFunction textureLod_00g00B00B(
     BuiltInId::textureLod_Sampler1D1_Float1_Float1,
     BuiltInName::textureLod,
     TExtension::UNDEFINED,
@@ -11865,7 +11041,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLod_00o00B00B(
+constexpr const TFunction textureLod_00o00B00B(
     BuiltInId::textureLod_ISampler1D1_Float1_Float1,
     BuiltInName::textureLod,
     TExtension::UNDEFINED,
@@ -11874,7 +11050,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLod_00t00B00B(
+constexpr const TFunction textureLod_00t00B00B(
     BuiltInId::textureLod_USampler1D1_Float1_Float1,
     BuiltInName::textureLod,
     TExtension::UNDEFINED,
@@ -11883,7 +11059,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLod_00m20B00B(
+constexpr const TFunction textureLod_00m20B00B(
     BuiltInId::textureLod_Sampler1DShadow1_Float3_Float1,
     BuiltInName::textureLod,
     TExtension::UNDEFINED,
@@ -11892,7 +11068,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLod_00h10B00B(
+constexpr const TFunction textureLod_00h10B00B(
     BuiltInId::textureLod_Sampler1DArray1_Float2_Float1,
     BuiltInName::textureLod,
     TExtension::UNDEFINED,
@@ -11901,7 +11077,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLod_00p10B00B(
+constexpr const TFunction textureLod_00p10B00B(
     BuiltInId::textureLod_ISampler1DArray1_Float2_Float1,
     BuiltInName::textureLod,
     TExtension::UNDEFINED,
@@ -11910,7 +11086,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLod_00u10B00B(
+constexpr const TFunction textureLod_00u10B00B(
     BuiltInId::textureLod_USampler1DArray1_Float2_Float1,
     BuiltInName::textureLod,
     TExtension::UNDEFINED,
@@ -11919,7 +11095,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLod_00i20B00B(
+constexpr const TFunction textureLod_00i20B00B(
     BuiltInId::textureLod_Sampler1DArrayShadow1_Float3_Float1,
     BuiltInName::textureLod,
     TExtension::UNDEFINED,
@@ -11928,7 +11104,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLod_00k30B00B(
+constexpr const TFunction textureLod_00k30B00B(
     BuiltInId::textureLod_SamplerCubeArray1_Float4_Float1,
     BuiltInName::textureLod,
     TExtension::UNDEFINED,
@@ -11937,7 +11113,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLod_00s30B00B(
+constexpr const TFunction textureLod_00s30B00B(
     BuiltInId::textureLod_ISamplerCubeArray1_Float4_Float1,
     BuiltInName::textureLod,
     TExtension::UNDEFINED,
@@ -11946,7 +11122,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLod_00x30B00B(
+constexpr const TFunction textureLod_00x30B00B(
     BuiltInId::textureLod_USamplerCubeArray1_Float4_Float1,
     BuiltInName::textureLod,
     TExtension::UNDEFINED,
@@ -11955,7 +11131,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSize_00I00D(
+constexpr const TFunction textureSize_00I00D(
     BuiltInId::textureSize_Sampler2D1_Int1,
     BuiltInName::textureSize,
     TExtension::UNDEFINED,
@@ -11964,7 +11140,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSize_00R00D(
+constexpr const TFunction textureSize_00R00D(
     BuiltInId::textureSize_ISampler2D1_Int1,
     BuiltInName::textureSize,
     TExtension::UNDEFINED,
@@ -11973,7 +11149,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSize_00X00D(
+constexpr const TFunction textureSize_00X00D(
     BuiltInId::textureSize_USampler2D1_Int1,
     BuiltInName::textureSize,
     TExtension::UNDEFINED,
@@ -11982,7 +11158,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSize_00J00D(
+constexpr const TFunction textureSize_00J00D(
     BuiltInId::textureSize_Sampler3D1_Int1,
     BuiltInName::textureSize,
     TExtension::UNDEFINED,
@@ -11991,7 +11167,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSize_00S00D(
+constexpr const TFunction textureSize_00S00D(
     BuiltInId::textureSize_ISampler3D1_Int1,
     BuiltInName::textureSize,
     TExtension::UNDEFINED,
@@ -12000,7 +11176,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSize_00Y00D(
+constexpr const TFunction textureSize_00Y00D(
     BuiltInId::textureSize_USampler3D1_Int1,
     BuiltInName::textureSize,
     TExtension::UNDEFINED,
@@ -12009,7 +11185,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSize_00K00D(
+constexpr const TFunction textureSize_00K00D(
     BuiltInId::textureSize_SamplerCube1_Int1,
     BuiltInName::textureSize,
     TExtension::UNDEFINED,
@@ -12018,7 +11194,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSize_00T00D(
+constexpr const TFunction textureSize_00T00D(
     BuiltInId::textureSize_ISamplerCube1_Int1,
     BuiltInName::textureSize,
     TExtension::UNDEFINED,
@@ -12027,7 +11203,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSize_00Z00D(
+constexpr const TFunction textureSize_00Z00D(
     BuiltInId::textureSize_USamplerCube1_Int1,
     BuiltInName::textureSize,
     TExtension::UNDEFINED,
@@ -12036,7 +11212,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSize_00L00D(
+constexpr const TFunction textureSize_00L00D(
     BuiltInId::textureSize_Sampler2DArray1_Int1,
     BuiltInName::textureSize,
     TExtension::UNDEFINED,
@@ -12045,7 +11221,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSize_00U00D(
+constexpr const TFunction textureSize_00U00D(
     BuiltInId::textureSize_ISampler2DArray1_Int1,
     BuiltInName::textureSize,
     TExtension::UNDEFINED,
@@ -12054,7 +11230,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSize_00a00D(
+constexpr const TFunction textureSize_00a00D(
     BuiltInId::textureSize_USampler2DArray1_Int1,
     BuiltInName::textureSize,
     TExtension::UNDEFINED,
@@ -12063,7 +11239,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSize_00d00D(
+constexpr const TFunction textureSize_00d00D(
     BuiltInId::textureSize_Sampler2DShadow1_Int1,
     BuiltInName::textureSize,
     TExtension::UNDEFINED,
@@ -12072,7 +11248,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSize_00e00D(
+constexpr const TFunction textureSize_00e00D(
     BuiltInId::textureSize_SamplerCubeShadow1_Int1,
     BuiltInName::textureSize,
     TExtension::UNDEFINED,
@@ -12081,7 +11257,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSize_00f00D(
+constexpr const TFunction textureSize_00f00D(
     BuiltInId::textureSize_Sampler2DArrayShadow1_Int1,
     BuiltInName::textureSize,
     TExtension::UNDEFINED,
@@ -12090,7 +11266,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSize_00g00D(
+constexpr const TFunction textureSize_00g00D(
     BuiltInId::textureSize_Sampler1D1_Int1,
     BuiltInName::textureSize,
     TExtension::UNDEFINED,
@@ -12099,7 +11275,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSize_00o00D(
+constexpr const TFunction textureSize_00o00D(
     BuiltInId::textureSize_ISampler1D1_Int1,
     BuiltInName::textureSize,
     TExtension::UNDEFINED,
@@ -12108,7 +11284,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSize_00t00D(
+constexpr const TFunction textureSize_00t00D(
     BuiltInId::textureSize_USampler1D1_Int1,
     BuiltInName::textureSize,
     TExtension::UNDEFINED,
@@ -12117,7 +11293,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSize_00m00D(
+constexpr const TFunction textureSize_00m00D(
     BuiltInId::textureSize_Sampler1DShadow1_Int1,
     BuiltInName::textureSize,
     TExtension::UNDEFINED,
@@ -12126,7 +11302,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSize_00k00D(
+constexpr const TFunction textureSize_00k00D(
     BuiltInId::textureSize_SamplerCubeArray1_Int1,
     BuiltInName::textureSize,
     TExtension::UNDEFINED,
@@ -12135,7 +11311,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSize_00s00D(
+constexpr const TFunction textureSize_00s00D(
     BuiltInId::textureSize_ISamplerCubeArray1_Int1,
     BuiltInName::textureSize,
     TExtension::UNDEFINED,
@@ -12144,7 +11320,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSize_00x00D(
+constexpr const TFunction textureSize_00x00D(
     BuiltInId::textureSize_USamplerCubeArray1_Int1,
     BuiltInName::textureSize,
     TExtension::UNDEFINED,
@@ -12153,7 +11329,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSize_00l00D(
+constexpr const TFunction textureSize_00l00D(
     BuiltInId::textureSize_SamplerCubeArrayShadow1_Int1,
     BuiltInName::textureSize,
     TExtension::UNDEFINED,
@@ -12162,43 +11338,39 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSize_00O(
-    BuiltInId::textureSize_Sampler2DRect1,
-    BuiltInName::textureSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00O20B00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_textureSize_00q(
-    BuiltInId::textureSize_ISampler2DRect1,
-    BuiltInName::textureSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00q30B10D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_textureSize_00v(
-    BuiltInId::textureSize_USampler2DRect1,
-    BuiltInName::textureSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00v20B00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_textureSize_00n(
-    BuiltInId::textureSize_Sampler2DRectShadow1,
-    BuiltInName::textureSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00n10B00B70D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_textureSize_00h00D(
+constexpr const TFunction textureSize_00O(BuiltInId::textureSize_Sampler2DRect1,
+                                          BuiltInName::textureSize,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p00O20B00D,
+                                          1,
+                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                          EOpCallBuiltInFunction,
+                                          false);
+constexpr const TFunction textureSize_00q(BuiltInId::textureSize_ISampler2DRect1,
+                                          BuiltInName::textureSize,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p00q30B10D,
+                                          1,
+                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                          EOpCallBuiltInFunction,
+                                          false);
+constexpr const TFunction textureSize_00v(BuiltInId::textureSize_USampler2DRect1,
+                                          BuiltInName::textureSize,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p00v20B00D,
+                                          1,
+                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                          EOpCallBuiltInFunction,
+                                          false);
+constexpr const TFunction textureSize_00n(BuiltInId::textureSize_Sampler2DRectShadow1,
+                                          BuiltInName::textureSize,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p00n10B00B70D,
+                                          1,
+                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                          EOpCallBuiltInFunction,
+                                          false);
+constexpr const TFunction textureSize_00h00D(
     BuiltInId::textureSize_Sampler1DArray1_Int1,
     BuiltInName::textureSize,
     TExtension::UNDEFINED,
@@ -12207,7 +11379,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSize_00p00D(
+constexpr const TFunction textureSize_00p00D(
     BuiltInId::textureSize_ISampler1DArray1_Int1,
     BuiltInName::textureSize,
     TExtension::UNDEFINED,
@@ -12216,7 +11388,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSize_00u00D(
+constexpr const TFunction textureSize_00u00D(
     BuiltInId::textureSize_USampler1DArray1_Int1,
     BuiltInName::textureSize,
     TExtension::UNDEFINED,
@@ -12225,7 +11397,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSize_00i00D(
+constexpr const TFunction textureSize_00i00D(
     BuiltInId::textureSize_Sampler1DArrayShadow1_Int1,
     BuiltInName::textureSize,
     TExtension::UNDEFINED,
@@ -12234,34 +11406,31 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSize_00j(
-    BuiltInId::textureSize_SamplerBuffer1,
-    BuiltInName::textureSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00j00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_textureSize_00r(
-    BuiltInId::textureSize_ISamplerBuffer1,
-    BuiltInName::textureSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00r00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_textureSize_00w(
-    BuiltInId::textureSize_USamplerBuffer1,
-    BuiltInName::textureSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00w00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_textureProjLod_00I20B00B(
+constexpr const TFunction textureSize_00j(BuiltInId::textureSize_SamplerBuffer1,
+                                          BuiltInName::textureSize,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p00j00D,
+                                          1,
+                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                          EOpCallBuiltInFunction,
+                                          false);
+constexpr const TFunction textureSize_00r(BuiltInId::textureSize_ISamplerBuffer1,
+                                          BuiltInName::textureSize,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p00r00D,
+                                          1,
+                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                          EOpCallBuiltInFunction,
+                                          false);
+constexpr const TFunction textureSize_00w(BuiltInId::textureSize_USamplerBuffer1,
+                                          BuiltInName::textureSize,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p00w00D,
+                                          1,
+                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                          EOpCallBuiltInFunction,
+                                          false);
+constexpr const TFunction textureProjLod_00I20B00B(
     BuiltInId::textureProjLod_Sampler2D1_Float3_Float1,
     BuiltInName::textureProjLod,
     TExtension::UNDEFINED,
@@ -12270,7 +11439,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLod_00R20B00B(
+constexpr const TFunction textureProjLod_00R20B00B(
     BuiltInId::textureProjLod_ISampler2D1_Float3_Float1,
     BuiltInName::textureProjLod,
     TExtension::UNDEFINED,
@@ -12279,7 +11448,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLod_00X20B00B(
+constexpr const TFunction textureProjLod_00X20B00B(
     BuiltInId::textureProjLod_USampler2D1_Float3_Float1,
     BuiltInName::textureProjLod,
     TExtension::UNDEFINED,
@@ -12288,7 +11457,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLod_00I30B00B(
+constexpr const TFunction textureProjLod_00I30B00B(
     BuiltInId::textureProjLod_Sampler2D1_Float4_Float1,
     BuiltInName::textureProjLod,
     TExtension::UNDEFINED,
@@ -12297,7 +11466,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLod_00R30B00B(
+constexpr const TFunction textureProjLod_00R30B00B(
     BuiltInId::textureProjLod_ISampler2D1_Float4_Float1,
     BuiltInName::textureProjLod,
     TExtension::UNDEFINED,
@@ -12306,7 +11475,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLod_00X30B00B(
+constexpr const TFunction textureProjLod_00X30B00B(
     BuiltInId::textureProjLod_USampler2D1_Float4_Float1,
     BuiltInName::textureProjLod,
     TExtension::UNDEFINED,
@@ -12315,7 +11484,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLod_00J30B00B(
+constexpr const TFunction textureProjLod_00J30B00B(
     BuiltInId::textureProjLod_Sampler3D1_Float4_Float1,
     BuiltInName::textureProjLod,
     TExtension::UNDEFINED,
@@ -12324,7 +11493,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLod_00S30B00B(
+constexpr const TFunction textureProjLod_00S30B00B(
     BuiltInId::textureProjLod_ISampler3D1_Float4_Float1,
     BuiltInName::textureProjLod,
     TExtension::UNDEFINED,
@@ -12333,7 +11502,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLod_00Y30B00B(
+constexpr const TFunction textureProjLod_00Y30B00B(
     BuiltInId::textureProjLod_USampler3D1_Float4_Float1,
     BuiltInName::textureProjLod,
     TExtension::UNDEFINED,
@@ -12342,7 +11511,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLod_00d30B00B(
+constexpr const TFunction textureProjLod_00d30B00B(
     BuiltInId::textureProjLod_Sampler2DShadow1_Float4_Float1,
     BuiltInName::textureProjLod,
     TExtension::UNDEFINED,
@@ -12351,7 +11520,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLod_00g10B00B(
+constexpr const TFunction textureProjLod_00g10B00B(
     BuiltInId::textureProjLod_Sampler1D1_Float2_Float1,
     BuiltInName::textureProjLod,
     TExtension::UNDEFINED,
@@ -12360,7 +11529,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLod_00o10B00B(
+constexpr const TFunction textureProjLod_00o10B00B(
     BuiltInId::textureProjLod_ISampler1D1_Float2_Float1,
     BuiltInName::textureProjLod,
     TExtension::UNDEFINED,
@@ -12369,7 +11538,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLod_00t10B00B(
+constexpr const TFunction textureProjLod_00t10B00B(
     BuiltInId::textureProjLod_USampler1D1_Float2_Float1,
     BuiltInName::textureProjLod,
     TExtension::UNDEFINED,
@@ -12378,7 +11547,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLod_00g30B00B(
+constexpr const TFunction textureProjLod_00g30B00B(
     BuiltInId::textureProjLod_Sampler1D1_Float4_Float1,
     BuiltInName::textureProjLod,
     TExtension::UNDEFINED,
@@ -12387,7 +11556,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLod_00o30B00B(
+constexpr const TFunction textureProjLod_00o30B00B(
     BuiltInId::textureProjLod_ISampler1D1_Float4_Float1,
     BuiltInName::textureProjLod,
     TExtension::UNDEFINED,
@@ -12396,7 +11565,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLod_00t30B00B(
+constexpr const TFunction textureProjLod_00t30B00B(
     BuiltInId::textureProjLod_USampler1D1_Float4_Float1,
     BuiltInName::textureProjLod,
     TExtension::UNDEFINED,
@@ -12405,7 +11574,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLod_00m30B00B(
+constexpr const TFunction textureProjLod_00m30B00B(
     BuiltInId::textureProjLod_Sampler1DShadow1_Float4_Float1,
     BuiltInName::textureProjLod,
     TExtension::UNDEFINED,
@@ -12414,7 +11583,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetch_00I10D00D(
+constexpr const TFunction texelFetch_00I10D00D(
     BuiltInId::texelFetch_Sampler2D1_Int2_Int1,
     BuiltInName::texelFetch,
     TExtension::UNDEFINED,
@@ -12423,7 +11592,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetch_00R10D00D(
+constexpr const TFunction texelFetch_00R10D00D(
     BuiltInId::texelFetch_ISampler2D1_Int2_Int1,
     BuiltInName::texelFetch,
     TExtension::UNDEFINED,
@@ -12432,7 +11601,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetch_00X10D00D(
+constexpr const TFunction texelFetch_00X10D00D(
     BuiltInId::texelFetch_USampler2D1_Int2_Int1,
     BuiltInName::texelFetch,
     TExtension::UNDEFINED,
@@ -12441,7 +11610,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetch_00J20D00D(
+constexpr const TFunction texelFetch_00J20D00D(
     BuiltInId::texelFetch_Sampler3D1_Int3_Int1,
     BuiltInName::texelFetch,
     TExtension::UNDEFINED,
@@ -12450,7 +11619,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetch_00S20D00D(
+constexpr const TFunction texelFetch_00S20D00D(
     BuiltInId::texelFetch_ISampler3D1_Int3_Int1,
     BuiltInName::texelFetch,
     TExtension::UNDEFINED,
@@ -12459,7 +11628,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetch_00Y20D00D(
+constexpr const TFunction texelFetch_00Y20D00D(
     BuiltInId::texelFetch_USampler3D1_Int3_Int1,
     BuiltInName::texelFetch,
     TExtension::UNDEFINED,
@@ -12468,7 +11637,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetch_00L20D00D(
+constexpr const TFunction texelFetch_00L20D00D(
     BuiltInId::texelFetch_Sampler2DArray1_Int3_Int1,
     BuiltInName::texelFetch,
     TExtension::UNDEFINED,
@@ -12477,7 +11646,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetch_00U20D00D(
+constexpr const TFunction texelFetch_00U20D00D(
     BuiltInId::texelFetch_ISampler2DArray1_Int3_Int1,
     BuiltInName::texelFetch,
     TExtension::UNDEFINED,
@@ -12486,7 +11655,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetch_00a20D00D(
+constexpr const TFunction texelFetch_00a20D00D(
     BuiltInId::texelFetch_USampler2DArray1_Int3_Int1,
     BuiltInName::texelFetch,
     TExtension::UNDEFINED,
@@ -12495,7 +11664,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetch_00g00D00D(
+constexpr const TFunction texelFetch_00g00D00D(
     BuiltInId::texelFetch_Sampler1D1_Int1_Int1,
     BuiltInName::texelFetch,
     TExtension::UNDEFINED,
@@ -12504,7 +11673,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetch_00o00D00D(
+constexpr const TFunction texelFetch_00o00D00D(
     BuiltInId::texelFetch_ISampler1D1_Int1_Int1,
     BuiltInName::texelFetch,
     TExtension::UNDEFINED,
@@ -12513,7 +11682,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetch_00t00D00D(
+constexpr const TFunction texelFetch_00t00D00D(
     BuiltInId::texelFetch_USampler1D1_Int1_Int1,
     BuiltInName::texelFetch,
     TExtension::UNDEFINED,
@@ -12522,7 +11691,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetch_00O10D(
+constexpr const TFunction texelFetch_00O10D(
     BuiltInId::texelFetch_Sampler2DRect1_Int2,
     BuiltInName::texelFetch,
     TExtension::UNDEFINED,
@@ -12531,7 +11700,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetch_00q10D(
+constexpr const TFunction texelFetch_00q10D(
     BuiltInId::texelFetch_ISampler2DRect1_Int2,
     BuiltInName::texelFetch,
     TExtension::UNDEFINED,
@@ -12540,7 +11709,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetch_00v10D(
+constexpr const TFunction texelFetch_00v10D(
     BuiltInId::texelFetch_USampler2DRect1_Int2,
     BuiltInName::texelFetch,
     TExtension::UNDEFINED,
@@ -12549,7 +11718,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetch_00h10D00D(
+constexpr const TFunction texelFetch_00h10D00D(
     BuiltInId::texelFetch_Sampler1DArray1_Int2_Int1,
     BuiltInName::texelFetch,
     TExtension::UNDEFINED,
@@ -12558,7 +11727,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetch_00p10D00D(
+constexpr const TFunction texelFetch_00p10D00D(
     BuiltInId::texelFetch_ISampler1DArray1_Int2_Int1,
     BuiltInName::texelFetch,
     TExtension::UNDEFINED,
@@ -12567,7 +11736,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetch_00u10D00D(
+constexpr const TFunction texelFetch_00u10D00D(
     BuiltInId::texelFetch_USampler1DArray1_Int2_Int1,
     BuiltInName::texelFetch,
     TExtension::UNDEFINED,
@@ -12576,7 +11745,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetch_00j00D(
+constexpr const TFunction texelFetch_00j00D(
     BuiltInId::texelFetch_SamplerBuffer1_Int1,
     BuiltInName::texelFetch,
     TExtension::UNDEFINED,
@@ -12585,7 +11754,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetch_00r00D(
+constexpr const TFunction texelFetch_00r00D(
     BuiltInId::texelFetch_ISamplerBuffer1_Int1,
     BuiltInName::texelFetch,
     TExtension::UNDEFINED,
@@ -12594,7 +11763,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetch_00w00D(
+constexpr const TFunction texelFetch_00w00D(
     BuiltInId::texelFetch_USamplerBuffer1_Int1,
     BuiltInName::texelFetch,
     TExtension::UNDEFINED,
@@ -12603,7 +11772,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGrad_00I10B10B10B(
+constexpr const TFunction textureGrad_00I10B10B10B(
     BuiltInId::textureGrad_Sampler2D1_Float2_Float2_Float2,
     BuiltInName::textureGrad,
     TExtension::UNDEFINED,
@@ -12612,7 +11781,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGrad_00R10B10B10B(
+constexpr const TFunction textureGrad_00R10B10B10B(
     BuiltInId::textureGrad_ISampler2D1_Float2_Float2_Float2,
     BuiltInName::textureGrad,
     TExtension::UNDEFINED,
@@ -12621,7 +11790,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGrad_00X10B10B10B(
+constexpr const TFunction textureGrad_00X10B10B10B(
     BuiltInId::textureGrad_USampler2D1_Float2_Float2_Float2,
     BuiltInName::textureGrad,
     TExtension::UNDEFINED,
@@ -12630,7 +11799,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGrad_00J20B20B20B(
+constexpr const TFunction textureGrad_00J20B20B20B(
     BuiltInId::textureGrad_Sampler3D1_Float3_Float3_Float3,
     BuiltInName::textureGrad,
     TExtension::UNDEFINED,
@@ -12639,7 +11808,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGrad_00S20B20B20B(
+constexpr const TFunction textureGrad_00S20B20B20B(
     BuiltInId::textureGrad_ISampler3D1_Float3_Float3_Float3,
     BuiltInName::textureGrad,
     TExtension::UNDEFINED,
@@ -12648,7 +11817,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGrad_00Y20B20B20B(
+constexpr const TFunction textureGrad_00Y20B20B20B(
     BuiltInId::textureGrad_USampler3D1_Float3_Float3_Float3,
     BuiltInName::textureGrad,
     TExtension::UNDEFINED,
@@ -12657,7 +11826,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGrad_00K20B20B20B(
+constexpr const TFunction textureGrad_00K20B20B20B(
     BuiltInId::textureGrad_SamplerCube1_Float3_Float3_Float3,
     BuiltInName::textureGrad,
     TExtension::UNDEFINED,
@@ -12666,7 +11835,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGrad_00T20B20B20B(
+constexpr const TFunction textureGrad_00T20B20B20B(
     BuiltInId::textureGrad_ISamplerCube1_Float3_Float3_Float3,
     BuiltInName::textureGrad,
     TExtension::UNDEFINED,
@@ -12675,7 +11844,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGrad_00Z20B20B20B(
+constexpr const TFunction textureGrad_00Z20B20B20B(
     BuiltInId::textureGrad_USamplerCube1_Float3_Float3_Float3,
     BuiltInName::textureGrad,
     TExtension::UNDEFINED,
@@ -12684,7 +11853,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGrad_00I00B00B00B(
+constexpr const TFunction textureGrad_00I00B00B00B(
     BuiltInId::textureGrad_Sampler2D1_Float1_Float1_Float1,
     BuiltInName::textureGrad,
     TExtension::UNDEFINED,
@@ -12693,7 +11862,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGrad_00R00B00B00B(
+constexpr const TFunction textureGrad_00R00B00B00B(
     BuiltInId::textureGrad_ISampler2D1_Float1_Float1_Float1,
     BuiltInName::textureGrad,
     TExtension::UNDEFINED,
@@ -12702,7 +11871,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGrad_00X00B00B00B(
+constexpr const TFunction textureGrad_00X00B00B00B(
     BuiltInId::textureGrad_USampler2D1_Float1_Float1_Float1,
     BuiltInName::textureGrad,
     TExtension::UNDEFINED,
@@ -12711,7 +11880,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGrad_00O10B10B10B(
+constexpr const TFunction textureGrad_00O10B10B10B(
     BuiltInId::textureGrad_Sampler2DRect1_Float2_Float2_Float2,
     BuiltInName::textureGrad,
     TExtension::UNDEFINED,
@@ -12720,7 +11889,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGrad_00q10B10B10B(
+constexpr const TFunction textureGrad_00q10B10B10B(
     BuiltInId::textureGrad_ISampler2DRect1_Float2_Float2_Float2,
     BuiltInName::textureGrad,
     TExtension::UNDEFINED,
@@ -12729,7 +11898,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGrad_00v10B10B10B(
+constexpr const TFunction textureGrad_00v10B10B10B(
     BuiltInId::textureGrad_USampler2DRect1_Float2_Float2_Float2,
     BuiltInName::textureGrad,
     TExtension::UNDEFINED,
@@ -12738,7 +11907,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGrad_00n20B10B10B(
+constexpr const TFunction textureGrad_00n20B10B10B(
     BuiltInId::textureGrad_Sampler2DRectShadow1_Float3_Float2_Float2,
     BuiltInName::textureGrad,
     TExtension::UNDEFINED,
@@ -12747,7 +11916,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGrad_00d20B10B10B(
+constexpr const TFunction textureGrad_00d20B10B10B(
     BuiltInId::textureGrad_Sampler2DShadow1_Float3_Float2_Float2,
     BuiltInName::textureGrad,
     TExtension::UNDEFINED,
@@ -12756,7 +11925,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGrad_00e30B20B20B(
+constexpr const TFunction textureGrad_00e30B20B20B(
     BuiltInId::textureGrad_SamplerCubeShadow1_Float4_Float3_Float3,
     BuiltInName::textureGrad,
     TExtension::UNDEFINED,
@@ -12765,7 +11934,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGrad_00L20B10B10B(
+constexpr const TFunction textureGrad_00L20B10B10B(
     BuiltInId::textureGrad_Sampler2DArray1_Float3_Float2_Float2,
     BuiltInName::textureGrad,
     TExtension::UNDEFINED,
@@ -12774,7 +11943,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGrad_00U20B10B10B(
+constexpr const TFunction textureGrad_00U20B10B10B(
     BuiltInId::textureGrad_ISampler2DArray1_Float3_Float2_Float2,
     BuiltInName::textureGrad,
     TExtension::UNDEFINED,
@@ -12783,7 +11952,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGrad_00a20B10B10B(
+constexpr const TFunction textureGrad_00a20B10B10B(
     BuiltInId::textureGrad_USampler2DArray1_Float3_Float2_Float2,
     BuiltInName::textureGrad,
     TExtension::UNDEFINED,
@@ -12792,7 +11961,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGrad_00f30B10B10B(
+constexpr const TFunction textureGrad_00f30B10B10B(
     BuiltInId::textureGrad_Sampler2DArrayShadow1_Float4_Float2_Float2,
     BuiltInName::textureGrad,
     TExtension::UNDEFINED,
@@ -12801,7 +11970,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGrad_00m20B00B00B(
+constexpr const TFunction textureGrad_00m20B00B00B(
     BuiltInId::textureGrad_Sampler1DShadow1_Float3_Float1_Float1,
     BuiltInName::textureGrad,
     TExtension::UNDEFINED,
@@ -12810,7 +11979,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGrad_00h10B00B00B(
+constexpr const TFunction textureGrad_00h10B00B00B(
     BuiltInId::textureGrad_Sampler1DArray1_Float2_Float1_Float1,
     BuiltInName::textureGrad,
     TExtension::UNDEFINED,
@@ -12819,7 +11988,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGrad_00p10B00B00B(
+constexpr const TFunction textureGrad_00p10B00B00B(
     BuiltInId::textureGrad_ISampler1DArray1_Float2_Float1_Float1,
     BuiltInName::textureGrad,
     TExtension::UNDEFINED,
@@ -12828,7 +11997,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGrad_00u10B00B00B(
+constexpr const TFunction textureGrad_00u10B00B00B(
     BuiltInId::textureGrad_USampler1DArray1_Float2_Float1_Float1,
     BuiltInName::textureGrad,
     TExtension::UNDEFINED,
@@ -12837,7 +12006,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGrad_00i20B00B00B(
+constexpr const TFunction textureGrad_00i20B00B00B(
     BuiltInId::textureGrad_Sampler1DArrayShadow1_Float3_Float1_Float1,
     BuiltInName::textureGrad,
     TExtension::UNDEFINED,
@@ -12846,7 +12015,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGrad_00k30B20B20B(
+constexpr const TFunction textureGrad_00k30B20B20B(
     BuiltInId::textureGrad_SamplerCubeArray1_Float4_Float3_Float3,
     BuiltInName::textureGrad,
     TExtension::UNDEFINED,
@@ -12855,7 +12024,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGrad_00s30B20B20B(
+constexpr const TFunction textureGrad_00s30B20B20B(
     BuiltInId::textureGrad_ISamplerCubeArray1_Float4_Float3_Float3,
     BuiltInName::textureGrad,
     TExtension::UNDEFINED,
@@ -12864,7 +12033,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGrad_00x30B20B20B(
+constexpr const TFunction textureGrad_00x30B20B20B(
     BuiltInId::textureGrad_USamplerCubeArray1_Float4_Float3_Float3,
     BuiltInName::textureGrad,
     TExtension::UNDEFINED,
@@ -12873,7 +12042,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGrad_00I20B10B10B(
+constexpr const TFunction textureProjGrad_00I20B10B10B(
     BuiltInId::textureProjGrad_Sampler2D1_Float3_Float2_Float2,
     BuiltInName::textureProjGrad,
     TExtension::UNDEFINED,
@@ -12882,7 +12051,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGrad_00R20B10B10B(
+constexpr const TFunction textureProjGrad_00R20B10B10B(
     BuiltInId::textureProjGrad_ISampler2D1_Float3_Float2_Float2,
     BuiltInName::textureProjGrad,
     TExtension::UNDEFINED,
@@ -12891,7 +12060,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGrad_00X20B10B10B(
+constexpr const TFunction textureProjGrad_00X20B10B10B(
     BuiltInId::textureProjGrad_USampler2D1_Float3_Float2_Float2,
     BuiltInName::textureProjGrad,
     TExtension::UNDEFINED,
@@ -12900,7 +12069,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGrad_00I30B10B10B(
+constexpr const TFunction textureProjGrad_00I30B10B10B(
     BuiltInId::textureProjGrad_Sampler2D1_Float4_Float2_Float2,
     BuiltInName::textureProjGrad,
     TExtension::UNDEFINED,
@@ -12909,7 +12078,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGrad_00R30B10B10B(
+constexpr const TFunction textureProjGrad_00R30B10B10B(
     BuiltInId::textureProjGrad_ISampler2D1_Float4_Float2_Float2,
     BuiltInName::textureProjGrad,
     TExtension::UNDEFINED,
@@ -12918,7 +12087,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGrad_00X30B10B10B(
+constexpr const TFunction textureProjGrad_00X30B10B10B(
     BuiltInId::textureProjGrad_USampler2D1_Float4_Float2_Float2,
     BuiltInName::textureProjGrad,
     TExtension::UNDEFINED,
@@ -12927,7 +12096,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGrad_00J30B20B20B(
+constexpr const TFunction textureProjGrad_00J30B20B20B(
     BuiltInId::textureProjGrad_Sampler3D1_Float4_Float3_Float3,
     BuiltInName::textureProjGrad,
     TExtension::UNDEFINED,
@@ -12936,7 +12105,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGrad_00S30B20B20B(
+constexpr const TFunction textureProjGrad_00S30B20B20B(
     BuiltInId::textureProjGrad_ISampler3D1_Float4_Float3_Float3,
     BuiltInName::textureProjGrad,
     TExtension::UNDEFINED,
@@ -12945,7 +12114,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGrad_00Y30B20B20B(
+constexpr const TFunction textureProjGrad_00Y30B20B20B(
     BuiltInId::textureProjGrad_USampler3D1_Float4_Float3_Float3,
     BuiltInName::textureProjGrad,
     TExtension::UNDEFINED,
@@ -12954,7 +12123,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGrad_00d30B10B10B(
+constexpr const TFunction textureProjGrad_00d30B10B10B(
     BuiltInId::textureProjGrad_Sampler2DShadow1_Float4_Float2_Float2,
     BuiltInName::textureProjGrad,
     TExtension::UNDEFINED,
@@ -12963,7 +12132,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGrad_00g10B00B00B(
+constexpr const TFunction textureProjGrad_00g10B00B00B(
     BuiltInId::textureProjGrad_Sampler1D1_Float2_Float1_Float1,
     BuiltInName::textureProjGrad,
     TExtension::UNDEFINED,
@@ -12972,7 +12141,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGrad_00o10B00B00B(
+constexpr const TFunction textureProjGrad_00o10B00B00B(
     BuiltInId::textureProjGrad_ISampler1D1_Float2_Float1_Float1,
     BuiltInName::textureProjGrad,
     TExtension::UNDEFINED,
@@ -12981,7 +12150,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGrad_00t10B00B00B(
+constexpr const TFunction textureProjGrad_00t10B00B00B(
     BuiltInId::textureProjGrad_USampler1D1_Float2_Float1_Float1,
     BuiltInName::textureProjGrad,
     TExtension::UNDEFINED,
@@ -12990,7 +12159,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGrad_00g30B00B00B(
+constexpr const TFunction textureProjGrad_00g30B00B00B(
     BuiltInId::textureProjGrad_Sampler1D1_Float4_Float1_Float1,
     BuiltInName::textureProjGrad,
     TExtension::UNDEFINED,
@@ -12999,7 +12168,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGrad_00o30B00B00B(
+constexpr const TFunction textureProjGrad_00o30B00B00B(
     BuiltInId::textureProjGrad_ISampler1D1_Float4_Float1_Float1,
     BuiltInName::textureProjGrad,
     TExtension::UNDEFINED,
@@ -13008,7 +12177,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGrad_00t30B00B00B(
+constexpr const TFunction textureProjGrad_00t30B00B00B(
     BuiltInId::textureProjGrad_USampler1D1_Float4_Float1_Float1,
     BuiltInName::textureProjGrad,
     TExtension::UNDEFINED,
@@ -13017,7 +12186,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGrad_00m30B00B00B(
+constexpr const TFunction textureProjGrad_00m30B00B00B(
     BuiltInId::textureProjGrad_Sampler1DShadow1_Float4_Float1_Float1,
     BuiltInName::textureProjGrad,
     TExtension::UNDEFINED,
@@ -13026,7 +12195,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGrad_00O20B10B10B(
+constexpr const TFunction textureProjGrad_00O20B10B10B(
     BuiltInId::textureProjGrad_Sampler2DRect1_Float3_Float2_Float2,
     BuiltInName::textureProjGrad,
     TExtension::UNDEFINED,
@@ -13035,7 +12204,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGrad_00q20B10B10B(
+constexpr const TFunction textureProjGrad_00q20B10B10B(
     BuiltInId::textureProjGrad_ISampler2DRect1_Float3_Float2_Float2,
     BuiltInName::textureProjGrad,
     TExtension::UNDEFINED,
@@ -13044,7 +12213,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGrad_00v20B10B10B(
+constexpr const TFunction textureProjGrad_00v20B10B10B(
     BuiltInId::textureProjGrad_USampler2DRect1_Float3_Float2_Float2,
     BuiltInName::textureProjGrad,
     TExtension::UNDEFINED,
@@ -13053,7 +12222,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGrad_00O30B10B10B(
+constexpr const TFunction textureProjGrad_00O30B10B10B(
     BuiltInId::textureProjGrad_Sampler2DRect1_Float4_Float2_Float2,
     BuiltInName::textureProjGrad,
     TExtension::UNDEFINED,
@@ -13062,7 +12231,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGrad_00q30B10B10B(
+constexpr const TFunction textureProjGrad_00q30B10B10B(
     BuiltInId::textureProjGrad_ISampler2DRect1_Float4_Float2_Float2,
     BuiltInName::textureProjGrad,
     TExtension::UNDEFINED,
@@ -13071,7 +12240,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGrad_00v30B10B10B(
+constexpr const TFunction textureProjGrad_00v30B10B10B(
     BuiltInId::textureProjGrad_USampler2DRect1_Float4_Float2_Float2,
     BuiltInName::textureProjGrad,
     TExtension::UNDEFINED,
@@ -13080,7 +12249,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGrad_00n30B10B10B(
+constexpr const TFunction textureProjGrad_00n30B10B10B(
     BuiltInId::textureProjGrad_Sampler2DRectShadow1_Float4_Float2_Float2,
     BuiltInName::textureProjGrad,
     TExtension::UNDEFINED,
@@ -13089,7 +12258,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLevels_00g(
+constexpr const TFunction textureQueryLevels_00g(
     BuiltInId::textureQueryLevels_Sampler1D1,
     BuiltInName::textureQueryLevels,
     TExtension::UNDEFINED,
@@ -13098,7 +12267,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLevels_00o(
+constexpr const TFunction textureQueryLevels_00o(
     BuiltInId::textureQueryLevels_ISampler1D1,
     BuiltInName::textureQueryLevels,
     TExtension::UNDEFINED,
@@ -13107,7 +12276,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLevels_00t(
+constexpr const TFunction textureQueryLevels_00t(
     BuiltInId::textureQueryLevels_USampler1D1,
     BuiltInName::textureQueryLevels,
     TExtension::UNDEFINED,
@@ -13116,7 +12285,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLevels_00I(
+constexpr const TFunction textureQueryLevels_00I(
     BuiltInId::textureQueryLevels_Sampler2D1,
     BuiltInName::textureQueryLevels,
     TExtension::UNDEFINED,
@@ -13125,7 +12294,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLevels_00R(
+constexpr const TFunction textureQueryLevels_00R(
     BuiltInId::textureQueryLevels_ISampler2D1,
     BuiltInName::textureQueryLevels,
     TExtension::UNDEFINED,
@@ -13134,7 +12303,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLevels_00X(
+constexpr const TFunction textureQueryLevels_00X(
     BuiltInId::textureQueryLevels_USampler2D1,
     BuiltInName::textureQueryLevels,
     TExtension::UNDEFINED,
@@ -13143,7 +12312,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLevels_00J(
+constexpr const TFunction textureQueryLevels_00J(
     BuiltInId::textureQueryLevels_Sampler3D1,
     BuiltInName::textureQueryLevels,
     TExtension::UNDEFINED,
@@ -13152,7 +12321,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLevels_00S(
+constexpr const TFunction textureQueryLevels_00S(
     BuiltInId::textureQueryLevels_ISampler3D1,
     BuiltInName::textureQueryLevels,
     TExtension::UNDEFINED,
@@ -13161,7 +12330,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLevels_00Y(
+constexpr const TFunction textureQueryLevels_00Y(
     BuiltInId::textureQueryLevels_USampler3D1,
     BuiltInName::textureQueryLevels,
     TExtension::UNDEFINED,
@@ -13170,7 +12339,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLevels_00K(
+constexpr const TFunction textureQueryLevels_00K(
     BuiltInId::textureQueryLevels_SamplerCube1,
     BuiltInName::textureQueryLevels,
     TExtension::UNDEFINED,
@@ -13179,7 +12348,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLevels_00T(
+constexpr const TFunction textureQueryLevels_00T(
     BuiltInId::textureQueryLevels_ISamplerCube1,
     BuiltInName::textureQueryLevels,
     TExtension::UNDEFINED,
@@ -13188,7 +12357,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLevels_00Z(
+constexpr const TFunction textureQueryLevels_00Z(
     BuiltInId::textureQueryLevels_USamplerCube1,
     BuiltInName::textureQueryLevels,
     TExtension::UNDEFINED,
@@ -13197,7 +12366,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLevels_00h(
+constexpr const TFunction textureQueryLevels_00h(
     BuiltInId::textureQueryLevels_Sampler1DArray1,
     BuiltInName::textureQueryLevels,
     TExtension::UNDEFINED,
@@ -13206,7 +12375,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLevels_00p(
+constexpr const TFunction textureQueryLevels_00p(
     BuiltInId::textureQueryLevels_ISampler1DArray1,
     BuiltInName::textureQueryLevels,
     TExtension::UNDEFINED,
@@ -13215,7 +12384,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLevels_00u(
+constexpr const TFunction textureQueryLevels_00u(
     BuiltInId::textureQueryLevels_USampler1DArray1,
     BuiltInName::textureQueryLevels,
     TExtension::UNDEFINED,
@@ -13224,7 +12393,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLevels_00L(
+constexpr const TFunction textureQueryLevels_00L(
     BuiltInId::textureQueryLevels_Sampler2DArray1,
     BuiltInName::textureQueryLevels,
     TExtension::UNDEFINED,
@@ -13233,7 +12402,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLevels_00U(
+constexpr const TFunction textureQueryLevels_00U(
     BuiltInId::textureQueryLevels_ISampler2DArray1,
     BuiltInName::textureQueryLevels,
     TExtension::UNDEFINED,
@@ -13242,7 +12411,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLevels_00a(
+constexpr const TFunction textureQueryLevels_00a(
     BuiltInId::textureQueryLevels_USampler2DArray1,
     BuiltInName::textureQueryLevels,
     TExtension::UNDEFINED,
@@ -13251,7 +12420,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLevels_00k(
+constexpr const TFunction textureQueryLevels_00k(
     BuiltInId::textureQueryLevels_SamplerCubeArray1,
     BuiltInName::textureQueryLevels,
     TExtension::UNDEFINED,
@@ -13260,7 +12429,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLevels_00s(
+constexpr const TFunction textureQueryLevels_00s(
     BuiltInId::textureQueryLevels_ISamplerCubeArray1,
     BuiltInName::textureQueryLevels,
     TExtension::UNDEFINED,
@@ -13269,7 +12438,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLevels_00x(
+constexpr const TFunction textureQueryLevels_00x(
     BuiltInId::textureQueryLevels_USamplerCubeArray1,
     BuiltInName::textureQueryLevels,
     TExtension::UNDEFINED,
@@ -13278,7 +12447,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLevels_00m(
+constexpr const TFunction textureQueryLevels_00m(
     BuiltInId::textureQueryLevels_Sampler1DShadow1,
     BuiltInName::textureQueryLevels,
     TExtension::UNDEFINED,
@@ -13287,7 +12456,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLevels_00d(
+constexpr const TFunction textureQueryLevels_00d(
     BuiltInId::textureQueryLevels_Sampler2DShadow1,
     BuiltInName::textureQueryLevels,
     TExtension::UNDEFINED,
@@ -13296,7 +12465,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLevels_00e(
+constexpr const TFunction textureQueryLevels_00e(
     BuiltInId::textureQueryLevels_SamplerCubeShadow1,
     BuiltInName::textureQueryLevels,
     TExtension::UNDEFINED,
@@ -13305,7 +12474,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLevels_00i(
+constexpr const TFunction textureQueryLevels_00i(
     BuiltInId::textureQueryLevels_Sampler1DArrayShadow1,
     BuiltInName::textureQueryLevels,
     TExtension::UNDEFINED,
@@ -13314,7 +12483,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLevels_00f(
+constexpr const TFunction textureQueryLevels_00f(
     BuiltInId::textureQueryLevels_Sampler2DArrayShadow1,
     BuiltInName::textureQueryLevels,
     TExtension::UNDEFINED,
@@ -13323,7 +12492,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLevels_00l(
+constexpr const TFunction textureQueryLevels_00l(
     BuiltInId::textureQueryLevels_SamplerCubeArrayShadow1,
     BuiltInName::textureQueryLevels,
     TExtension::UNDEFINED,
@@ -13332,7 +12501,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSamples_00P(
+constexpr const TFunction textureSamples_00P(
     BuiltInId::textureSamples_Sampler2DMS1,
     BuiltInName::textureSamples,
     TExtension::UNDEFINED,
@@ -13341,7 +12510,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSamples_00V(
+constexpr const TFunction textureSamples_00V(
     BuiltInId::textureSamples_ISampler2DMS1,
     BuiltInName::textureSamples,
     TExtension::UNDEFINED,
@@ -13350,7 +12519,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSamples_00b(
+constexpr const TFunction textureSamples_00b(
     BuiltInId::textureSamples_USampler2DMS1,
     BuiltInName::textureSamples,
     TExtension::UNDEFINED,
@@ -13359,7 +12528,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSamples_00Q(
+constexpr const TFunction textureSamples_00Q(
     BuiltInId::textureSamples_Sampler2DMSArray1,
     BuiltInName::textureSamples,
     TExtension::UNDEFINED,
@@ -13368,7 +12537,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSamples_00W(
+constexpr const TFunction textureSamples_00W(
     BuiltInId::textureSamples_ISampler2DMSArray1,
     BuiltInName::textureSamples,
     TExtension::UNDEFINED,
@@ -13377,7 +12546,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSamples_00c(
+constexpr const TFunction textureSamples_00c(
     BuiltInId::textureSamples_USampler2DMSArray1,
     BuiltInName::textureSamples,
     TExtension::UNDEFINED,
@@ -13386,34 +12555,31 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSize_00P(
-    BuiltInId::textureSize_Sampler2DMS1,
-    BuiltInName::textureSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00P10D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_textureSize_00V(
-    BuiltInId::textureSize_ISampler2DMS1,
-    BuiltInName::textureSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00V10D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_textureSize_00b(
-    BuiltInId::textureSize_USampler2DMS1,
-    BuiltInName::textureSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00b10D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_textureSizeExt_00P(
+constexpr const TFunction textureSize_00P(BuiltInId::textureSize_Sampler2DMS1,
+                                          BuiltInName::textureSize,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p00P10D00D,
+                                          1,
+                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                          EOpCallBuiltInFunction,
+                                          false);
+constexpr const TFunction textureSize_00V(BuiltInId::textureSize_ISampler2DMS1,
+                                          BuiltInName::textureSize,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p00V10D00D,
+                                          1,
+                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                          EOpCallBuiltInFunction,
+                                          false);
+constexpr const TFunction textureSize_00b(BuiltInId::textureSize_USampler2DMS1,
+                                          BuiltInName::textureSize,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p00b10D00D,
+                                          1,
+                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                          EOpCallBuiltInFunction,
+                                          false);
+constexpr const TFunction textureSizeExt_00P(
     BuiltInId::textureSizeExt_Sampler2DMS1,
     BuiltInName::textureSizeExt,
     TExtension::ANGLE_texture_multisample,
@@ -13422,7 +12588,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSizeExt_00V(
+constexpr const TFunction textureSizeExt_00V(
     BuiltInId::textureSizeExt_ISampler2DMS1,
     BuiltInName::textureSizeExt,
     TExtension::ANGLE_texture_multisample,
@@ -13431,7 +12597,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSizeExt_00b(
+constexpr const TFunction textureSizeExt_00b(
     BuiltInId::textureSizeExt_USampler2DMS1,
     BuiltInName::textureSizeExt,
     TExtension::ANGLE_texture_multisample,
@@ -13440,34 +12606,31 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSize_00Q(
-    BuiltInId::textureSize_Sampler2DMSArray1,
-    BuiltInName::textureSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00Q20D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_textureSize_00W(
-    BuiltInId::textureSize_ISampler2DMSArray1,
-    BuiltInName::textureSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00W20D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_textureSize_00c(
-    BuiltInId::textureSize_USampler2DMSArray1,
-    BuiltInName::textureSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00c20D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_textureSizeExt_00Q(
+constexpr const TFunction textureSize_00Q(BuiltInId::textureSize_Sampler2DMSArray1,
+                                          BuiltInName::textureSize,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p00Q20D00D,
+                                          1,
+                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                          EOpCallBuiltInFunction,
+                                          false);
+constexpr const TFunction textureSize_00W(BuiltInId::textureSize_ISampler2DMSArray1,
+                                          BuiltInName::textureSize,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p00W20D00D,
+                                          1,
+                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                          EOpCallBuiltInFunction,
+                                          false);
+constexpr const TFunction textureSize_00c(BuiltInId::textureSize_USampler2DMSArray1,
+                                          BuiltInName::textureSize,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p00c20D00D,
+                                          1,
+                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                          EOpCallBuiltInFunction,
+                                          false);
+constexpr const TFunction textureSizeExt_00Q(
     BuiltInId::textureSizeExt_Sampler2DMSArray1,
     BuiltInName::textureSizeExt,
     TExtension::OES_texture_storage_multisample_2d_array,
@@ -13476,7 +12639,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSizeExt_00W(
+constexpr const TFunction textureSizeExt_00W(
     BuiltInId::textureSizeExt_ISampler2DMSArray1,
     BuiltInName::textureSizeExt,
     TExtension::OES_texture_storage_multisample_2d_array,
@@ -13485,7 +12648,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSizeExt_00c(
+constexpr const TFunction textureSizeExt_00c(
     BuiltInId::textureSizeExt_USampler2DMSArray1,
     BuiltInName::textureSizeExt,
     TExtension::OES_texture_storage_multisample_2d_array,
@@ -13494,7 +12657,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetch_00P10D00D(
+constexpr const TFunction texelFetch_00P10D00D(
     BuiltInId::texelFetch_Sampler2DMS1_Int2_Int1,
     BuiltInName::texelFetch,
     TExtension::UNDEFINED,
@@ -13503,7 +12666,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetch_00V10D00D(
+constexpr const TFunction texelFetch_00V10D00D(
     BuiltInId::texelFetch_ISampler2DMS1_Int2_Int1,
     BuiltInName::texelFetch,
     TExtension::UNDEFINED,
@@ -13512,7 +12675,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetch_00b10D00D(
+constexpr const TFunction texelFetch_00b10D00D(
     BuiltInId::texelFetch_USampler2DMS1_Int2_Int1,
     BuiltInName::texelFetch,
     TExtension::UNDEFINED,
@@ -13521,7 +12684,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetchExt_00P10D00D(
+constexpr const TFunction texelFetchExt_00P10D00D(
     BuiltInId::texelFetchExt_Sampler2DMS1_Int2_Int1,
     BuiltInName::texelFetchExt,
     TExtension::ANGLE_texture_multisample,
@@ -13530,7 +12693,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetchExt_00V10D00D(
+constexpr const TFunction texelFetchExt_00V10D00D(
     BuiltInId::texelFetchExt_ISampler2DMS1_Int2_Int1,
     BuiltInName::texelFetchExt,
     TExtension::ANGLE_texture_multisample,
@@ -13539,7 +12702,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetchExt_00b10D00D(
+constexpr const TFunction texelFetchExt_00b10D00D(
     BuiltInId::texelFetchExt_USampler2DMS1_Int2_Int1,
     BuiltInName::texelFetchExt,
     TExtension::ANGLE_texture_multisample,
@@ -13548,7 +12711,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetch_00Q20D00D(
+constexpr const TFunction texelFetch_00Q20D00D(
     BuiltInId::texelFetch_Sampler2DMSArray1_Int3_Int1,
     BuiltInName::texelFetch,
     TExtension::UNDEFINED,
@@ -13557,7 +12720,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetch_00W20D00D(
+constexpr const TFunction texelFetch_00W20D00D(
     BuiltInId::texelFetch_ISampler2DMSArray1_Int3_Int1,
     BuiltInName::texelFetch,
     TExtension::UNDEFINED,
@@ -13566,7 +12729,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetch_00c20D00D(
+constexpr const TFunction texelFetch_00c20D00D(
     BuiltInId::texelFetch_USampler2DMSArray1_Int3_Int1,
     BuiltInName::texelFetch,
     TExtension::UNDEFINED,
@@ -13575,7 +12738,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetchExt_00Q20D00D(
+constexpr const TFunction texelFetchExt_00Q20D00D(
     BuiltInId::texelFetchExt_Sampler2DMSArray1_Int3_Int1,
     BuiltInName::texelFetchExt,
     TExtension::OES_texture_storage_multisample_2d_array,
@@ -13584,7 +12747,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetchExt_00W20D00D(
+constexpr const TFunction texelFetchExt_00W20D00D(
     BuiltInId::texelFetchExt_ISampler2DMSArray1_Int3_Int1,
     BuiltInName::texelFetchExt,
     TExtension::OES_texture_storage_multisample_2d_array,
@@ -13593,7 +12756,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetchExt_00c20D00D(
+constexpr const TFunction texelFetchExt_00c20D00D(
     BuiltInId::texelFetchExt_USampler2DMSArray1_Int3_Int1,
     BuiltInName::texelFetchExt,
     TExtension::OES_texture_storage_multisample_2d_array,
@@ -13602,7 +12765,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture_00I10B00B(
+constexpr const TFunction texture_00I10B00B(
     BuiltInId::texture_Sampler2D1_Float2_Float1,
     BuiltInName::texture,
     TExtension::UNDEFINED,
@@ -13611,7 +12774,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture_00R10B00B(
+constexpr const TFunction texture_00R10B00B(
     BuiltInId::texture_ISampler2D1_Float2_Float1,
     BuiltInName::texture,
     TExtension::UNDEFINED,
@@ -13620,7 +12783,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture_00X10B00B(
+constexpr const TFunction texture_00X10B00B(
     BuiltInId::texture_USampler2D1_Float2_Float1,
     BuiltInName::texture,
     TExtension::UNDEFINED,
@@ -13629,7 +12792,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture_00J20B00B(
+constexpr const TFunction texture_00J20B00B(
     BuiltInId::texture_Sampler3D1_Float3_Float1,
     BuiltInName::texture,
     TExtension::UNDEFINED,
@@ -13638,7 +12801,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture_00S20B00B(
+constexpr const TFunction texture_00S20B00B(
     BuiltInId::texture_ISampler3D1_Float3_Float1,
     BuiltInName::texture,
     TExtension::UNDEFINED,
@@ -13647,7 +12810,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture_00Y20B00B(
+constexpr const TFunction texture_00Y20B00B(
     BuiltInId::texture_USampler3D1_Float3_Float1,
     BuiltInName::texture,
     TExtension::UNDEFINED,
@@ -13656,7 +12819,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture_00K20B00B(
+constexpr const TFunction texture_00K20B00B(
     BuiltInId::texture_SamplerCube1_Float3_Float1,
     BuiltInName::texture,
     TExtension::UNDEFINED,
@@ -13665,7 +12828,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture_00T20B00B(
+constexpr const TFunction texture_00T20B00B(
     BuiltInId::texture_ISamplerCube1_Float3_Float1,
     BuiltInName::texture,
     TExtension::UNDEFINED,
@@ -13674,7 +12837,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture_00Z20B00B(
+constexpr const TFunction texture_00Z20B00B(
     BuiltInId::texture_USamplerCube1_Float3_Float1,
     BuiltInName::texture,
     TExtension::UNDEFINED,
@@ -13683,7 +12846,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture_00L20B00B(
+constexpr const TFunction texture_00L20B00B(
     BuiltInId::texture_Sampler2DArray1_Float3_Float1,
     BuiltInName::texture,
     TExtension::UNDEFINED,
@@ -13692,7 +12855,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture_00U20B00B(
+constexpr const TFunction texture_00U20B00B(
     BuiltInId::texture_ISampler2DArray1_Float3_Float1,
     BuiltInName::texture,
     TExtension::UNDEFINED,
@@ -13701,7 +12864,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture_00a20B00B(
+constexpr const TFunction texture_00a20B00B(
     BuiltInId::texture_USampler2DArray1_Float3_Float1,
     BuiltInName::texture,
     TExtension::UNDEFINED,
@@ -13710,7 +12873,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00I20B00B(
+constexpr const TFunction textureProj_00I20B00B(
     BuiltInId::textureProj_Sampler2D1_Float3_Float1,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -13719,7 +12882,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00R20B00B(
+constexpr const TFunction textureProj_00R20B00B(
     BuiltInId::textureProj_ISampler2D1_Float3_Float1,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -13728,7 +12891,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00X20B00B(
+constexpr const TFunction textureProj_00X20B00B(
     BuiltInId::textureProj_USampler2D1_Float3_Float1,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -13737,7 +12900,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00I30B00B(
+constexpr const TFunction textureProj_00I30B00B(
     BuiltInId::textureProj_Sampler2D1_Float4_Float1,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -13746,7 +12909,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00R30B00B(
+constexpr const TFunction textureProj_00R30B00B(
     BuiltInId::textureProj_ISampler2D1_Float4_Float1,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -13755,7 +12918,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00X30B00B(
+constexpr const TFunction textureProj_00X30B00B(
     BuiltInId::textureProj_USampler2D1_Float4_Float1,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -13764,7 +12927,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00J30B00B(
+constexpr const TFunction textureProj_00J30B00B(
     BuiltInId::textureProj_Sampler3D1_Float4_Float1,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -13773,7 +12936,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00S30B00B(
+constexpr const TFunction textureProj_00S30B00B(
     BuiltInId::textureProj_ISampler3D1_Float4_Float1,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -13782,7 +12945,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00Y30B00B(
+constexpr const TFunction textureProj_00Y30B00B(
     BuiltInId::textureProj_USampler3D1_Float4_Float1,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -13791,7 +12954,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture_00d20B00B(
+constexpr const TFunction texture_00d20B00B(
     BuiltInId::texture_Sampler2DShadow1_Float3_Float1,
     BuiltInName::texture,
     TExtension::UNDEFINED,
@@ -13800,7 +12963,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture_00e30B00B(
+constexpr const TFunction texture_00e30B00B(
     BuiltInId::texture_SamplerCubeShadow1_Float4_Float1,
     BuiltInName::texture,
     TExtension::UNDEFINED,
@@ -13809,7 +12972,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00d30B00B(
+constexpr const TFunction textureProj_00d30B00B(
     BuiltInId::textureProj_Sampler2DShadow1_Float4_Float1,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -13818,7 +12981,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture_00g00B00B(
+constexpr const TFunction texture_00g00B00B(
     BuiltInId::texture_Sampler1D1_Float1_Float1,
     BuiltInName::texture,
     TExtension::UNDEFINED,
@@ -13827,7 +12990,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture_00o00B00B(
+constexpr const TFunction texture_00o00B00B(
     BuiltInId::texture_ISampler1D1_Float1_Float1,
     BuiltInName::texture,
     TExtension::UNDEFINED,
@@ -13836,7 +12999,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture_00t00B00B(
+constexpr const TFunction texture_00t00B00B(
     BuiltInId::texture_USampler1D1_Float1_Float1,
     BuiltInName::texture,
     TExtension::UNDEFINED,
@@ -13845,7 +13008,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture_00m20B00B(
+constexpr const TFunction texture_00m20B00B(
     BuiltInId::texture_Sampler1DShadow1_Float3_Float1,
     BuiltInName::texture,
     TExtension::UNDEFINED,
@@ -13854,7 +13017,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture_00h20B00B(
+constexpr const TFunction texture_00h20B00B(
     BuiltInId::texture_Sampler1DArray1_Float3_Float1,
     BuiltInName::texture,
     TExtension::UNDEFINED,
@@ -13863,7 +13026,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture_00p20B00B(
+constexpr const TFunction texture_00p20B00B(
     BuiltInId::texture_ISampler1DArray1_Float3_Float1,
     BuiltInName::texture,
     TExtension::UNDEFINED,
@@ -13872,7 +13035,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture_00u20B00B(
+constexpr const TFunction texture_00u20B00B(
     BuiltInId::texture_USampler1DArray1_Float3_Float1,
     BuiltInName::texture,
     TExtension::UNDEFINED,
@@ -13881,7 +13044,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture_00i20B00B(
+constexpr const TFunction texture_00i20B00B(
     BuiltInId::texture_Sampler1DArrayShadow1_Float3_Float1,
     BuiltInName::texture,
     TExtension::UNDEFINED,
@@ -13890,7 +13053,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture_00f30B00B(
+constexpr const TFunction texture_00f30B00B(
     BuiltInId::texture_Sampler2DArrayShadow1_Float4_Float1,
     BuiltInName::texture,
     TExtension::UNDEFINED,
@@ -13899,7 +13062,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00g10B00B(
+constexpr const TFunction textureProj_00g10B00B(
     BuiltInId::textureProj_Sampler1D1_Float2_Float1,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -13908,7 +13071,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00o10B00B(
+constexpr const TFunction textureProj_00o10B00B(
     BuiltInId::textureProj_ISampler1D1_Float2_Float1,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -13917,7 +13080,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00t10B00B(
+constexpr const TFunction textureProj_00t10B00B(
     BuiltInId::textureProj_USampler1D1_Float2_Float1,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -13926,7 +13089,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00g30B00B(
+constexpr const TFunction textureProj_00g30B00B(
     BuiltInId::textureProj_Sampler1D1_Float4_Float1,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -13935,7 +13098,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00o30B00B(
+constexpr const TFunction textureProj_00o30B00B(
     BuiltInId::textureProj_ISampler1D1_Float4_Float1,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -13944,7 +13107,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00t30B00B(
+constexpr const TFunction textureProj_00t30B00B(
     BuiltInId::textureProj_USampler1D1_Float4_Float1,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -13953,7 +13116,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00m30B00B(
+constexpr const TFunction textureProj_00m30B00B(
     BuiltInId::textureProj_Sampler1DShadow1_Float4_Float1,
     BuiltInName::textureProj,
     TExtension::UNDEFINED,
@@ -13962,7 +13125,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture_00M10B00B(
+constexpr const TFunction texture_00M10B00B(
     BuiltInId::texture_SamplerExternalOES1_Float2_Float1,
     BuiltInName::texture,
     TExtension::OES_EGL_image_external_essl3,
@@ -13971,7 +13134,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00M20B00B(
+constexpr const TFunction textureProj_00M20B00B(
     BuiltInId::textureProj_SamplerExternalOES1_Float3_Float1,
     BuiltInName::textureProj,
     TExtension::OES_EGL_image_external_essl3,
@@ -13980,7 +13143,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00M30B00B(
+constexpr const TFunction textureProj_00M30B00B(
     BuiltInId::textureProj_SamplerExternalOES1_Float4_Float1,
     BuiltInName::textureProj,
     TExtension::OES_EGL_image_external_essl3,
@@ -13989,7 +13152,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture_00N10B00B(
+constexpr const TFunction texture_00N10B00B(
     BuiltInId::texture_SamplerExternal2DY2YEXT1_Float2_Float1,
     BuiltInName::texture,
     TExtension::EXT_YUV_target,
@@ -13998,7 +13161,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00N20B00B(
+constexpr const TFunction textureProj_00N20B00B(
     BuiltInId::textureProj_SamplerExternal2DY2YEXT1_Float3_Float1,
     BuiltInName::textureProj,
     TExtension::EXT_YUV_target,
@@ -14007,7 +13170,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00N30B00B(
+constexpr const TFunction textureProj_00N30B00B(
     BuiltInId::textureProj_SamplerExternal2DY2YEXT1_Float4_Float1,
     BuiltInName::textureProj,
     TExtension::EXT_YUV_target,
@@ -14016,7 +13179,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLod_00g00B(
+constexpr const TFunction textureQueryLod_00g00B(
     BuiltInId::textureQueryLod_Sampler1D1_Float1,
     BuiltInName::textureQueryLod,
     TExtension::UNDEFINED,
@@ -14025,7 +13188,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLod_00o00B(
+constexpr const TFunction textureQueryLod_00o00B(
     BuiltInId::textureQueryLod_ISampler1D1_Float1,
     BuiltInName::textureQueryLod,
     TExtension::UNDEFINED,
@@ -14034,7 +13197,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLod_00t00B(
+constexpr const TFunction textureQueryLod_00t00B(
     BuiltInId::textureQueryLod_USampler1D1_Float1,
     BuiltInName::textureQueryLod,
     TExtension::UNDEFINED,
@@ -14043,7 +13206,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLod_00I10B(
+constexpr const TFunction textureQueryLod_00I10B(
     BuiltInId::textureQueryLod_Sampler2D1_Float2,
     BuiltInName::textureQueryLod,
     TExtension::UNDEFINED,
@@ -14052,7 +13215,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLod_00R10B(
+constexpr const TFunction textureQueryLod_00R10B(
     BuiltInId::textureQueryLod_ISampler2D1_Float2,
     BuiltInName::textureQueryLod,
     TExtension::UNDEFINED,
@@ -14061,7 +13224,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLod_00X10B(
+constexpr const TFunction textureQueryLod_00X10B(
     BuiltInId::textureQueryLod_USampler2D1_Float2,
     BuiltInName::textureQueryLod,
     TExtension::UNDEFINED,
@@ -14070,7 +13233,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLod_00J20B(
+constexpr const TFunction textureQueryLod_00J20B(
     BuiltInId::textureQueryLod_Sampler3D1_Float3,
     BuiltInName::textureQueryLod,
     TExtension::UNDEFINED,
@@ -14079,7 +13242,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLod_00S20B(
+constexpr const TFunction textureQueryLod_00S20B(
     BuiltInId::textureQueryLod_ISampler3D1_Float3,
     BuiltInName::textureQueryLod,
     TExtension::UNDEFINED,
@@ -14088,7 +13251,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLod_00Y20B(
+constexpr const TFunction textureQueryLod_00Y20B(
     BuiltInId::textureQueryLod_USampler3D1_Float3,
     BuiltInName::textureQueryLod,
     TExtension::UNDEFINED,
@@ -14097,7 +13260,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLod_00K20B(
+constexpr const TFunction textureQueryLod_00K20B(
     BuiltInId::textureQueryLod_SamplerCube1_Float3,
     BuiltInName::textureQueryLod,
     TExtension::UNDEFINED,
@@ -14106,7 +13269,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLod_00T20B(
+constexpr const TFunction textureQueryLod_00T20B(
     BuiltInId::textureQueryLod_ISamplerCube1_Float3,
     BuiltInName::textureQueryLod,
     TExtension::UNDEFINED,
@@ -14115,7 +13278,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLod_00Z20B(
+constexpr const TFunction textureQueryLod_00Z20B(
     BuiltInId::textureQueryLod_USamplerCube1_Float3,
     BuiltInName::textureQueryLod,
     TExtension::UNDEFINED,
@@ -14124,7 +13287,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLod_00h00B(
+constexpr const TFunction textureQueryLod_00h00B(
     BuiltInId::textureQueryLod_Sampler1DArray1_Float1,
     BuiltInName::textureQueryLod,
     TExtension::UNDEFINED,
@@ -14133,7 +13296,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLod_00p00B(
+constexpr const TFunction textureQueryLod_00p00B(
     BuiltInId::textureQueryLod_ISampler1DArray1_Float1,
     BuiltInName::textureQueryLod,
     TExtension::UNDEFINED,
@@ -14142,7 +13305,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLod_00u00B(
+constexpr const TFunction textureQueryLod_00u00B(
     BuiltInId::textureQueryLod_USampler1DArray1_Float1,
     BuiltInName::textureQueryLod,
     TExtension::UNDEFINED,
@@ -14151,7 +13314,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLod_00L10B(
+constexpr const TFunction textureQueryLod_00L10B(
     BuiltInId::textureQueryLod_Sampler2DArray1_Float2,
     BuiltInName::textureQueryLod,
     TExtension::UNDEFINED,
@@ -14160,7 +13323,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLod_00U10B(
+constexpr const TFunction textureQueryLod_00U10B(
     BuiltInId::textureQueryLod_ISampler2DArray1_Float2,
     BuiltInName::textureQueryLod,
     TExtension::UNDEFINED,
@@ -14169,7 +13332,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLod_00a10B(
+constexpr const TFunction textureQueryLod_00a10B(
     BuiltInId::textureQueryLod_USampler2DArray1_Float2,
     BuiltInName::textureQueryLod,
     TExtension::UNDEFINED,
@@ -14178,7 +13341,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLod_00k20B(
+constexpr const TFunction textureQueryLod_00k20B(
     BuiltInId::textureQueryLod_SamplerCubeArray1_Float3,
     BuiltInName::textureQueryLod,
     TExtension::UNDEFINED,
@@ -14187,7 +13350,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLod_00s20B(
+constexpr const TFunction textureQueryLod_00s20B(
     BuiltInId::textureQueryLod_ISamplerCubeArray1_Float3,
     BuiltInName::textureQueryLod,
     TExtension::UNDEFINED,
@@ -14196,7 +13359,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLod_00x20B(
+constexpr const TFunction textureQueryLod_00x20B(
     BuiltInId::textureQueryLod_USamplerCubeArray1_Float3,
     BuiltInName::textureQueryLod,
     TExtension::UNDEFINED,
@@ -14205,7 +13368,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLod_00m00B(
+constexpr const TFunction textureQueryLod_00m00B(
     BuiltInId::textureQueryLod_Sampler1DShadow1_Float1,
     BuiltInName::textureQueryLod,
     TExtension::UNDEFINED,
@@ -14214,7 +13377,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLod_00d10B(
+constexpr const TFunction textureQueryLod_00d10B(
     BuiltInId::textureQueryLod_Sampler2DShadow1_Float2,
     BuiltInName::textureQueryLod,
     TExtension::UNDEFINED,
@@ -14223,7 +13386,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLod_00e20B(
+constexpr const TFunction textureQueryLod_00e20B(
     BuiltInId::textureQueryLod_SamplerCubeShadow1_Float3,
     BuiltInName::textureQueryLod,
     TExtension::UNDEFINED,
@@ -14232,7 +13395,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLod_00i00B(
+constexpr const TFunction textureQueryLod_00i00B(
     BuiltInId::textureQueryLod_Sampler1DArrayShadow1_Float1,
     BuiltInName::textureQueryLod,
     TExtension::UNDEFINED,
@@ -14241,7 +13404,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLod_00f10B(
+constexpr const TFunction textureQueryLod_00f10B(
     BuiltInId::textureQueryLod_Sampler2DArrayShadow1_Float2,
     BuiltInName::textureQueryLod,
     TExtension::UNDEFINED,
@@ -14250,7 +13413,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureQueryLod_00l20B(
+constexpr const TFunction textureQueryLod_00l20B(
     BuiltInId::textureQueryLod_SamplerCubeArrayShadow1_Float3,
     BuiltInName::textureQueryLod,
     TExtension::UNDEFINED,
@@ -14259,7 +13422,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00I10B10D(
+constexpr const TFunction textureOffset_00I10B10D(
     BuiltInId::textureOffset_Sampler2D1_Float2_Int2,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -14268,7 +13431,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00R10B10D(
+constexpr const TFunction textureOffset_00R10B10D(
     BuiltInId::textureOffset_ISampler2D1_Float2_Int2,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -14277,7 +13440,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00X10B10D(
+constexpr const TFunction textureOffset_00X10B10D(
     BuiltInId::textureOffset_USampler2D1_Float2_Int2,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -14286,7 +13449,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00J20B20D(
+constexpr const TFunction textureOffset_00J20B20D(
     BuiltInId::textureOffset_Sampler3D1_Float3_Int3,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -14295,7 +13458,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00S20B20D(
+constexpr const TFunction textureOffset_00S20B20D(
     BuiltInId::textureOffset_ISampler3D1_Float3_Int3,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -14304,7 +13467,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00Y20B20D(
+constexpr const TFunction textureOffset_00Y20B20D(
     BuiltInId::textureOffset_USampler3D1_Float3_Int3,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -14313,7 +13476,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00d20B10D(
+constexpr const TFunction textureOffset_00d20B10D(
     BuiltInId::textureOffset_Sampler2DShadow1_Float3_Int2,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -14322,7 +13485,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00L20B10D(
+constexpr const TFunction textureOffset_00L20B10D(
     BuiltInId::textureOffset_Sampler2DArray1_Float3_Int2,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -14331,7 +13494,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00U20B10D(
+constexpr const TFunction textureOffset_00U20B10D(
     BuiltInId::textureOffset_ISampler2DArray1_Float3_Int2,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -14340,7 +13503,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00a20B10D(
+constexpr const TFunction textureOffset_00a20B10D(
     BuiltInId::textureOffset_USampler2DArray1_Float3_Int2,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -14349,7 +13512,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00g00B00D(
+constexpr const TFunction textureOffset_00g00B00D(
     BuiltInId::textureOffset_Sampler1D1_Float1_Int1,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -14358,7 +13521,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00o00B00D(
+constexpr const TFunction textureOffset_00o00B00D(
     BuiltInId::textureOffset_ISampler1D1_Float1_Int1,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -14367,7 +13530,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00t00B00D(
+constexpr const TFunction textureOffset_00t00B00D(
     BuiltInId::textureOffset_USampler1D1_Float1_Int1,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -14376,7 +13539,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00O10B10D(
+constexpr const TFunction textureOffset_00O10B10D(
     BuiltInId::textureOffset_Sampler2DRect1_Float2_Int2,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -14385,7 +13548,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00q10B10D(
+constexpr const TFunction textureOffset_00q10B10D(
     BuiltInId::textureOffset_ISampler2DRect1_Float2_Int2,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -14394,7 +13557,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00v10B10D(
+constexpr const TFunction textureOffset_00v10B10D(
     BuiltInId::textureOffset_USampler2DRect1_Float2_Int2,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -14403,7 +13566,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00n20B10D(
+constexpr const TFunction textureOffset_00n20B10D(
     BuiltInId::textureOffset_Sampler2DRectShadow1_Float3_Int2,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -14412,7 +13575,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00m20B00D(
+constexpr const TFunction textureOffset_00m20B00D(
     BuiltInId::textureOffset_Sampler1DShadow1_Float3_Int1,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -14421,7 +13584,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00h10B00D(
+constexpr const TFunction textureOffset_00h10B00D(
     BuiltInId::textureOffset_Sampler1DArray1_Float2_Int1,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -14430,7 +13593,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00p10B00D(
+constexpr const TFunction textureOffset_00p10B00D(
     BuiltInId::textureOffset_ISampler1DArray1_Float2_Int1,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -14439,7 +13602,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00u10B00D(
+constexpr const TFunction textureOffset_00u10B00D(
     BuiltInId::textureOffset_USampler1DArray1_Float2_Int1,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -14448,7 +13611,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00i20B00D(
+constexpr const TFunction textureOffset_00i20B00D(
     BuiltInId::textureOffset_Sampler1DArrayShadow1_Float3_Int1,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -14457,7 +13620,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00f30B10D(
+constexpr const TFunction textureOffset_00f30B10D(
     BuiltInId::textureOffset_Sampler2DArrayShadow1_Float4_Int2,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -14466,7 +13629,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00I20B10D(
+constexpr const TFunction textureProjOffset_00I20B10D(
     BuiltInId::textureProjOffset_Sampler2D1_Float3_Int2,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -14475,7 +13638,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00R20B10D(
+constexpr const TFunction textureProjOffset_00R20B10D(
     BuiltInId::textureProjOffset_ISampler2D1_Float3_Int2,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -14484,7 +13647,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00X20B10D(
+constexpr const TFunction textureProjOffset_00X20B10D(
     BuiltInId::textureProjOffset_USampler2D1_Float3_Int2,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -14493,7 +13656,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00I30B10D(
+constexpr const TFunction textureProjOffset_00I30B10D(
     BuiltInId::textureProjOffset_Sampler2D1_Float4_Int2,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -14502,7 +13665,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00R30B10D(
+constexpr const TFunction textureProjOffset_00R30B10D(
     BuiltInId::textureProjOffset_ISampler2D1_Float4_Int2,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -14511,7 +13674,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00X30B10D(
+constexpr const TFunction textureProjOffset_00X30B10D(
     BuiltInId::textureProjOffset_USampler2D1_Float4_Int2,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -14520,7 +13683,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00J30B20D(
+constexpr const TFunction textureProjOffset_00J30B20D(
     BuiltInId::textureProjOffset_Sampler3D1_Float4_Int3,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -14529,7 +13692,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00S30B20D(
+constexpr const TFunction textureProjOffset_00S30B20D(
     BuiltInId::textureProjOffset_ISampler3D1_Float4_Int3,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -14538,7 +13701,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00Y30B20D(
+constexpr const TFunction textureProjOffset_00Y30B20D(
     BuiltInId::textureProjOffset_USampler3D1_Float4_Int3,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -14547,7 +13710,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00d30B10D(
+constexpr const TFunction textureProjOffset_00d30B10D(
     BuiltInId::textureProjOffset_Sampler2DShadow1_Float4_Int2,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -14556,7 +13719,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00g10B00D(
+constexpr const TFunction textureProjOffset_00g10B00D(
     BuiltInId::textureProjOffset_Sampler1D1_Float2_Int1,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -14565,7 +13728,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00o10B00D(
+constexpr const TFunction textureProjOffset_00o10B00D(
     BuiltInId::textureProjOffset_ISampler1D1_Float2_Int1,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -14574,7 +13737,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00t10B00D(
+constexpr const TFunction textureProjOffset_00t10B00D(
     BuiltInId::textureProjOffset_USampler1D1_Float2_Int1,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -14583,7 +13746,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00g30B00D(
+constexpr const TFunction textureProjOffset_00g30B00D(
     BuiltInId::textureProjOffset_Sampler1D1_Float4_Int1,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -14592,7 +13755,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00o30B00D(
+constexpr const TFunction textureProjOffset_00o30B00D(
     BuiltInId::textureProjOffset_ISampler1D1_Float4_Int1,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -14601,7 +13764,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00t30B00D(
+constexpr const TFunction textureProjOffset_00t30B00D(
     BuiltInId::textureProjOffset_USampler1D1_Float4_Int1,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -14610,7 +13773,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00O20B10D(
+constexpr const TFunction textureProjOffset_00O20B10D(
     BuiltInId::textureProjOffset_Sampler2DRect1_Float3_Int2,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -14619,7 +13782,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00q20B10D(
+constexpr const TFunction textureProjOffset_00q20B10D(
     BuiltInId::textureProjOffset_ISampler2DRect1_Float3_Int2,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -14628,7 +13791,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00v20B10D(
+constexpr const TFunction textureProjOffset_00v20B10D(
     BuiltInId::textureProjOffset_USampler2DRect1_Float3_Int2,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -14637,7 +13800,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00O30B10D(
+constexpr const TFunction textureProjOffset_00O30B10D(
     BuiltInId::textureProjOffset_Sampler2DRect1_Float4_Int2,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -14646,7 +13809,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00q30B10D(
+constexpr const TFunction textureProjOffset_00q30B10D(
     BuiltInId::textureProjOffset_ISampler2DRect1_Float4_Int2,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -14655,7 +13818,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00v30B10D(
+constexpr const TFunction textureProjOffset_00v30B10D(
     BuiltInId::textureProjOffset_USampler2DRect1_Float4_Int2,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -14664,7 +13827,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00n30B10D(
+constexpr const TFunction textureProjOffset_00n30B10D(
     BuiltInId::textureProjOffset_Sampler2DRectShadow1_Float4_Int2,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -14673,7 +13836,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00m30B00D(
+constexpr const TFunction textureProjOffset_00m30B00D(
     BuiltInId::textureProjOffset_Sampler1DShadow1_Float4_Int1,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -14682,7 +13845,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLodOffset_00I10B00B10D(
+constexpr const TFunction textureLodOffset_00I10B00B10D(
     BuiltInId::textureLodOffset_Sampler2D1_Float2_Float1_Int2,
     BuiltInName::textureLodOffset,
     TExtension::UNDEFINED,
@@ -14691,7 +13854,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLodOffset_00R10B00B10D(
+constexpr const TFunction textureLodOffset_00R10B00B10D(
     BuiltInId::textureLodOffset_ISampler2D1_Float2_Float1_Int2,
     BuiltInName::textureLodOffset,
     TExtension::UNDEFINED,
@@ -14700,7 +13863,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLodOffset_00X10B00B10D(
+constexpr const TFunction textureLodOffset_00X10B00B10D(
     BuiltInId::textureLodOffset_USampler2D1_Float2_Float1_Int2,
     BuiltInName::textureLodOffset,
     TExtension::UNDEFINED,
@@ -14709,7 +13872,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLodOffset_00J20B00B20D(
+constexpr const TFunction textureLodOffset_00J20B00B20D(
     BuiltInId::textureLodOffset_Sampler3D1_Float3_Float1_Int3,
     BuiltInName::textureLodOffset,
     TExtension::UNDEFINED,
@@ -14718,7 +13881,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLodOffset_00S20B00B20D(
+constexpr const TFunction textureLodOffset_00S20B00B20D(
     BuiltInId::textureLodOffset_ISampler3D1_Float3_Float1_Int3,
     BuiltInName::textureLodOffset,
     TExtension::UNDEFINED,
@@ -14727,7 +13890,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLodOffset_00Y20B00B20D(
+constexpr const TFunction textureLodOffset_00Y20B00B20D(
     BuiltInId::textureLodOffset_USampler3D1_Float3_Float1_Int3,
     BuiltInName::textureLodOffset,
     TExtension::UNDEFINED,
@@ -14736,7 +13899,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLodOffset_00d20B00B10D(
+constexpr const TFunction textureLodOffset_00d20B00B10D(
     BuiltInId::textureLodOffset_Sampler2DShadow1_Float3_Float1_Int2,
     BuiltInName::textureLodOffset,
     TExtension::UNDEFINED,
@@ -14745,7 +13908,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLodOffset_00L20B00B10D(
+constexpr const TFunction textureLodOffset_00L20B00B10D(
     BuiltInId::textureLodOffset_Sampler2DArray1_Float3_Float1_Int2,
     BuiltInName::textureLodOffset,
     TExtension::UNDEFINED,
@@ -14754,7 +13917,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLodOffset_00U20B00B10D(
+constexpr const TFunction textureLodOffset_00U20B00B10D(
     BuiltInId::textureLodOffset_ISampler2DArray1_Float3_Float1_Int2,
     BuiltInName::textureLodOffset,
     TExtension::UNDEFINED,
@@ -14763,7 +13926,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLodOffset_00a20B00B10D(
+constexpr const TFunction textureLodOffset_00a20B00B10D(
     BuiltInId::textureLodOffset_USampler2DArray1_Float3_Float1_Int2,
     BuiltInName::textureLodOffset,
     TExtension::UNDEFINED,
@@ -14772,7 +13935,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLodOffset_00g00B00B00D(
+constexpr const TFunction textureLodOffset_00g00B00B00D(
     BuiltInId::textureLodOffset_Sampler1D1_Float1_Float1_Int1,
     BuiltInName::textureLodOffset,
     TExtension::UNDEFINED,
@@ -14781,7 +13944,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLodOffset_00o00B00B00D(
+constexpr const TFunction textureLodOffset_00o00B00B00D(
     BuiltInId::textureLodOffset_ISampler1D1_Float1_Float1_Int1,
     BuiltInName::textureLodOffset,
     TExtension::UNDEFINED,
@@ -14790,7 +13953,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLodOffset_00t00B00B00D(
+constexpr const TFunction textureLodOffset_00t00B00B00D(
     BuiltInId::textureLodOffset_USampler1D1_Float1_Float1_Int1,
     BuiltInName::textureLodOffset,
     TExtension::UNDEFINED,
@@ -14799,7 +13962,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLodOffset_00m20B00B00D(
+constexpr const TFunction textureLodOffset_00m20B00B00D(
     BuiltInId::textureLodOffset_Sampler1DShadow1_Float3_Float1_Int1,
     BuiltInName::textureLodOffset,
     TExtension::UNDEFINED,
@@ -14808,7 +13971,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLodOffset_00h10B00B00D(
+constexpr const TFunction textureLodOffset_00h10B00B00D(
     BuiltInId::textureLodOffset_Sampler1DArray1_Float2_Float1_Int1,
     BuiltInName::textureLodOffset,
     TExtension::UNDEFINED,
@@ -14817,7 +13980,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLodOffset_00p10B00B00D(
+constexpr const TFunction textureLodOffset_00p10B00B00D(
     BuiltInId::textureLodOffset_ISampler1DArray1_Float2_Float1_Int1,
     BuiltInName::textureLodOffset,
     TExtension::UNDEFINED,
@@ -14826,7 +13989,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLodOffset_00u10B00B00D(
+constexpr const TFunction textureLodOffset_00u10B00B00D(
     BuiltInId::textureLodOffset_USampler1DArray1_Float2_Float1_Int1,
     BuiltInName::textureLodOffset,
     TExtension::UNDEFINED,
@@ -14835,7 +13998,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureLodOffset_00i20B00B00D(
+constexpr const TFunction textureLodOffset_00i20B00B00D(
     BuiltInId::textureLodOffset_Sampler1DArrayShadow1_Float3_Float1_Int1,
     BuiltInName::textureLodOffset,
     TExtension::UNDEFINED,
@@ -14844,7 +14007,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLodOffset_00I20B00B10D(
+constexpr const TFunction textureProjLodOffset_00I20B00B10D(
     BuiltInId::textureProjLodOffset_Sampler2D1_Float3_Float1_Int2,
     BuiltInName::textureProjLodOffset,
     TExtension::UNDEFINED,
@@ -14853,7 +14016,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLodOffset_00R20B00B10D(
+constexpr const TFunction textureProjLodOffset_00R20B00B10D(
     BuiltInId::textureProjLodOffset_ISampler2D1_Float3_Float1_Int2,
     BuiltInName::textureProjLodOffset,
     TExtension::UNDEFINED,
@@ -14862,7 +14025,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLodOffset_00X20B00B10D(
+constexpr const TFunction textureProjLodOffset_00X20B00B10D(
     BuiltInId::textureProjLodOffset_USampler2D1_Float3_Float1_Int2,
     BuiltInName::textureProjLodOffset,
     TExtension::UNDEFINED,
@@ -14871,7 +14034,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLodOffset_00I30B00B10D(
+constexpr const TFunction textureProjLodOffset_00I30B00B10D(
     BuiltInId::textureProjLodOffset_Sampler2D1_Float4_Float1_Int2,
     BuiltInName::textureProjLodOffset,
     TExtension::UNDEFINED,
@@ -14880,7 +14043,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLodOffset_00R30B00B10D(
+constexpr const TFunction textureProjLodOffset_00R30B00B10D(
     BuiltInId::textureProjLodOffset_ISampler2D1_Float4_Float1_Int2,
     BuiltInName::textureProjLodOffset,
     TExtension::UNDEFINED,
@@ -14889,7 +14052,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLodOffset_00X30B00B10D(
+constexpr const TFunction textureProjLodOffset_00X30B00B10D(
     BuiltInId::textureProjLodOffset_USampler2D1_Float4_Float1_Int2,
     BuiltInName::textureProjLodOffset,
     TExtension::UNDEFINED,
@@ -14898,7 +14061,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLodOffset_00J30B00B20D(
+constexpr const TFunction textureProjLodOffset_00J30B00B20D(
     BuiltInId::textureProjLodOffset_Sampler3D1_Float4_Float1_Int3,
     BuiltInName::textureProjLodOffset,
     TExtension::UNDEFINED,
@@ -14907,7 +14070,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLodOffset_00S30B00B20D(
+constexpr const TFunction textureProjLodOffset_00S30B00B20D(
     BuiltInId::textureProjLodOffset_ISampler3D1_Float4_Float1_Int3,
     BuiltInName::textureProjLodOffset,
     TExtension::UNDEFINED,
@@ -14916,7 +14079,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLodOffset_00Y30B00B20D(
+constexpr const TFunction textureProjLodOffset_00Y30B00B20D(
     BuiltInId::textureProjLodOffset_USampler3D1_Float4_Float1_Int3,
     BuiltInName::textureProjLodOffset,
     TExtension::UNDEFINED,
@@ -14925,7 +14088,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLodOffset_00d30B00B10D(
+constexpr const TFunction textureProjLodOffset_00d30B00B10D(
     BuiltInId::textureProjLodOffset_Sampler2DShadow1_Float4_Float1_Int2,
     BuiltInName::textureProjLodOffset,
     TExtension::UNDEFINED,
@@ -14934,7 +14097,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLodOffset_00g10B00B00D(
+constexpr const TFunction textureProjLodOffset_00g10B00B00D(
     BuiltInId::textureProjLodOffset_Sampler1D1_Float2_Float1_Int1,
     BuiltInName::textureProjLodOffset,
     TExtension::UNDEFINED,
@@ -14943,7 +14106,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLodOffset_00o10B00B00D(
+constexpr const TFunction textureProjLodOffset_00o10B00B00D(
     BuiltInId::textureProjLodOffset_ISampler1D1_Float2_Float1_Int1,
     BuiltInName::textureProjLodOffset,
     TExtension::UNDEFINED,
@@ -14952,7 +14115,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLodOffset_00t10B00B00D(
+constexpr const TFunction textureProjLodOffset_00t10B00B00D(
     BuiltInId::textureProjLodOffset_USampler1D1_Float2_Float1_Int1,
     BuiltInName::textureProjLodOffset,
     TExtension::UNDEFINED,
@@ -14961,7 +14124,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLodOffset_00g30B00B00D(
+constexpr const TFunction textureProjLodOffset_00g30B00B00D(
     BuiltInId::textureProjLodOffset_Sampler1D1_Float4_Float1_Int1,
     BuiltInName::textureProjLodOffset,
     TExtension::UNDEFINED,
@@ -14970,7 +14133,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLodOffset_00o30B00B00D(
+constexpr const TFunction textureProjLodOffset_00o30B00B00D(
     BuiltInId::textureProjLodOffset_ISampler1D1_Float4_Float1_Int1,
     BuiltInName::textureProjLodOffset,
     TExtension::UNDEFINED,
@@ -14979,7 +14142,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLodOffset_00t30B00B00D(
+constexpr const TFunction textureProjLodOffset_00t30B00B00D(
     BuiltInId::textureProjLodOffset_USampler1D1_Float4_Float1_Int1,
     BuiltInName::textureProjLodOffset,
     TExtension::UNDEFINED,
@@ -14988,7 +14151,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjLodOffset_00m30B00B00D(
+constexpr const TFunction textureProjLodOffset_00m30B00B00D(
     BuiltInId::textureProjLodOffset_Sampler1DShadow1_Float4_Float1_Int1,
     BuiltInName::textureProjLodOffset,
     TExtension::UNDEFINED,
@@ -14997,7 +14160,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetchOffset_00I10D00D10D(
+constexpr const TFunction texelFetchOffset_00I10D00D10D(
     BuiltInId::texelFetchOffset_Sampler2D1_Int2_Int1_Int2,
     BuiltInName::texelFetchOffset,
     TExtension::UNDEFINED,
@@ -15006,7 +14169,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetchOffset_00R10D00D10D(
+constexpr const TFunction texelFetchOffset_00R10D00D10D(
     BuiltInId::texelFetchOffset_ISampler2D1_Int2_Int1_Int2,
     BuiltInName::texelFetchOffset,
     TExtension::UNDEFINED,
@@ -15015,7 +14178,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetchOffset_00X10D00D10D(
+constexpr const TFunction texelFetchOffset_00X10D00D10D(
     BuiltInId::texelFetchOffset_USampler2D1_Int2_Int1_Int2,
     BuiltInName::texelFetchOffset,
     TExtension::UNDEFINED,
@@ -15024,7 +14187,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetchOffset_00J20D00D20D(
+constexpr const TFunction texelFetchOffset_00J20D00D20D(
     BuiltInId::texelFetchOffset_Sampler3D1_Int3_Int1_Int3,
     BuiltInName::texelFetchOffset,
     TExtension::UNDEFINED,
@@ -15033,7 +14196,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetchOffset_00S20D00D20D(
+constexpr const TFunction texelFetchOffset_00S20D00D20D(
     BuiltInId::texelFetchOffset_ISampler3D1_Int3_Int1_Int3,
     BuiltInName::texelFetchOffset,
     TExtension::UNDEFINED,
@@ -15042,7 +14205,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetchOffset_00Y20D00D20D(
+constexpr const TFunction texelFetchOffset_00Y20D00D20D(
     BuiltInId::texelFetchOffset_USampler3D1_Int3_Int1_Int3,
     BuiltInName::texelFetchOffset,
     TExtension::UNDEFINED,
@@ -15051,7 +14214,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetchOffset_00L20D00D10D(
+constexpr const TFunction texelFetchOffset_00L20D00D10D(
     BuiltInId::texelFetchOffset_Sampler2DArray1_Int3_Int1_Int2,
     BuiltInName::texelFetchOffset,
     TExtension::UNDEFINED,
@@ -15060,7 +14223,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetchOffset_00U20D00D10D(
+constexpr const TFunction texelFetchOffset_00U20D00D10D(
     BuiltInId::texelFetchOffset_ISampler2DArray1_Int3_Int1_Int2,
     BuiltInName::texelFetchOffset,
     TExtension::UNDEFINED,
@@ -15069,7 +14232,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetchOffset_00a20D00D10D(
+constexpr const TFunction texelFetchOffset_00a20D00D10D(
     BuiltInId::texelFetchOffset_USampler2DArray1_Int3_Int1_Int2,
     BuiltInName::texelFetchOffset,
     TExtension::UNDEFINED,
@@ -15078,7 +14241,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetchOffset_00g00D00D00D(
+constexpr const TFunction texelFetchOffset_00g00D00D00D(
     BuiltInId::texelFetchOffset_Sampler1D1_Int1_Int1_Int1,
     BuiltInName::texelFetchOffset,
     TExtension::UNDEFINED,
@@ -15087,7 +14250,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetchOffset_00o00D00D00D(
+constexpr const TFunction texelFetchOffset_00o00D00D00D(
     BuiltInId::texelFetchOffset_ISampler1D1_Int1_Int1_Int1,
     BuiltInName::texelFetchOffset,
     TExtension::UNDEFINED,
@@ -15096,7 +14259,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetchOffset_00t00D00D00D(
+constexpr const TFunction texelFetchOffset_00t00D00D00D(
     BuiltInId::texelFetchOffset_USampler1D1_Int1_Int1_Int1,
     BuiltInName::texelFetchOffset,
     TExtension::UNDEFINED,
@@ -15105,7 +14268,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetchOffset_00O10D10D(
+constexpr const TFunction texelFetchOffset_00O10D10D(
     BuiltInId::texelFetchOffset_Sampler2DRect1_Int2_Int2,
     BuiltInName::texelFetchOffset,
     TExtension::UNDEFINED,
@@ -15114,7 +14277,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetchOffset_00q10D10D(
+constexpr const TFunction texelFetchOffset_00q10D10D(
     BuiltInId::texelFetchOffset_ISampler2DRect1_Int2_Int2,
     BuiltInName::texelFetchOffset,
     TExtension::UNDEFINED,
@@ -15123,7 +14286,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetchOffset_00v10D10D(
+constexpr const TFunction texelFetchOffset_00v10D10D(
     BuiltInId::texelFetchOffset_USampler2DRect1_Int2_Int2,
     BuiltInName::texelFetchOffset,
     TExtension::UNDEFINED,
@@ -15132,7 +14295,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetchOffset_00h10D00D00D(
+constexpr const TFunction texelFetchOffset_00h10D00D00D(
     BuiltInId::texelFetchOffset_Sampler1DArray1_Int2_Int1_Int1,
     BuiltInName::texelFetchOffset,
     TExtension::UNDEFINED,
@@ -15141,7 +14304,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetchOffset_00p10D00D00D(
+constexpr const TFunction texelFetchOffset_00p10D00D00D(
     BuiltInId::texelFetchOffset_ISampler1DArray1_Int2_Int1_Int1,
     BuiltInName::texelFetchOffset,
     TExtension::UNDEFINED,
@@ -15150,7 +14313,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetchOffset_00u10D00D00D(
+constexpr const TFunction texelFetchOffset_00u10D00D00D(
     BuiltInId::texelFetchOffset_USampler1DArray1_Int2_Int1_Int1,
     BuiltInName::texelFetchOffset,
     TExtension::UNDEFINED,
@@ -15159,7 +14322,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGradOffset_00I10B10B10B10D(
+constexpr const TFunction textureGradOffset_00I10B10B10B10D(
     BuiltInId::textureGradOffset_Sampler2D1_Float2_Float2_Float2_Int2,
     BuiltInName::textureGradOffset,
     TExtension::UNDEFINED,
@@ -15168,7 +14331,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGradOffset_00R10B10B10B10D(
+constexpr const TFunction textureGradOffset_00R10B10B10B10D(
     BuiltInId::textureGradOffset_ISampler2D1_Float2_Float2_Float2_Int2,
     BuiltInName::textureGradOffset,
     TExtension::UNDEFINED,
@@ -15177,7 +14340,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGradOffset_00X10B10B10B10D(
+constexpr const TFunction textureGradOffset_00X10B10B10B10D(
     BuiltInId::textureGradOffset_USampler2D1_Float2_Float2_Float2_Int2,
     BuiltInName::textureGradOffset,
     TExtension::UNDEFINED,
@@ -15186,7 +14349,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGradOffset_00J20B20B20B20D(
+constexpr const TFunction textureGradOffset_00J20B20B20B20D(
     BuiltInId::textureGradOffset_Sampler3D1_Float3_Float3_Float3_Int3,
     BuiltInName::textureGradOffset,
     TExtension::UNDEFINED,
@@ -15195,7 +14358,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGradOffset_00S20B20B20B20D(
+constexpr const TFunction textureGradOffset_00S20B20B20B20D(
     BuiltInId::textureGradOffset_ISampler3D1_Float3_Float3_Float3_Int3,
     BuiltInName::textureGradOffset,
     TExtension::UNDEFINED,
@@ -15204,7 +14367,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGradOffset_00Y20B20B20B20D(
+constexpr const TFunction textureGradOffset_00Y20B20B20B20D(
     BuiltInId::textureGradOffset_USampler3D1_Float3_Float3_Float3_Int3,
     BuiltInName::textureGradOffset,
     TExtension::UNDEFINED,
@@ -15213,7 +14376,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGradOffset_00d20B10B10B10D(
+constexpr const TFunction textureGradOffset_00d20B10B10B10D(
     BuiltInId::textureGradOffset_Sampler2DShadow1_Float3_Float2_Float2_Int2,
     BuiltInName::textureGradOffset,
     TExtension::UNDEFINED,
@@ -15222,7 +14385,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGradOffset_00L20B10B10B10D(
+constexpr const TFunction textureGradOffset_00L20B10B10B10D(
     BuiltInId::textureGradOffset_Sampler2DArray1_Float3_Float2_Float2_Int2,
     BuiltInName::textureGradOffset,
     TExtension::UNDEFINED,
@@ -15231,7 +14394,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGradOffset_00U20B10B10B10D(
+constexpr const TFunction textureGradOffset_00U20B10B10B10D(
     BuiltInId::textureGradOffset_ISampler2DArray1_Float3_Float2_Float2_Int2,
     BuiltInName::textureGradOffset,
     TExtension::UNDEFINED,
@@ -15240,7 +14403,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGradOffset_00a20B10B10B10D(
+constexpr const TFunction textureGradOffset_00a20B10B10B10D(
     BuiltInId::textureGradOffset_USampler2DArray1_Float3_Float2_Float2_Int2,
     BuiltInName::textureGradOffset,
     TExtension::UNDEFINED,
@@ -15249,7 +14412,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGradOffset_00f30B10B10B10D(
+constexpr const TFunction textureGradOffset_00f30B10B10B10D(
     BuiltInId::textureGradOffset_Sampler2DArrayShadow1_Float4_Float2_Float2_Int2,
     BuiltInName::textureGradOffset,
     TExtension::UNDEFINED,
@@ -15258,7 +14421,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGradOffset_00g00B00B00B00D(
+constexpr const TFunction textureGradOffset_00g00B00B00B00D(
     BuiltInId::textureGradOffset_Sampler1D1_Float1_Float1_Float1_Int1,
     BuiltInName::textureGradOffset,
     TExtension::UNDEFINED,
@@ -15267,7 +14430,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGradOffset_00o00B00B00B00D(
+constexpr const TFunction textureGradOffset_00o00B00B00B00D(
     BuiltInId::textureGradOffset_ISampler1D1_Float1_Float1_Float1_Int1,
     BuiltInName::textureGradOffset,
     TExtension::UNDEFINED,
@@ -15276,7 +14439,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGradOffset_00t00B00B00B00D(
+constexpr const TFunction textureGradOffset_00t00B00B00B00D(
     BuiltInId::textureGradOffset_USampler1D1_Float1_Float1_Float1_Int1,
     BuiltInName::textureGradOffset,
     TExtension::UNDEFINED,
@@ -15285,7 +14448,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGradOffset_00O10B10B10B10D(
+constexpr const TFunction textureGradOffset_00O10B10B10B10D(
     BuiltInId::textureGradOffset_Sampler2DRect1_Float2_Float2_Float2_Int2,
     BuiltInName::textureGradOffset,
     TExtension::UNDEFINED,
@@ -15294,7 +14457,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGradOffset_00q10B10B10B10D(
+constexpr const TFunction textureGradOffset_00q10B10B10B10D(
     BuiltInId::textureGradOffset_ISampler2DRect1_Float2_Float2_Float2_Int2,
     BuiltInName::textureGradOffset,
     TExtension::UNDEFINED,
@@ -15303,7 +14466,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGradOffset_00v10B10B10B10D(
+constexpr const TFunction textureGradOffset_00v10B10B10B10D(
     BuiltInId::textureGradOffset_USampler2DRect1_Float2_Float2_Float2_Int2,
     BuiltInName::textureGradOffset,
     TExtension::UNDEFINED,
@@ -15312,7 +14475,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGradOffset_00n20B10B10B10D(
+constexpr const TFunction textureGradOffset_00n20B10B10B10D(
     BuiltInId::textureGradOffset_Sampler2DRectShadow1_Float3_Float2_Float2_Int2,
     BuiltInName::textureGradOffset,
     TExtension::UNDEFINED,
@@ -15321,7 +14484,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGradOffset_00m20B00B00B00D(
+constexpr const TFunction textureGradOffset_00m20B00B00B00D(
     BuiltInId::textureGradOffset_Sampler1DShadow1_Float3_Float1_Float1_Int1,
     BuiltInName::textureGradOffset,
     TExtension::UNDEFINED,
@@ -15330,7 +14493,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGradOffset_00h10B00B00B00D(
+constexpr const TFunction textureGradOffset_00h10B00B00B00D(
     BuiltInId::textureGradOffset_Sampler1DArray1_Float2_Float1_Float1_Int1,
     BuiltInName::textureGradOffset,
     TExtension::UNDEFINED,
@@ -15339,7 +14502,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGradOffset_00p10B00B00B00D(
+constexpr const TFunction textureGradOffset_00p10B00B00B00D(
     BuiltInId::textureGradOffset_ISampler1DArray1_Float2_Float1_Float1_Int1,
     BuiltInName::textureGradOffset,
     TExtension::UNDEFINED,
@@ -15348,7 +14511,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGradOffset_00u10B00B00B00D(
+constexpr const TFunction textureGradOffset_00u10B00B00B00D(
     BuiltInId::textureGradOffset_USampler1DArray1_Float2_Float1_Float1_Int1,
     BuiltInName::textureGradOffset,
     TExtension::UNDEFINED,
@@ -15357,7 +14520,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGradOffset_00i20B00B00B00D(
+constexpr const TFunction textureGradOffset_00i20B00B00B00D(
     BuiltInId::textureGradOffset_Sampler1DArrayShadow1_Float3_Float1_Float1_Int1,
     BuiltInName::textureGradOffset,
     TExtension::UNDEFINED,
@@ -15366,7 +14529,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGradOffset_00I20B10B10B10D(
+constexpr const TFunction textureProjGradOffset_00I20B10B10B10D(
     BuiltInId::textureProjGradOffset_Sampler2D1_Float3_Float2_Float2_Int2,
     BuiltInName::textureProjGradOffset,
     TExtension::UNDEFINED,
@@ -15375,7 +14538,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGradOffset_00R20B10B10B10D(
+constexpr const TFunction textureProjGradOffset_00R20B10B10B10D(
     BuiltInId::textureProjGradOffset_ISampler2D1_Float3_Float2_Float2_Int2,
     BuiltInName::textureProjGradOffset,
     TExtension::UNDEFINED,
@@ -15384,7 +14547,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGradOffset_00X20B10B10B10D(
+constexpr const TFunction textureProjGradOffset_00X20B10B10B10D(
     BuiltInId::textureProjGradOffset_USampler2D1_Float3_Float2_Float2_Int2,
     BuiltInName::textureProjGradOffset,
     TExtension::UNDEFINED,
@@ -15393,7 +14556,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGradOffset_00I30B10B10B10D(
+constexpr const TFunction textureProjGradOffset_00I30B10B10B10D(
     BuiltInId::textureProjGradOffset_Sampler2D1_Float4_Float2_Float2_Int2,
     BuiltInName::textureProjGradOffset,
     TExtension::UNDEFINED,
@@ -15402,7 +14565,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGradOffset_00R30B10B10B10D(
+constexpr const TFunction textureProjGradOffset_00R30B10B10B10D(
     BuiltInId::textureProjGradOffset_ISampler2D1_Float4_Float2_Float2_Int2,
     BuiltInName::textureProjGradOffset,
     TExtension::UNDEFINED,
@@ -15411,7 +14574,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGradOffset_00X30B10B10B10D(
+constexpr const TFunction textureProjGradOffset_00X30B10B10B10D(
     BuiltInId::textureProjGradOffset_USampler2D1_Float4_Float2_Float2_Int2,
     BuiltInName::textureProjGradOffset,
     TExtension::UNDEFINED,
@@ -15420,7 +14583,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGradOffset_00J30B20B20B20D(
+constexpr const TFunction textureProjGradOffset_00J30B20B20B20D(
     BuiltInId::textureProjGradOffset_Sampler3D1_Float4_Float3_Float3_Int3,
     BuiltInName::textureProjGradOffset,
     TExtension::UNDEFINED,
@@ -15429,7 +14592,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGradOffset_00S30B20B20B20D(
+constexpr const TFunction textureProjGradOffset_00S30B20B20B20D(
     BuiltInId::textureProjGradOffset_ISampler3D1_Float4_Float3_Float3_Int3,
     BuiltInName::textureProjGradOffset,
     TExtension::UNDEFINED,
@@ -15438,7 +14601,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGradOffset_00Y30B20B20B20D(
+constexpr const TFunction textureProjGradOffset_00Y30B20B20B20D(
     BuiltInId::textureProjGradOffset_USampler3D1_Float4_Float3_Float3_Int3,
     BuiltInName::textureProjGradOffset,
     TExtension::UNDEFINED,
@@ -15447,7 +14610,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGradOffset_00d30B10B10B10D(
+constexpr const TFunction textureProjGradOffset_00d30B10B10B10D(
     BuiltInId::textureProjGradOffset_Sampler2DShadow1_Float4_Float2_Float2_Int2,
     BuiltInName::textureProjGradOffset,
     TExtension::UNDEFINED,
@@ -15456,7 +14619,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGradOffset_00g10B00B00B00D(
+constexpr const TFunction textureProjGradOffset_00g10B00B00B00D(
     BuiltInId::textureProjGradOffset_Sampler1D1_Float2_Float1_Float1_Int1,
     BuiltInName::textureProjGradOffset,
     TExtension::UNDEFINED,
@@ -15465,7 +14628,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGradOffset_00o10B00B00B00D(
+constexpr const TFunction textureProjGradOffset_00o10B00B00B00D(
     BuiltInId::textureProjGradOffset_ISampler1D1_Float2_Float1_Float1_Int1,
     BuiltInName::textureProjGradOffset,
     TExtension::UNDEFINED,
@@ -15474,7 +14637,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGradOffset_00t10B00B00B00D(
+constexpr const TFunction textureProjGradOffset_00t10B00B00B00D(
     BuiltInId::textureProjGradOffset_USampler1D1_Float2_Float1_Float1_Int1,
     BuiltInName::textureProjGradOffset,
     TExtension::UNDEFINED,
@@ -15483,7 +14646,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGradOffset_00g30B00B00B00D(
+constexpr const TFunction textureProjGradOffset_00g30B00B00B00D(
     BuiltInId::textureProjGradOffset_Sampler1D1_Float4_Float1_Float1_Int1,
     BuiltInName::textureProjGradOffset,
     TExtension::UNDEFINED,
@@ -15492,7 +14655,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGradOffset_00o30B00B00B00D(
+constexpr const TFunction textureProjGradOffset_00o30B00B00B00D(
     BuiltInId::textureProjGradOffset_ISampler1D1_Float4_Float1_Float1_Int1,
     BuiltInName::textureProjGradOffset,
     TExtension::UNDEFINED,
@@ -15501,7 +14664,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGradOffset_00t30B00B00B00D(
+constexpr const TFunction textureProjGradOffset_00t30B00B00B00D(
     BuiltInId::textureProjGradOffset_USampler1D1_Float4_Float1_Float1_Int1,
     BuiltInName::textureProjGradOffset,
     TExtension::UNDEFINED,
@@ -15510,7 +14673,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGradOffset_00O20B10B10B10D(
+constexpr const TFunction textureProjGradOffset_00O20B10B10B10D(
     BuiltInId::textureProjGradOffset_Sampler2DRect1_Float3_Float2_Float2_Int2,
     BuiltInName::textureProjGradOffset,
     TExtension::UNDEFINED,
@@ -15519,7 +14682,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGradOffset_00q20B10B10B10D(
+constexpr const TFunction textureProjGradOffset_00q20B10B10B10D(
     BuiltInId::textureProjGradOffset_ISampler2DRect1_Float3_Float2_Float2_Int2,
     BuiltInName::textureProjGradOffset,
     TExtension::UNDEFINED,
@@ -15528,7 +14691,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGradOffset_00v20B10B10B10D(
+constexpr const TFunction textureProjGradOffset_00v20B10B10B10D(
     BuiltInId::textureProjGradOffset_USampler2DRect1_Float3_Float2_Float2_Int2,
     BuiltInName::textureProjGradOffset,
     TExtension::UNDEFINED,
@@ -15537,7 +14700,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGradOffset_00O30B10B10B10D(
+constexpr const TFunction textureProjGradOffset_00O30B10B10B10D(
     BuiltInId::textureProjGradOffset_Sampler2DRect1_Float4_Float2_Float2_Int2,
     BuiltInName::textureProjGradOffset,
     TExtension::UNDEFINED,
@@ -15546,7 +14709,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGradOffset_00q30B10B10B10D(
+constexpr const TFunction textureProjGradOffset_00q30B10B10B10D(
     BuiltInId::textureProjGradOffset_ISampler2DRect1_Float4_Float2_Float2_Int2,
     BuiltInName::textureProjGradOffset,
     TExtension::UNDEFINED,
@@ -15555,7 +14718,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGradOffset_00v30B10B10B10D(
+constexpr const TFunction textureProjGradOffset_00v30B10B10B10D(
     BuiltInId::textureProjGradOffset_USampler2DRect1_Float4_Float2_Float2_Int2,
     BuiltInName::textureProjGradOffset,
     TExtension::UNDEFINED,
@@ -15564,7 +14727,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGradOffset_00n30B10B10B10D(
+constexpr const TFunction textureProjGradOffset_00n30B10B10B10D(
     BuiltInId::textureProjGradOffset_Sampler2DRectShadow1_Float4_Float2_Float2_Int2,
     BuiltInName::textureProjGradOffset,
     TExtension::UNDEFINED,
@@ -15573,7 +14736,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjGradOffset_00m30B00B00B00D(
+constexpr const TFunction textureProjGradOffset_00m30B00B00B00D(
     BuiltInId::textureProjGradOffset_Sampler1DShadow1_Float4_Float1_Float1_Int1,
     BuiltInName::textureProjGradOffset,
     TExtension::UNDEFINED,
@@ -15582,7 +14745,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00I10B10D00B(
+constexpr const TFunction textureOffset_00I10B10D00B(
     BuiltInId::textureOffset_Sampler2D1_Float2_Int2_Float1,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -15591,7 +14754,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00R10B10D00B(
+constexpr const TFunction textureOffset_00R10B10D00B(
     BuiltInId::textureOffset_ISampler2D1_Float2_Int2_Float1,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -15600,7 +14763,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00X10B10D00B(
+constexpr const TFunction textureOffset_00X10B10D00B(
     BuiltInId::textureOffset_USampler2D1_Float2_Int2_Float1,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -15609,7 +14772,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00J20B20D00B(
+constexpr const TFunction textureOffset_00J20B20D00B(
     BuiltInId::textureOffset_Sampler3D1_Float3_Int3_Float1,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -15618,7 +14781,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00S20B20D00B(
+constexpr const TFunction textureOffset_00S20B20D00B(
     BuiltInId::textureOffset_ISampler3D1_Float3_Int3_Float1,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -15627,7 +14790,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00Y20B20D00B(
+constexpr const TFunction textureOffset_00Y20B20D00B(
     BuiltInId::textureOffset_USampler3D1_Float3_Int3_Float1,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -15636,7 +14799,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00d20B10D00B(
+constexpr const TFunction textureOffset_00d20B10D00B(
     BuiltInId::textureOffset_Sampler2DShadow1_Float3_Int2_Float1,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -15645,7 +14808,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00L20B10D00B(
+constexpr const TFunction textureOffset_00L20B10D00B(
     BuiltInId::textureOffset_Sampler2DArray1_Float3_Int2_Float1,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -15654,7 +14817,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00U20B10D00B(
+constexpr const TFunction textureOffset_00U20B10D00B(
     BuiltInId::textureOffset_ISampler2DArray1_Float3_Int2_Float1,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -15663,7 +14826,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00a20B10D00B(
+constexpr const TFunction textureOffset_00a20B10D00B(
     BuiltInId::textureOffset_USampler2DArray1_Float3_Int2_Float1,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -15672,7 +14835,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00g00B00D00B(
+constexpr const TFunction textureOffset_00g00B00D00B(
     BuiltInId::textureOffset_Sampler1D1_Float1_Int1_Float1,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -15681,7 +14844,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00o00B00D00B(
+constexpr const TFunction textureOffset_00o00B00D00B(
     BuiltInId::textureOffset_ISampler1D1_Float1_Int1_Float1,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -15690,7 +14853,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00t00B00D00B(
+constexpr const TFunction textureOffset_00t00B00D00B(
     BuiltInId::textureOffset_USampler1D1_Float1_Int1_Float1,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -15699,7 +14862,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00m20B00D00B(
+constexpr const TFunction textureOffset_00m20B00D00B(
     BuiltInId::textureOffset_Sampler1DShadow1_Float3_Int1_Float1,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -15708,7 +14871,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00h10B00D00B(
+constexpr const TFunction textureOffset_00h10B00D00B(
     BuiltInId::textureOffset_Sampler1DArray1_Float2_Int1_Float1,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -15717,7 +14880,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00p10B00D00B(
+constexpr const TFunction textureOffset_00p10B00D00B(
     BuiltInId::textureOffset_ISampler1DArray1_Float2_Int1_Float1,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -15726,7 +14889,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00u10B00D00B(
+constexpr const TFunction textureOffset_00u10B00D00B(
     BuiltInId::textureOffset_USampler1DArray1_Float2_Int1_Float1,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -15735,7 +14898,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureOffset_00i20B00D00B(
+constexpr const TFunction textureOffset_00i20B00D00B(
     BuiltInId::textureOffset_Sampler1DArrayShadow1_Float3_Int1_Float1,
     BuiltInName::textureOffset,
     TExtension::UNDEFINED,
@@ -15744,7 +14907,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00I20B10D00B(
+constexpr const TFunction textureProjOffset_00I20B10D00B(
     BuiltInId::textureProjOffset_Sampler2D1_Float3_Int2_Float1,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -15753,7 +14916,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00R20B10D00B(
+constexpr const TFunction textureProjOffset_00R20B10D00B(
     BuiltInId::textureProjOffset_ISampler2D1_Float3_Int2_Float1,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -15762,7 +14925,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00X20B10D00B(
+constexpr const TFunction textureProjOffset_00X20B10D00B(
     BuiltInId::textureProjOffset_USampler2D1_Float3_Int2_Float1,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -15771,7 +14934,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00I30B10D00B(
+constexpr const TFunction textureProjOffset_00I30B10D00B(
     BuiltInId::textureProjOffset_Sampler2D1_Float4_Int2_Float1,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -15780,7 +14943,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00R30B10D00B(
+constexpr const TFunction textureProjOffset_00R30B10D00B(
     BuiltInId::textureProjOffset_ISampler2D1_Float4_Int2_Float1,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -15789,7 +14952,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00X30B10D00B(
+constexpr const TFunction textureProjOffset_00X30B10D00B(
     BuiltInId::textureProjOffset_USampler2D1_Float4_Int2_Float1,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -15798,7 +14961,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00J30B20D00B(
+constexpr const TFunction textureProjOffset_00J30B20D00B(
     BuiltInId::textureProjOffset_Sampler3D1_Float4_Int3_Float1,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -15807,7 +14970,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00S30B20D00B(
+constexpr const TFunction textureProjOffset_00S30B20D00B(
     BuiltInId::textureProjOffset_ISampler3D1_Float4_Int3_Float1,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -15816,7 +14979,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00Y30B20D00B(
+constexpr const TFunction textureProjOffset_00Y30B20D00B(
     BuiltInId::textureProjOffset_USampler3D1_Float4_Int3_Float1,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -15825,7 +14988,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00d30B10D00B(
+constexpr const TFunction textureProjOffset_00d30B10D00B(
     BuiltInId::textureProjOffset_Sampler2DShadow1_Float4_Int2_Float1,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -15834,7 +14997,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00g10B00D00B(
+constexpr const TFunction textureProjOffset_00g10B00D00B(
     BuiltInId::textureProjOffset_Sampler1D1_Float2_Int1_Float1,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -15843,7 +15006,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00o10B00D00B(
+constexpr const TFunction textureProjOffset_00o10B00D00B(
     BuiltInId::textureProjOffset_ISampler1D1_Float2_Int1_Float1,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -15852,7 +15015,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00t10B00D00B(
+constexpr const TFunction textureProjOffset_00t10B00D00B(
     BuiltInId::textureProjOffset_USampler1D1_Float2_Int1_Float1,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -15861,7 +15024,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00g30B00D00B(
+constexpr const TFunction textureProjOffset_00g30B00D00B(
     BuiltInId::textureProjOffset_Sampler1D1_Float4_Int1_Float1,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -15870,7 +15033,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00o30B00D00B(
+constexpr const TFunction textureProjOffset_00o30B00D00B(
     BuiltInId::textureProjOffset_ISampler1D1_Float4_Int1_Float1,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -15879,7 +15042,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00t30B00D00B(
+constexpr const TFunction textureProjOffset_00t30B00D00B(
     BuiltInId::textureProjOffset_USampler1D1_Float4_Int1_Float1,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -15888,7 +15051,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProjOffset_00m30B00D00B(
+constexpr const TFunction textureProjOffset_00m30B00D00B(
     BuiltInId::textureProjOffset_Sampler1DShadow1_Float4_Int1_Float1,
     BuiltInName::textureProjOffset,
     TExtension::UNDEFINED,
@@ -15897,16 +15060,15 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture_00M10B(
-    BuiltInId::texture_SamplerExternalOES1_Float2,
-    BuiltInName::texture,
-    TExtension::OES_EGL_image_external_essl3,
-    BuiltInParameters::p00M10B00B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_textureProj_00M20B(
+constexpr const TFunction texture_00M10B(BuiltInId::texture_SamplerExternalOES1_Float2,
+                                         BuiltInName::texture,
+                                         TExtension::OES_EGL_image_external_essl3,
+                                         BuiltInParameters::p00M10B00B,
+                                         2,
+                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction textureProj_00M20B(
     BuiltInId::textureProj_SamplerExternalOES1_Float3,
     BuiltInName::textureProj,
     TExtension::OES_EGL_image_external_essl3,
@@ -15915,7 +15077,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00M30B(
+constexpr const TFunction textureProj_00M30B(
     BuiltInId::textureProj_SamplerExternalOES1_Float4,
     BuiltInName::textureProj,
     TExtension::OES_EGL_image_external_essl3,
@@ -15924,7 +15086,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSize_00M00D(
+constexpr const TFunction textureSize_00M00D(
     BuiltInId::textureSize_SamplerExternalOES1_Int1,
     BuiltInName::textureSize,
     TExtension::OES_EGL_image_external_essl3,
@@ -15933,7 +15095,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetch_00M10D00D(
+constexpr const TFunction texelFetch_00M10D00D(
     BuiltInId::texelFetch_SamplerExternalOES1_Int2_Int1,
     BuiltInName::texelFetch,
     TExtension::OES_EGL_image_external_essl3,
@@ -15942,16 +15104,15 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texture_00N10B(
-    BuiltInId::texture_SamplerExternal2DY2YEXT1_Float2,
-    BuiltInName::texture,
-    TExtension::EXT_YUV_target,
-    BuiltInParameters::p00N10B00B,
-    2,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_textureProj_00N20B(
+constexpr const TFunction texture_00N10B(BuiltInId::texture_SamplerExternal2DY2YEXT1_Float2,
+                                         BuiltInName::texture,
+                                         TExtension::EXT_YUV_target,
+                                         BuiltInParameters::p00N10B00B,
+                                         2,
+                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction textureProj_00N20B(
     BuiltInId::textureProj_SamplerExternal2DY2YEXT1_Float3,
     BuiltInName::textureProj,
     TExtension::EXT_YUV_target,
@@ -15960,7 +15121,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureProj_00N30B(
+constexpr const TFunction textureProj_00N30B(
     BuiltInId::textureProj_SamplerExternal2DY2YEXT1_Float4,
     BuiltInName::textureProj,
     TExtension::EXT_YUV_target,
@@ -15969,7 +15130,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_rgb_2_yuv_20B00H(
+constexpr const TFunction rgb_2_yuv_20B00H(
     BuiltInId::rgb_2_yuv_Float3_YuvCscStandardEXT1,
     BuiltInName::rgb_2_yuv,
     TExtension::EXT_YUV_target,
@@ -15978,7 +15139,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_yuv_2_rgb_20B00H(
+constexpr const TFunction yuv_2_rgb_20B00H(
     BuiltInId::yuv_2_rgb_Float3_YuvCscStandardEXT1,
     BuiltInName::yuv_2_rgb,
     TExtension::EXT_YUV_target,
@@ -15987,7 +15148,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureSize_00N00D(
+constexpr const TFunction textureSize_00N00D(
     BuiltInId::textureSize_SamplerExternal2DY2YEXT1_Int1,
     BuiltInName::textureSize,
     TExtension::EXT_YUV_target,
@@ -15996,7 +15157,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_texelFetch_00N10D00D(
+constexpr const TFunction texelFetch_00N10D00D(
     BuiltInId::texelFetch_SamplerExternal2DY2YEXT1_Int2_Int1,
     BuiltInName::texelFetch,
     TExtension::EXT_YUV_target,
@@ -16005,7 +15166,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00I10B(
+constexpr const TFunction textureGather_00I10B(
     BuiltInId::textureGather_Sampler2D1_Float2,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -16014,7 +15175,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00R10B(
+constexpr const TFunction textureGather_00R10B(
     BuiltInId::textureGather_ISampler2D1_Float2,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -16023,7 +15184,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00X10B(
+constexpr const TFunction textureGather_00X10B(
     BuiltInId::textureGather_USampler2D1_Float2,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -16032,7 +15193,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00I10B00D(
+constexpr const TFunction textureGather_00I10B00D(
     BuiltInId::textureGather_Sampler2D1_Float2_Int1,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -16041,7 +15202,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00R10B00D(
+constexpr const TFunction textureGather_00R10B00D(
     BuiltInId::textureGather_ISampler2D1_Float2_Int1,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -16050,7 +15211,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00X10B00D(
+constexpr const TFunction textureGather_00X10B00D(
     BuiltInId::textureGather_USampler2D1_Float2_Int1,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -16059,7 +15220,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00L20B(
+constexpr const TFunction textureGather_00L20B(
     BuiltInId::textureGather_Sampler2DArray1_Float3,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -16068,7 +15229,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00U20B(
+constexpr const TFunction textureGather_00U20B(
     BuiltInId::textureGather_ISampler2DArray1_Float3,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -16077,7 +15238,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00a20B(
+constexpr const TFunction textureGather_00a20B(
     BuiltInId::textureGather_USampler2DArray1_Float3,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -16086,7 +15247,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00L20B00D(
+constexpr const TFunction textureGather_00L20B00D(
     BuiltInId::textureGather_Sampler2DArray1_Float3_Int1,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -16095,7 +15256,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00U20B00D(
+constexpr const TFunction textureGather_00U20B00D(
     BuiltInId::textureGather_ISampler2DArray1_Float3_Int1,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -16104,7 +15265,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00a20B00D(
+constexpr const TFunction textureGather_00a20B00D(
     BuiltInId::textureGather_USampler2DArray1_Float3_Int1,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -16113,7 +15274,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00K20B(
+constexpr const TFunction textureGather_00K20B(
     BuiltInId::textureGather_SamplerCube1_Float3,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -16122,7 +15283,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00T20B(
+constexpr const TFunction textureGather_00T20B(
     BuiltInId::textureGather_ISamplerCube1_Float3,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -16131,7 +15292,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00Z20B(
+constexpr const TFunction textureGather_00Z20B(
     BuiltInId::textureGather_USamplerCube1_Float3,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -16140,7 +15301,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00K20B00D(
+constexpr const TFunction textureGather_00K20B00D(
     BuiltInId::textureGather_SamplerCube1_Float3_Int1,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -16149,7 +15310,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00T20B00D(
+constexpr const TFunction textureGather_00T20B00D(
     BuiltInId::textureGather_ISamplerCube1_Float3_Int1,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -16158,7 +15319,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00Z20B00D(
+constexpr const TFunction textureGather_00Z20B00D(
     BuiltInId::textureGather_USamplerCube1_Float3_Int1,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -16167,7 +15328,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00k30B(
+constexpr const TFunction textureGather_00k30B(
     BuiltInId::textureGather_SamplerCubeArray1_Float4,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -16176,7 +15337,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00s30B(
+constexpr const TFunction textureGather_00s30B(
     BuiltInId::textureGather_ISamplerCubeArray1_Float4,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -16185,7 +15346,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00x30B(
+constexpr const TFunction textureGather_00x30B(
     BuiltInId::textureGather_USamplerCubeArray1_Float4,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -16194,7 +15355,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00k30B00D(
+constexpr const TFunction textureGather_00k30B00D(
     BuiltInId::textureGather_SamplerCubeArray1_Float4_Int1,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -16203,7 +15364,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00s30B00D(
+constexpr const TFunction textureGather_00s30B00D(
     BuiltInId::textureGather_ISamplerCubeArray1_Float4_Int1,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -16212,7 +15373,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00x30B00D(
+constexpr const TFunction textureGather_00x30B00D(
     BuiltInId::textureGather_USamplerCubeArray1_Float4_Int1,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -16221,7 +15382,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00O20B(
+constexpr const TFunction textureGather_00O20B(
     BuiltInId::textureGather_Sampler2DRect1_Float3,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -16230,7 +15391,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00q20B(
+constexpr const TFunction textureGather_00q20B(
     BuiltInId::textureGather_ISampler2DRect1_Float3,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -16239,7 +15400,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00v20B(
+constexpr const TFunction textureGather_00v20B(
     BuiltInId::textureGather_USampler2DRect1_Float3,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -16248,7 +15409,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00O20B00D(
+constexpr const TFunction textureGather_00O20B00D(
     BuiltInId::textureGather_Sampler2DRect1_Float3_Int1,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -16257,7 +15418,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00q20B00D(
+constexpr const TFunction textureGather_00q20B00D(
     BuiltInId::textureGather_ISampler2DRect1_Float3_Int1,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -16266,7 +15427,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00v20B00D(
+constexpr const TFunction textureGather_00v20B00D(
     BuiltInId::textureGather_USampler2DRect1_Float3_Int1,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -16275,7 +15436,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00d10B(
+constexpr const TFunction textureGather_00d10B(
     BuiltInId::textureGather_Sampler2DShadow1_Float2,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -16284,7 +15445,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00d10B00B(
+constexpr const TFunction textureGather_00d10B00B(
     BuiltInId::textureGather_Sampler2DShadow1_Float2_Float1,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -16293,7 +15454,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00f20B(
+constexpr const TFunction textureGather_00f20B(
     BuiltInId::textureGather_Sampler2DArrayShadow1_Float3,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -16302,7 +15463,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00f20B00B(
+constexpr const TFunction textureGather_00f20B00B(
     BuiltInId::textureGather_Sampler2DArrayShadow1_Float3_Float1,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -16311,7 +15472,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00e20B(
+constexpr const TFunction textureGather_00e20B(
     BuiltInId::textureGather_SamplerCubeShadow1_Float3,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -16320,7 +15481,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00e20B00B(
+constexpr const TFunction textureGather_00e20B00B(
     BuiltInId::textureGather_SamplerCubeShadow1_Float3_Float1,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -16329,7 +15490,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00l30B00B(
+constexpr const TFunction textureGather_00l30B00B(
     BuiltInId::textureGather_SamplerCubeArrayShadow1_Float4_Float1,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -16338,7 +15499,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGather_00n10B00B(
+constexpr const TFunction textureGather_00n10B00B(
     BuiltInId::textureGather_Sampler2DRectShadow1_Float2_Float1,
     BuiltInName::textureGather,
     TExtension::UNDEFINED,
@@ -16347,7 +15508,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffset_00I10B10D(
+constexpr const TFunction textureGatherOffset_00I10B10D(
     BuiltInId::textureGatherOffset_Sampler2D1_Float2_Int2,
     BuiltInName::textureGatherOffset,
     TExtension::UNDEFINED,
@@ -16356,7 +15517,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffset_00R10B10D(
+constexpr const TFunction textureGatherOffset_00R10B10D(
     BuiltInId::textureGatherOffset_ISampler2D1_Float2_Int2,
     BuiltInName::textureGatherOffset,
     TExtension::UNDEFINED,
@@ -16365,7 +15526,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffset_00X10B10D(
+constexpr const TFunction textureGatherOffset_00X10B10D(
     BuiltInId::textureGatherOffset_USampler2D1_Float2_Int2,
     BuiltInName::textureGatherOffset,
     TExtension::UNDEFINED,
@@ -16374,7 +15535,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffset_00I10B10D00D(
+constexpr const TFunction textureGatherOffset_00I10B10D00D(
     BuiltInId::textureGatherOffset_Sampler2D1_Float2_Int2_Int1,
     BuiltInName::textureGatherOffset,
     TExtension::UNDEFINED,
@@ -16383,7 +15544,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffset_00R10B10D00D(
+constexpr const TFunction textureGatherOffset_00R10B10D00D(
     BuiltInId::textureGatherOffset_ISampler2D1_Float2_Int2_Int1,
     BuiltInName::textureGatherOffset,
     TExtension::UNDEFINED,
@@ -16392,7 +15553,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffset_00X10B10D00D(
+constexpr const TFunction textureGatherOffset_00X10B10D00D(
     BuiltInId::textureGatherOffset_USampler2D1_Float2_Int2_Int1,
     BuiltInName::textureGatherOffset,
     TExtension::UNDEFINED,
@@ -16401,7 +15562,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffset_00L20B10D(
+constexpr const TFunction textureGatherOffset_00L20B10D(
     BuiltInId::textureGatherOffset_Sampler2DArray1_Float3_Int2,
     BuiltInName::textureGatherOffset,
     TExtension::UNDEFINED,
@@ -16410,7 +15571,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffset_00U20B10D(
+constexpr const TFunction textureGatherOffset_00U20B10D(
     BuiltInId::textureGatherOffset_ISampler2DArray1_Float3_Int2,
     BuiltInName::textureGatherOffset,
     TExtension::UNDEFINED,
@@ -16419,7 +15580,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffset_00a20B10D(
+constexpr const TFunction textureGatherOffset_00a20B10D(
     BuiltInId::textureGatherOffset_USampler2DArray1_Float3_Int2,
     BuiltInName::textureGatherOffset,
     TExtension::UNDEFINED,
@@ -16428,7 +15589,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffset_00L20B10D00D(
+constexpr const TFunction textureGatherOffset_00L20B10D00D(
     BuiltInId::textureGatherOffset_Sampler2DArray1_Float3_Int2_Int1,
     BuiltInName::textureGatherOffset,
     TExtension::UNDEFINED,
@@ -16437,7 +15598,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffset_00U20B10D00D(
+constexpr const TFunction textureGatherOffset_00U20B10D00D(
     BuiltInId::textureGatherOffset_ISampler2DArray1_Float3_Int2_Int1,
     BuiltInName::textureGatherOffset,
     TExtension::UNDEFINED,
@@ -16446,7 +15607,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffset_00a20B10D00D(
+constexpr const TFunction textureGatherOffset_00a20B10D00D(
     BuiltInId::textureGatherOffset_USampler2DArray1_Float3_Int2_Int1,
     BuiltInName::textureGatherOffset,
     TExtension::UNDEFINED,
@@ -16455,7 +15616,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffset_00d10B00B10D(
+constexpr const TFunction textureGatherOffset_00d10B00B10D(
     BuiltInId::textureGatherOffset_Sampler2DShadow1_Float2_Float1_Int2,
     BuiltInName::textureGatherOffset,
     TExtension::UNDEFINED,
@@ -16464,7 +15625,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffset_00f20B00B10D(
+constexpr const TFunction textureGatherOffset_00f20B00B10D(
     BuiltInId::textureGatherOffset_Sampler2DArrayShadow1_Float3_Float1_Int2,
     BuiltInName::textureGatherOffset,
     TExtension::UNDEFINED,
@@ -16473,7 +15634,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffset_00O10B10D(
+constexpr const TFunction textureGatherOffset_00O10B10D(
     BuiltInId::textureGatherOffset_Sampler2DRect1_Float2_Int2,
     BuiltInName::textureGatherOffset,
     TExtension::UNDEFINED,
@@ -16482,7 +15643,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffset_00q10B10D(
+constexpr const TFunction textureGatherOffset_00q10B10D(
     BuiltInId::textureGatherOffset_ISampler2DRect1_Float2_Int2,
     BuiltInName::textureGatherOffset,
     TExtension::UNDEFINED,
@@ -16491,7 +15652,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffset_00v10B10D(
+constexpr const TFunction textureGatherOffset_00v10B10D(
     BuiltInId::textureGatherOffset_USampler2DRect1_Float2_Int2,
     BuiltInName::textureGatherOffset,
     TExtension::UNDEFINED,
@@ -16500,7 +15661,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffset_00O10B10D00D(
+constexpr const TFunction textureGatherOffset_00O10B10D00D(
     BuiltInId::textureGatherOffset_Sampler2DRect1_Float2_Int2_Int1,
     BuiltInName::textureGatherOffset,
     TExtension::UNDEFINED,
@@ -16509,7 +15670,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffset_00q10B10D00D(
+constexpr const TFunction textureGatherOffset_00q10B10D00D(
     BuiltInId::textureGatherOffset_ISampler2DRect1_Float2_Int2_Int1,
     BuiltInName::textureGatherOffset,
     TExtension::UNDEFINED,
@@ -16518,7 +15679,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffset_00v10B10D00D(
+constexpr const TFunction textureGatherOffset_00v10B10D00D(
     BuiltInId::textureGatherOffset_USampler2DRect1_Float2_Int2_Int1,
     BuiltInName::textureGatherOffset,
     TExtension::UNDEFINED,
@@ -16527,7 +15688,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffset_00n10B00B10D(
+constexpr const TFunction textureGatherOffset_00n10B00B10D(
     BuiltInId::textureGatherOffset_Sampler2DRectShadow1_Float2_Float1_Int2,
     BuiltInName::textureGatherOffset,
     TExtension::UNDEFINED,
@@ -16536,7 +15697,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffsets_00I10B70D(
+constexpr const TFunction textureGatherOffsets_00I10B70D(
     BuiltInId::textureGatherOffsets_Sampler2D1_Float2_Int4x2,
     BuiltInName::textureGatherOffsets,
     TExtension::UNDEFINED,
@@ -16545,7 +15706,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffsets_00R10B70D(
+constexpr const TFunction textureGatherOffsets_00R10B70D(
     BuiltInId::textureGatherOffsets_ISampler2D1_Float2_Int4x2,
     BuiltInName::textureGatherOffsets,
     TExtension::UNDEFINED,
@@ -16554,7 +15715,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffsets_00X10B70D(
+constexpr const TFunction textureGatherOffsets_00X10B70D(
     BuiltInId::textureGatherOffsets_USampler2D1_Float2_Int4x2,
     BuiltInName::textureGatherOffsets,
     TExtension::UNDEFINED,
@@ -16563,7 +15724,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffsets_00I10B70D00D(
+constexpr const TFunction textureGatherOffsets_00I10B70D00D(
     BuiltInId::textureGatherOffsets_Sampler2D1_Float2_Int4x2_Int1,
     BuiltInName::textureGatherOffsets,
     TExtension::UNDEFINED,
@@ -16572,7 +15733,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffsets_00R10B70D00D(
+constexpr const TFunction textureGatherOffsets_00R10B70D00D(
     BuiltInId::textureGatherOffsets_ISampler2D1_Float2_Int4x2_Int1,
     BuiltInName::textureGatherOffsets,
     TExtension::UNDEFINED,
@@ -16581,7 +15742,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffsets_00X10B70D00D(
+constexpr const TFunction textureGatherOffsets_00X10B70D00D(
     BuiltInId::textureGatherOffsets_USampler2D1_Float2_Int4x2_Int1,
     BuiltInName::textureGatherOffsets,
     TExtension::UNDEFINED,
@@ -16590,7 +15751,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffsets_00L20B70D(
+constexpr const TFunction textureGatherOffsets_00L20B70D(
     BuiltInId::textureGatherOffsets_Sampler2DArray1_Float3_Int4x2,
     BuiltInName::textureGatherOffsets,
     TExtension::UNDEFINED,
@@ -16599,7 +15760,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffsets_00U20B70D(
+constexpr const TFunction textureGatherOffsets_00U20B70D(
     BuiltInId::textureGatherOffsets_ISampler2DArray1_Float3_Int4x2,
     BuiltInName::textureGatherOffsets,
     TExtension::UNDEFINED,
@@ -16608,7 +15769,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffsets_00a20B70D(
+constexpr const TFunction textureGatherOffsets_00a20B70D(
     BuiltInId::textureGatherOffsets_USampler2DArray1_Float3_Int4x2,
     BuiltInName::textureGatherOffsets,
     TExtension::UNDEFINED,
@@ -16617,7 +15778,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffsets_00L20B70D00D(
+constexpr const TFunction textureGatherOffsets_00L20B70D00D(
     BuiltInId::textureGatherOffsets_Sampler2DArray1_Float3_Int4x2_Int1,
     BuiltInName::textureGatherOffsets,
     TExtension::UNDEFINED,
@@ -16626,7 +15787,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffsets_00U20B70D00D(
+constexpr const TFunction textureGatherOffsets_00U20B70D00D(
     BuiltInId::textureGatherOffsets_ISampler2DArray1_Float3_Int4x2_Int1,
     BuiltInName::textureGatherOffsets,
     TExtension::UNDEFINED,
@@ -16635,7 +15796,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffsets_00a20B70D00D(
+constexpr const TFunction textureGatherOffsets_00a20B70D00D(
     BuiltInId::textureGatherOffsets_USampler2DArray1_Float3_Int4x2_Int1,
     BuiltInName::textureGatherOffsets,
     TExtension::UNDEFINED,
@@ -16644,7 +15805,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffsets_00O10B70D(
+constexpr const TFunction textureGatherOffsets_00O10B70D(
     BuiltInId::textureGatherOffsets_Sampler2DRect1_Float2_Int4x2,
     BuiltInName::textureGatherOffsets,
     TExtension::UNDEFINED,
@@ -16653,7 +15814,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffsets_00q10B70D(
+constexpr const TFunction textureGatherOffsets_00q10B70D(
     BuiltInId::textureGatherOffsets_ISampler2DRect1_Float2_Int4x2,
     BuiltInName::textureGatherOffsets,
     TExtension::UNDEFINED,
@@ -16662,7 +15823,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffsets_00v10B70D(
+constexpr const TFunction textureGatherOffsets_00v10B70D(
     BuiltInId::textureGatherOffsets_USampler2DRect1_Float2_Int4x2,
     BuiltInName::textureGatherOffsets,
     TExtension::UNDEFINED,
@@ -16671,7 +15832,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffsets_00O10B70D00D(
+constexpr const TFunction textureGatherOffsets_00O10B70D00D(
     BuiltInId::textureGatherOffsets_Sampler2DRect1_Float2_Int4x2_Int1,
     BuiltInName::textureGatherOffsets,
     TExtension::UNDEFINED,
@@ -16680,7 +15841,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffsets_00q10B70D00D(
+constexpr const TFunction textureGatherOffsets_00q10B70D00D(
     BuiltInId::textureGatherOffsets_ISampler2DRect1_Float2_Int4x2_Int1,
     BuiltInName::textureGatherOffsets,
     TExtension::UNDEFINED,
@@ -16689,7 +15850,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffsets_00v10B70D00D(
+constexpr const TFunction textureGatherOffsets_00v10B70D00D(
     BuiltInId::textureGatherOffsets_USampler2DRect1_Float2_Int4x2_Int1,
     BuiltInName::textureGatherOffsets,
     TExtension::UNDEFINED,
@@ -16698,7 +15859,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffsets_00d10B00B70D(
+constexpr const TFunction textureGatherOffsets_00d10B00B70D(
     BuiltInId::textureGatherOffsets_Sampler2DShadow1_Float2_Float1_Int4x2,
     BuiltInName::textureGatherOffsets,
     TExtension::UNDEFINED,
@@ -16707,7 +15868,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffsets_00f20B00B70D(
+constexpr const TFunction textureGatherOffsets_00f20B00B70D(
     BuiltInId::textureGatherOffsets_Sampler2DArrayShadow1_Float3_Float1_Int4x2,
     BuiltInName::textureGatherOffsets,
     TExtension::UNDEFINED,
@@ -16716,7 +15877,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_textureGatherOffsets_00n10B00B70D(
+constexpr const TFunction textureGatherOffsets_00n10B00B70D(
     BuiltInId::textureGatherOffsets_Sampler2DRectShadow1_Float2_Float1_Int4x2,
     BuiltInName::textureGatherOffsets,
     TExtension::UNDEFINED,
@@ -16725,295 +15886,263 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_dFdx_00B(
-    BuiltInId::dFdx_Float1,
-    BuiltInName::dFdx,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpDFdx,
-    false);
-constexpr const TFunction function_dFdx_10B(
-    BuiltInId::dFdx_Float2,
-    BuiltInName::dFdx,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B_o_10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpDFdx,
-    false);
-constexpr const TFunction function_dFdx_20B(
-    BuiltInId::dFdx_Float3,
-    BuiltInName::dFdx,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpDFdx,
-    false);
-constexpr const TFunction function_dFdx_30B(
-    BuiltInId::dFdx_Float4,
-    BuiltInName::dFdx,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30D,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpDFdx,
-    false);
-constexpr const TFunction function_dFdy_00B(
-    BuiltInId::dFdy_Float1,
-    BuiltInName::dFdy,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpDFdy,
-    false);
-constexpr const TFunction function_dFdy_10B(
-    BuiltInId::dFdy_Float2,
-    BuiltInName::dFdy,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B_o_10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpDFdy,
-    false);
-constexpr const TFunction function_dFdy_20B(
-    BuiltInId::dFdy_Float3,
-    BuiltInName::dFdy,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpDFdy,
-    false);
-constexpr const TFunction function_dFdy_30B(
-    BuiltInId::dFdy_Float4,
-    BuiltInName::dFdy,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30D,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpDFdy,
-    false);
-constexpr const TFunction function_fwidth_00B(
-    BuiltInId::fwidth_Float1,
-    BuiltInName::fwidth,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpFwidth,
-    false);
-constexpr const TFunction function_fwidth_10B(
-    BuiltInId::fwidth_Float2,
-    BuiltInName::fwidth,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B_o_10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpFwidth,
-    false);
-constexpr const TFunction function_fwidth_20B(
-    BuiltInId::fwidth_Float3,
-    BuiltInName::fwidth,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpFwidth,
-    false);
-constexpr const TFunction function_fwidth_30B(
-    BuiltInId::fwidth_Float4,
-    BuiltInName::fwidth,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30D,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpFwidth,
-    false);
-constexpr const TFunction function_dFdxFine_00B(
-    BuiltInId::dFdxFine_Float1,
-    BuiltInName::dFdxFine,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_dFdxFine_10B(
-    BuiltInId::dFdxFine_Float2,
-    BuiltInName::dFdxFine,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B_o_10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_dFdxFine_20B(
-    BuiltInId::dFdxFine_Float3,
-    BuiltInName::dFdxFine,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_dFdxFine_30B(
-    BuiltInId::dFdxFine_Float4,
-    BuiltInName::dFdxFine,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30D,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_dFdyFine_00B(
-    BuiltInId::dFdyFine_Float1,
-    BuiltInName::dFdyFine,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_dFdyFine_10B(
-    BuiltInId::dFdyFine_Float2,
-    BuiltInName::dFdyFine,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B_o_10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_dFdyFine_20B(
-    BuiltInId::dFdyFine_Float3,
-    BuiltInName::dFdyFine,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_dFdyFine_30B(
-    BuiltInId::dFdyFine_Float4,
-    BuiltInName::dFdyFine,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30D,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_dFdxCoarse_00B(
-    BuiltInId::dFdxCoarse_Float1,
-    BuiltInName::dFdxCoarse,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_dFdxCoarse_10B(
-    BuiltInId::dFdxCoarse_Float2,
-    BuiltInName::dFdxCoarse,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B_o_10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_dFdxCoarse_20B(
-    BuiltInId::dFdxCoarse_Float3,
-    BuiltInName::dFdxCoarse,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_dFdxCoarse_30B(
-    BuiltInId::dFdxCoarse_Float4,
-    BuiltInName::dFdxCoarse,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30D,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_dFdyCoarse_00B(
-    BuiltInId::dFdyCoarse_Float1,
-    BuiltInName::dFdyCoarse,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_dFdyCoarse_10B(
-    BuiltInId::dFdyCoarse_Float2,
-    BuiltInName::dFdyCoarse,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B_o_10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_dFdyCoarse_20B(
-    BuiltInId::dFdyCoarse_Float3,
-    BuiltInName::dFdyCoarse,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_dFdyCoarse_30B(
-    BuiltInId::dFdyCoarse_Float4,
-    BuiltInName::dFdyCoarse,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30D,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_fwidthFine_00B(
-    BuiltInId::fwidthFine_Float1,
-    BuiltInName::fwidthFine,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_fwidthFine_10B(
-    BuiltInId::fwidthFine_Float2,
-    BuiltInName::fwidthFine,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B_o_10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_fwidthFine_20B(
-    BuiltInId::fwidthFine_Float3,
-    BuiltInName::fwidthFine,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_fwidthFine_30B(
-    BuiltInId::fwidthFine_Float4,
-    BuiltInName::fwidthFine,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30D,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_fwidthCoarse_00B(
+constexpr const TFunction dFdx_00B(BuiltInId::dFdx_Float1,
+                                   BuiltInName::dFdx,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p00B00B30B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                   EOpDFdx,
+                                   false);
+constexpr const TFunction dFdx_10B(BuiltInId::dFdx_Float2,
+                                   BuiltInName::dFdx,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p10B_o_10B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                   EOpDFdx,
+                                   false);
+constexpr const TFunction dFdx_20B(BuiltInId::dFdx_Float3,
+                                   BuiltInName::dFdx,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p20B20B00B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                   EOpDFdx,
+                                   false);
+constexpr const TFunction dFdx_30B(BuiltInId::dFdx_Float4,
+                                   BuiltInName::dFdx,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p30B30D,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                   EOpDFdx,
+                                   false);
+constexpr const TFunction dFdy_00B(BuiltInId::dFdy_Float1,
+                                   BuiltInName::dFdy,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p00B00B30B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                   EOpDFdy,
+                                   false);
+constexpr const TFunction dFdy_10B(BuiltInId::dFdy_Float2,
+                                   BuiltInName::dFdy,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p10B_o_10B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                   EOpDFdy,
+                                   false);
+constexpr const TFunction dFdy_20B(BuiltInId::dFdy_Float3,
+                                   BuiltInName::dFdy,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p20B20B00B,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                   EOpDFdy,
+                                   false);
+constexpr const TFunction dFdy_30B(BuiltInId::dFdy_Float4,
+                                   BuiltInName::dFdy,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::p30B30D,
+                                   1,
+                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                   EOpDFdy,
+                                   false);
+constexpr const TFunction fwidth_00B(BuiltInId::fwidth_Float1,
+                                     BuiltInName::fwidth,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p00B00B30B,
+                                     1,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                     EOpFwidth,
+                                     false);
+constexpr const TFunction fwidth_10B(BuiltInId::fwidth_Float2,
+                                     BuiltInName::fwidth,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p10B_o_10B,
+                                     1,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                     EOpFwidth,
+                                     false);
+constexpr const TFunction fwidth_20B(BuiltInId::fwidth_Float3,
+                                     BuiltInName::fwidth,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p20B20B00B,
+                                     1,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                     EOpFwidth,
+                                     false);
+constexpr const TFunction fwidth_30B(BuiltInId::fwidth_Float4,
+                                     BuiltInName::fwidth,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p30B30D,
+                                     1,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                     EOpFwidth,
+                                     false);
+constexpr const TFunction dFdxFine_00B(BuiltInId::dFdxFine_Float1,
+                                       BuiltInName::dFdxFine,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p00B00B30B,
+                                       1,
+                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                       EOpCallBuiltInFunction,
+                                       false);
+constexpr const TFunction dFdxFine_10B(BuiltInId::dFdxFine_Float2,
+                                       BuiltInName::dFdxFine,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p10B_o_10B,
+                                       1,
+                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                       EOpCallBuiltInFunction,
+                                       false);
+constexpr const TFunction dFdxFine_20B(BuiltInId::dFdxFine_Float3,
+                                       BuiltInName::dFdxFine,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p20B20B00B,
+                                       1,
+                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                       EOpCallBuiltInFunction,
+                                       false);
+constexpr const TFunction dFdxFine_30B(BuiltInId::dFdxFine_Float4,
+                                       BuiltInName::dFdxFine,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p30B30D,
+                                       1,
+                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                       EOpCallBuiltInFunction,
+                                       false);
+constexpr const TFunction dFdyFine_00B(BuiltInId::dFdyFine_Float1,
+                                       BuiltInName::dFdyFine,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p00B00B30B,
+                                       1,
+                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                       EOpCallBuiltInFunction,
+                                       false);
+constexpr const TFunction dFdyFine_10B(BuiltInId::dFdyFine_Float2,
+                                       BuiltInName::dFdyFine,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p10B_o_10B,
+                                       1,
+                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                       EOpCallBuiltInFunction,
+                                       false);
+constexpr const TFunction dFdyFine_20B(BuiltInId::dFdyFine_Float3,
+                                       BuiltInName::dFdyFine,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p20B20B00B,
+                                       1,
+                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                       EOpCallBuiltInFunction,
+                                       false);
+constexpr const TFunction dFdyFine_30B(BuiltInId::dFdyFine_Float4,
+                                       BuiltInName::dFdyFine,
+                                       TExtension::UNDEFINED,
+                                       BuiltInParameters::p30B30D,
+                                       1,
+                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                       EOpCallBuiltInFunction,
+                                       false);
+constexpr const TFunction dFdxCoarse_00B(BuiltInId::dFdxCoarse_Float1,
+                                         BuiltInName::dFdxCoarse,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p00B00B30B,
+                                         1,
+                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction dFdxCoarse_10B(BuiltInId::dFdxCoarse_Float2,
+                                         BuiltInName::dFdxCoarse,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p10B_o_10B,
+                                         1,
+                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction dFdxCoarse_20B(BuiltInId::dFdxCoarse_Float3,
+                                         BuiltInName::dFdxCoarse,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p20B20B00B,
+                                         1,
+                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction dFdxCoarse_30B(BuiltInId::dFdxCoarse_Float4,
+                                         BuiltInName::dFdxCoarse,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p30B30D,
+                                         1,
+                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction dFdyCoarse_00B(BuiltInId::dFdyCoarse_Float1,
+                                         BuiltInName::dFdyCoarse,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p00B00B30B,
+                                         1,
+                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction dFdyCoarse_10B(BuiltInId::dFdyCoarse_Float2,
+                                         BuiltInName::dFdyCoarse,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p10B_o_10B,
+                                         1,
+                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction dFdyCoarse_20B(BuiltInId::dFdyCoarse_Float3,
+                                         BuiltInName::dFdyCoarse,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p20B20B00B,
+                                         1,
+                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction dFdyCoarse_30B(BuiltInId::dFdyCoarse_Float4,
+                                         BuiltInName::dFdyCoarse,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p30B30D,
+                                         1,
+                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction fwidthFine_00B(BuiltInId::fwidthFine_Float1,
+                                         BuiltInName::fwidthFine,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p00B00B30B,
+                                         1,
+                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction fwidthFine_10B(BuiltInId::fwidthFine_Float2,
+                                         BuiltInName::fwidthFine,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p10B_o_10B,
+                                         1,
+                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction fwidthFine_20B(BuiltInId::fwidthFine_Float3,
+                                         BuiltInName::fwidthFine,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p20B20B00B,
+                                         1,
+                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction fwidthFine_30B(BuiltInId::fwidthFine_Float4,
+                                         BuiltInName::fwidthFine,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::p30B30D,
+                                         1,
+                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                         EOpCallBuiltInFunction,
+                                         false);
+constexpr const TFunction fwidthCoarse_00B(
     BuiltInId::fwidthCoarse_Float1,
     BuiltInName::fwidthCoarse,
     TExtension::UNDEFINED,
@@ -17022,7 +16151,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_fwidthCoarse_10B(
+constexpr const TFunction fwidthCoarse_10B(
     BuiltInId::fwidthCoarse_Float2,
     BuiltInName::fwidthCoarse,
     TExtension::UNDEFINED,
@@ -17031,7 +16160,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_fwidthCoarse_20B(
+constexpr const TFunction fwidthCoarse_20B(
     BuiltInId::fwidthCoarse_Float3,
     BuiltInName::fwidthCoarse,
     TExtension::UNDEFINED,
@@ -17040,7 +16169,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_fwidthCoarse_30B(
+constexpr const TFunction fwidthCoarse_30B(
     BuiltInId::fwidthCoarse_Float4,
     BuiltInName::fwidthCoarse,
     TExtension::UNDEFINED,
@@ -17049,7 +16178,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_interpolateAtCentroid_00B(
+constexpr const TFunction interpolateAtCentroid_00B(
     BuiltInId::interpolateAtCentroid_Float1,
     BuiltInName::interpolateAtCentroid,
     TExtension::UNDEFINED,
@@ -17058,7 +16187,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_interpolateAtCentroid_10B(
+constexpr const TFunction interpolateAtCentroid_10B(
     BuiltInId::interpolateAtCentroid_Float2,
     BuiltInName::interpolateAtCentroid,
     TExtension::UNDEFINED,
@@ -17067,7 +16196,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_interpolateAtCentroid_20B(
+constexpr const TFunction interpolateAtCentroid_20B(
     BuiltInId::interpolateAtCentroid_Float3,
     BuiltInName::interpolateAtCentroid,
     TExtension::UNDEFINED,
@@ -17076,7 +16205,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_interpolateAtCentroid_30B(
+constexpr const TFunction interpolateAtCentroid_30B(
     BuiltInId::interpolateAtCentroid_Float4,
     BuiltInName::interpolateAtCentroid,
     TExtension::UNDEFINED,
@@ -17085,7 +16214,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_interpolateAtSample_00B00D(
+constexpr const TFunction interpolateAtSample_00B00D(
     BuiltInId::interpolateAtSample_Float1_Int1,
     BuiltInName::interpolateAtSample,
     TExtension::UNDEFINED,
@@ -17094,7 +16223,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_interpolateAtSample_10B00D(
+constexpr const TFunction interpolateAtSample_10B00D(
     BuiltInId::interpolateAtSample_Float2_Int1,
     BuiltInName::interpolateAtSample,
     TExtension::UNDEFINED,
@@ -17103,7 +16232,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_interpolateAtSample_20B00D(
+constexpr const TFunction interpolateAtSample_20B00D(
     BuiltInId::interpolateAtSample_Float3_Int1,
     BuiltInName::interpolateAtSample,
     TExtension::UNDEFINED,
@@ -17112,7 +16241,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_interpolateAtSample_30B00D(
+constexpr const TFunction interpolateAtSample_30B00D(
     BuiltInId::interpolateAtSample_Float4_Int1,
     BuiltInName::interpolateAtSample,
     TExtension::UNDEFINED,
@@ -17121,7 +16250,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_interpolateAtOffset_00B10B(
+constexpr const TFunction interpolateAtOffset_00B10B(
     BuiltInId::interpolateAtOffset_Float1_Float2,
     BuiltInName::interpolateAtOffset,
     TExtension::UNDEFINED,
@@ -17130,7 +16259,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_interpolateAtOffset_10B10B(
+constexpr const TFunction interpolateAtOffset_10B10B(
     BuiltInId::interpolateAtOffset_Float2_Float2,
     BuiltInName::interpolateAtOffset,
     TExtension::UNDEFINED,
@@ -17139,7 +16268,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_interpolateAtOffset_20B10B(
+constexpr const TFunction interpolateAtOffset_20B10B(
     BuiltInId::interpolateAtOffset_Float3_Float2,
     BuiltInName::interpolateAtOffset,
     TExtension::UNDEFINED,
@@ -17148,7 +16277,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_interpolateAtOffset_30B10B(
+constexpr const TFunction interpolateAtOffset_30B10B(
     BuiltInId::interpolateAtOffset_Float4_Float2,
     BuiltInName::interpolateAtOffset,
     TExtension::UNDEFINED,
@@ -17157,7 +16286,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_atomicCounter_00G(
+constexpr const TFunction atomicCounter_00G(
     BuiltInId::atomicCounter_AtomicCounter1,
     BuiltInName::atomicCounter,
     TExtension::UNDEFINED,
@@ -17166,7 +16295,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_atomicCounterIncrement_00G(
+constexpr const TFunction atomicCounterIncrement_00G(
     BuiltInId::atomicCounterIncrement_AtomicCounter1,
     BuiltInName::atomicCounterIncrement,
     TExtension::UNDEFINED,
@@ -17175,7 +16304,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_atomicCounterDecrement_00G(
+constexpr const TFunction atomicCounterDecrement_00G(
     BuiltInId::atomicCounterDecrement_AtomicCounter1,
     BuiltInName::atomicCounterDecrement,
     TExtension::UNDEFINED,
@@ -17184,7 +16313,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_atomicCounterAdd_00G00E(
+constexpr const TFunction atomicCounterAdd_00G00E(
     BuiltInId::atomicCounterAdd_AtomicCounter1_UInt1,
     BuiltInName::atomicCounterAdd,
     TExtension::UNDEFINED,
@@ -17193,7 +16322,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_atomicCounterSubtract_00G00E(
+constexpr const TFunction atomicCounterSubtract_00G00E(
     BuiltInId::atomicCounterSubtract_AtomicCounter1_UInt1,
     BuiltInName::atomicCounterSubtract,
     TExtension::UNDEFINED,
@@ -17202,7 +16331,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_atomicCounterMin_00G00E(
+constexpr const TFunction atomicCounterMin_00G00E(
     BuiltInId::atomicCounterMin_AtomicCounter1_UInt1,
     BuiltInName::atomicCounterMin,
     TExtension::UNDEFINED,
@@ -17211,7 +16340,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_atomicCounterMax_00G00E(
+constexpr const TFunction atomicCounterMax_00G00E(
     BuiltInId::atomicCounterMax_AtomicCounter1_UInt1,
     BuiltInName::atomicCounterMax,
     TExtension::UNDEFINED,
@@ -17220,7 +16349,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_atomicCounterAnd_00G00E(
+constexpr const TFunction atomicCounterAnd_00G00E(
     BuiltInId::atomicCounterAnd_AtomicCounter1_UInt1,
     BuiltInName::atomicCounterAnd,
     TExtension::UNDEFINED,
@@ -17229,7 +16358,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_atomicCounterOr_00G00E(
+constexpr const TFunction atomicCounterOr_00G00E(
     BuiltInId::atomicCounterOr_AtomicCounter1_UInt1,
     BuiltInName::atomicCounterOr,
     TExtension::UNDEFINED,
@@ -17238,7 +16367,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_atomicCounterXor_00G00E(
+constexpr const TFunction atomicCounterXor_00G00E(
     BuiltInId::atomicCounterXor_AtomicCounter1_UInt1,
     BuiltInName::atomicCounterXor,
     TExtension::UNDEFINED,
@@ -17247,7 +16376,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_atomicCounterExchange_00G00E(
+constexpr const TFunction atomicCounterExchange_00G00E(
     BuiltInId::atomicCounterExchange_AtomicCounter1_UInt1,
     BuiltInName::atomicCounterExchange,
     TExtension::UNDEFINED,
@@ -17256,7 +16385,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_atomicCounterCompSwap_00G00E00E(
+constexpr const TFunction atomicCounterCompSwap_00G00E00E(
     BuiltInId::atomicCounterCompSwap_AtomicCounter1_UInt1_UInt1,
     BuiltInName::atomicCounterCompSwap,
     TExtension::UNDEFINED,
@@ -17265,7 +16394,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_atomicAdd_00E00E(
+constexpr const TFunction atomicAdd_00E00E(
     BuiltInId::atomicAdd_UInt1_UInt1,
     BuiltInName::atomicAdd,
     TExtension::UNDEFINED,
@@ -17274,16 +16403,15 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpAtomicAdd,
     false);
-constexpr const TFunction function_atomicAdd_00D00D(
-    BuiltInId::atomicAdd_Int1_Int1,
-    BuiltInName::atomicAdd,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p_io_00D00D00D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpAtomicAdd,
-    false);
-constexpr const TFunction function_atomicMin_00E00E(
+constexpr const TFunction atomicAdd_00D00D(BuiltInId::atomicAdd_Int1_Int1,
+                                           BuiltInName::atomicAdd,
+                                           TExtension::UNDEFINED,
+                                           BuiltInParameters::p_io_00D00D00D,
+                                           2,
+                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                           EOpAtomicAdd,
+                                           false);
+constexpr const TFunction atomicMin_00E00E(
     BuiltInId::atomicMin_UInt1_UInt1,
     BuiltInName::atomicMin,
     TExtension::UNDEFINED,
@@ -17292,16 +16420,15 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpAtomicMin,
     false);
-constexpr const TFunction function_atomicMin_00D00D(
-    BuiltInId::atomicMin_Int1_Int1,
-    BuiltInName::atomicMin,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p_io_00D00D00D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpAtomicMin,
-    false);
-constexpr const TFunction function_atomicMax_00E00E(
+constexpr const TFunction atomicMin_00D00D(BuiltInId::atomicMin_Int1_Int1,
+                                           BuiltInName::atomicMin,
+                                           TExtension::UNDEFINED,
+                                           BuiltInParameters::p_io_00D00D00D,
+                                           2,
+                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                           EOpAtomicMin,
+                                           false);
+constexpr const TFunction atomicMax_00E00E(
     BuiltInId::atomicMax_UInt1_UInt1,
     BuiltInName::atomicMax,
     TExtension::UNDEFINED,
@@ -17310,16 +16437,15 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpAtomicMax,
     false);
-constexpr const TFunction function_atomicMax_00D00D(
-    BuiltInId::atomicMax_Int1_Int1,
-    BuiltInName::atomicMax,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p_io_00D00D00D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpAtomicMax,
-    false);
-constexpr const TFunction function_atomicAnd_00E00E(
+constexpr const TFunction atomicMax_00D00D(BuiltInId::atomicMax_Int1_Int1,
+                                           BuiltInName::atomicMax,
+                                           TExtension::UNDEFINED,
+                                           BuiltInParameters::p_io_00D00D00D,
+                                           2,
+                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                           EOpAtomicMax,
+                                           false);
+constexpr const TFunction atomicAnd_00E00E(
     BuiltInId::atomicAnd_UInt1_UInt1,
     BuiltInName::atomicAnd,
     TExtension::UNDEFINED,
@@ -17328,34 +16454,31 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpAtomicAnd,
     false);
-constexpr const TFunction function_atomicAnd_00D00D(
-    BuiltInId::atomicAnd_Int1_Int1,
-    BuiltInName::atomicAnd,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p_io_00D00D00D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpAtomicAnd,
-    false);
-constexpr const TFunction function_atomicOr_00E00E(
-    BuiltInId::atomicOr_UInt1_UInt1,
-    BuiltInName::atomicOr,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p_io_00E00E00E,
-    2,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpAtomicOr,
-    false);
-constexpr const TFunction function_atomicOr_00D00D(
-    BuiltInId::atomicOr_Int1_Int1,
-    BuiltInName::atomicOr,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p_io_00D00D00D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpAtomicOr,
-    false);
-constexpr const TFunction function_atomicXor_00E00E(
+constexpr const TFunction atomicAnd_00D00D(BuiltInId::atomicAnd_Int1_Int1,
+                                           BuiltInName::atomicAnd,
+                                           TExtension::UNDEFINED,
+                                           BuiltInParameters::p_io_00D00D00D,
+                                           2,
+                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                           EOpAtomicAnd,
+                                           false);
+constexpr const TFunction atomicOr_00E00E(BuiltInId::atomicOr_UInt1_UInt1,
+                                          BuiltInName::atomicOr,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p_io_00E00E00E,
+                                          2,
+                                          StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                          EOpAtomicOr,
+                                          false);
+constexpr const TFunction atomicOr_00D00D(BuiltInId::atomicOr_Int1_Int1,
+                                          BuiltInName::atomicOr,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p_io_00D00D00D,
+                                          2,
+                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                          EOpAtomicOr,
+                                          false);
+constexpr const TFunction atomicXor_00E00E(
     BuiltInId::atomicXor_UInt1_UInt1,
     BuiltInName::atomicXor,
     TExtension::UNDEFINED,
@@ -17364,16 +16487,15 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpAtomicXor,
     false);
-constexpr const TFunction function_atomicXor_00D00D(
-    BuiltInId::atomicXor_Int1_Int1,
-    BuiltInName::atomicXor,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p_io_00D00D00D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpAtomicXor,
-    false);
-constexpr const TFunction function_atomicExchange_00E00E(
+constexpr const TFunction atomicXor_00D00D(BuiltInId::atomicXor_Int1_Int1,
+                                           BuiltInName::atomicXor,
+                                           TExtension::UNDEFINED,
+                                           BuiltInParameters::p_io_00D00D00D,
+                                           2,
+                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                           EOpAtomicXor,
+                                           false);
+constexpr const TFunction atomicExchange_00E00E(
     BuiltInId::atomicExchange_UInt1_UInt1,
     BuiltInName::atomicExchange,
     TExtension::UNDEFINED,
@@ -17382,7 +16504,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpAtomicExchange,
     false);
-constexpr const TFunction function_atomicExchange_00D00D(
+constexpr const TFunction atomicExchange_00D00D(
     BuiltInId::atomicExchange_Int1_Int1,
     BuiltInName::atomicExchange,
     TExtension::UNDEFINED,
@@ -17391,7 +16513,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpAtomicExchange,
     false);
-constexpr const TFunction function_atomicCompSwap_00E00E00E(
+constexpr const TFunction atomicCompSwap_00E00E00E(
     BuiltInId::atomicCompSwap_UInt1_UInt1_UInt1,
     BuiltInName::atomicCompSwap,
     TExtension::UNDEFINED,
@@ -17400,7 +16522,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpAtomicCompSwap,
     false);
-constexpr const TFunction function_atomicCompSwap_00D00D00D(
+constexpr const TFunction atomicCompSwap_00D00D00D(
     BuiltInId::atomicCompSwap_Int1_Int1_Int1,
     BuiltInName::atomicCompSwap,
     TExtension::UNDEFINED,
@@ -17409,358 +16531,319 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpAtomicCompSwap,
     false);
-constexpr const TFunction function_imageSize_00y(
-    BuiltInId::imageSize_Image2D1,
-    BuiltInName::imageSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00y10D30B,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageSize_00z(
-    BuiltInId::imageSize_IImage2D1,
-    BuiltInName::imageSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00z10D00B,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageSize_01A(
-    BuiltInId::imageSize_UImage2D1,
-    BuiltInName::imageSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01A10D00D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageSize_01B(
-    BuiltInId::imageSize_Image3D1,
-    BuiltInName::imageSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01B20D00E00E,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageSize_01C(
-    BuiltInId::imageSize_IImage3D1,
-    BuiltInName::imageSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01C20D00D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageSize_01D(
-    BuiltInId::imageSize_UImage3D1,
-    BuiltInName::imageSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01D20D00B,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageSize_01E(
-    BuiltInId::imageSize_Image2DArray1,
-    BuiltInName::imageSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01E20D00E00E,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageSize_01F(
-    BuiltInId::imageSize_IImage2DArray1,
-    BuiltInName::imageSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01F20D00D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageSize_01G(
-    BuiltInId::imageSize_UImage2DArray1,
-    BuiltInName::imageSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01G20D00E00E,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageSize_01H(
-    BuiltInId::imageSize_ImageCube1,
-    BuiltInName::imageSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01H20D30B,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageSize_01I(
-    BuiltInId::imageSize_IImageCube1,
-    BuiltInName::imageSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01I20D00D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageSize_01J(
-    BuiltInId::imageSize_UImageCube1,
-    BuiltInName::imageSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01J20D00E00E,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageSize_01K(
-    BuiltInId::imageSize_Image1D1,
-    BuiltInName::imageSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01K00D00B,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageSize_01L(
-    BuiltInId::imageSize_IImage1D1,
-    BuiltInName::imageSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01L00D00E00E,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageSize_01M(
-    BuiltInId::imageSize_UImage1D1,
-    BuiltInName::imageSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01M00D30E,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageSize_01Z(
-    BuiltInId::imageSize_ImageCubeArray1,
-    BuiltInName::imageSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01Z20D00E00E,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageSize_01a(
-    BuiltInId::imageSize_IImageCubeArray1,
-    BuiltInName::imageSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01a20D00E00E,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageSize_01b(
-    BuiltInId::imageSize_UImageCubeArray1,
-    BuiltInName::imageSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01b20D00D00D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageSize_01c(
-    BuiltInId::imageSize_ImageRect1,
-    BuiltInName::imageSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01c,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageSize_01d(
-    BuiltInId::imageSize_IImageRect1,
-    BuiltInName::imageSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01d,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageSize_01e(
-    BuiltInId::imageSize_UImageRect1,
-    BuiltInName::imageSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01e,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageSize_01N(
-    BuiltInId::imageSize_Image1DArray1,
-    BuiltInName::imageSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01N10D00E00E,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageSize_01O(
-    BuiltInId::imageSize_IImage1DArray1,
-    BuiltInName::imageSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01O10D00E00E,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageSize_01P(
-    BuiltInId::imageSize_UImage1DArray1,
-    BuiltInName::imageSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01P10D00E00E,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageSize_01f(
-    BuiltInId::imageSize_ImageBuffer1,
-    BuiltInName::imageSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01f00D30B,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageSize_01g(
-    BuiltInId::imageSize_IImageBuffer1,
-    BuiltInName::imageSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01g00D30D,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageSize_01h(
-    BuiltInId::imageSize_UImageBuffer1,
-    BuiltInName::imageSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01h00D00E00E,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageSize_01Q(
-    BuiltInId::imageSize_Image2DMS1,
-    BuiltInName::imageSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01Q10D00D00E00E,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageSize_01R(
-    BuiltInId::imageSize_IImage2DMS1,
-    BuiltInName::imageSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01R10D00D00B,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageSize_01S(
-    BuiltInId::imageSize_UImage2DMS1,
-    BuiltInName::imageSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01S10D00D00B,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageSize_01T(
-    BuiltInId::imageSize_Image2DMSArray1,
-    BuiltInName::imageSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01T20D00D00E00E,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageSize_01U(
-    BuiltInId::imageSize_IImage2DMSArray1,
-    BuiltInName::imageSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01U20D00D00E00E,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageSize_01V(
-    BuiltInId::imageSize_UImage2DMSArray1,
-    BuiltInName::imageSize,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01V20D00D00E00E,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageSamples_01Q(
-    BuiltInId::imageSamples_Image2DMS1,
-    BuiltInName::imageSamples,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01Q10D00D00E00E,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageSamples_01R(
-    BuiltInId::imageSamples_IImage2DMS1,
-    BuiltInName::imageSamples,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01R10D00D00B,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageSamples_01S(
-    BuiltInId::imageSamples_UImage2DMS1,
-    BuiltInName::imageSamples,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01S10D00D00B,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageSamples_01T(
-    BuiltInId::imageSamples_Image2DMSArray1,
-    BuiltInName::imageSamples,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01T20D00D00E00E,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageSamples_01U(
-    BuiltInId::imageSamples_IImage2DMSArray1,
-    BuiltInName::imageSamples,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01U20D00D00E00E,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageSamples_01V(
-    BuiltInId::imageSamples_UImage2DMSArray1,
-    BuiltInName::imageSamples,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01V20D00D00E00E,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageAtomicAdd_00y10D00E(
+constexpr const TFunction imageSize_00y(BuiltInId::imageSize_Image2D1,
+                                        BuiltInName::imageSize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p00y10D30B,
+                                        1,
+                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                        EOpCallBuiltInFunction,
+                                        false);
+constexpr const TFunction imageSize_00z(BuiltInId::imageSize_IImage2D1,
+                                        BuiltInName::imageSize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p00z10D00B,
+                                        1,
+                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                        EOpCallBuiltInFunction,
+                                        false);
+constexpr const TFunction imageSize_01A(BuiltInId::imageSize_UImage2D1,
+                                        BuiltInName::imageSize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p01A10D00D00D,
+                                        1,
+                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                        EOpCallBuiltInFunction,
+                                        false);
+constexpr const TFunction imageSize_01B(BuiltInId::imageSize_Image3D1,
+                                        BuiltInName::imageSize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p01B20D00E00E,
+                                        1,
+                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                        EOpCallBuiltInFunction,
+                                        false);
+constexpr const TFunction imageSize_01C(BuiltInId::imageSize_IImage3D1,
+                                        BuiltInName::imageSize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p01C20D00D00D,
+                                        1,
+                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                        EOpCallBuiltInFunction,
+                                        false);
+constexpr const TFunction imageSize_01D(BuiltInId::imageSize_UImage3D1,
+                                        BuiltInName::imageSize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p01D20D00B,
+                                        1,
+                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                        EOpCallBuiltInFunction,
+                                        false);
+constexpr const TFunction imageSize_01E(BuiltInId::imageSize_Image2DArray1,
+                                        BuiltInName::imageSize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p01E20D00E00E,
+                                        1,
+                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                        EOpCallBuiltInFunction,
+                                        false);
+constexpr const TFunction imageSize_01F(BuiltInId::imageSize_IImage2DArray1,
+                                        BuiltInName::imageSize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p01F20D00D00D,
+                                        1,
+                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                        EOpCallBuiltInFunction,
+                                        false);
+constexpr const TFunction imageSize_01G(BuiltInId::imageSize_UImage2DArray1,
+                                        BuiltInName::imageSize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p01G20D00E00E,
+                                        1,
+                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                        EOpCallBuiltInFunction,
+                                        false);
+constexpr const TFunction imageSize_01H(BuiltInId::imageSize_ImageCube1,
+                                        BuiltInName::imageSize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p01H20D30B,
+                                        1,
+                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                        EOpCallBuiltInFunction,
+                                        false);
+constexpr const TFunction imageSize_01I(BuiltInId::imageSize_IImageCube1,
+                                        BuiltInName::imageSize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p01I20D00D00D,
+                                        1,
+                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                        EOpCallBuiltInFunction,
+                                        false);
+constexpr const TFunction imageSize_01J(BuiltInId::imageSize_UImageCube1,
+                                        BuiltInName::imageSize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p01J20D00E00E,
+                                        1,
+                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                        EOpCallBuiltInFunction,
+                                        false);
+constexpr const TFunction imageSize_01K(BuiltInId::imageSize_Image1D1,
+                                        BuiltInName::imageSize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p01K00D00B,
+                                        1,
+                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                        EOpCallBuiltInFunction,
+                                        false);
+constexpr const TFunction imageSize_01L(BuiltInId::imageSize_IImage1D1,
+                                        BuiltInName::imageSize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p01L00D00E00E,
+                                        1,
+                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                        EOpCallBuiltInFunction,
+                                        false);
+constexpr const TFunction imageSize_01M(BuiltInId::imageSize_UImage1D1,
+                                        BuiltInName::imageSize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p01M00D30E,
+                                        1,
+                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                        EOpCallBuiltInFunction,
+                                        false);
+constexpr const TFunction imageSize_01Z(BuiltInId::imageSize_ImageCubeArray1,
+                                        BuiltInName::imageSize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p01Z20D00E00E,
+                                        1,
+                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                        EOpCallBuiltInFunction,
+                                        false);
+constexpr const TFunction imageSize_01a(BuiltInId::imageSize_IImageCubeArray1,
+                                        BuiltInName::imageSize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p01a20D00E00E,
+                                        1,
+                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                        EOpCallBuiltInFunction,
+                                        false);
+constexpr const TFunction imageSize_01b(BuiltInId::imageSize_UImageCubeArray1,
+                                        BuiltInName::imageSize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p01b20D00D00D,
+                                        1,
+                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                        EOpCallBuiltInFunction,
+                                        false);
+constexpr const TFunction imageSize_01c(BuiltInId::imageSize_ImageRect1,
+                                        BuiltInName::imageSize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p01c,
+                                        1,
+                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                        EOpCallBuiltInFunction,
+                                        false);
+constexpr const TFunction imageSize_01d(BuiltInId::imageSize_IImageRect1,
+                                        BuiltInName::imageSize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p01d,
+                                        1,
+                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                        EOpCallBuiltInFunction,
+                                        false);
+constexpr const TFunction imageSize_01e(BuiltInId::imageSize_UImageRect1,
+                                        BuiltInName::imageSize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p01e,
+                                        1,
+                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                        EOpCallBuiltInFunction,
+                                        false);
+constexpr const TFunction imageSize_01N(BuiltInId::imageSize_Image1DArray1,
+                                        BuiltInName::imageSize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p01N10D00E00E,
+                                        1,
+                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                        EOpCallBuiltInFunction,
+                                        false);
+constexpr const TFunction imageSize_01O(BuiltInId::imageSize_IImage1DArray1,
+                                        BuiltInName::imageSize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p01O10D00E00E,
+                                        1,
+                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                        EOpCallBuiltInFunction,
+                                        false);
+constexpr const TFunction imageSize_01P(BuiltInId::imageSize_UImage1DArray1,
+                                        BuiltInName::imageSize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p01P10D00E00E,
+                                        1,
+                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                        EOpCallBuiltInFunction,
+                                        false);
+constexpr const TFunction imageSize_01f(BuiltInId::imageSize_ImageBuffer1,
+                                        BuiltInName::imageSize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p01f00D30B,
+                                        1,
+                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                        EOpCallBuiltInFunction,
+                                        false);
+constexpr const TFunction imageSize_01g(BuiltInId::imageSize_IImageBuffer1,
+                                        BuiltInName::imageSize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p01g00D30D,
+                                        1,
+                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                        EOpCallBuiltInFunction,
+                                        false);
+constexpr const TFunction imageSize_01h(BuiltInId::imageSize_UImageBuffer1,
+                                        BuiltInName::imageSize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p01h00D00E00E,
+                                        1,
+                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                        EOpCallBuiltInFunction,
+                                        false);
+constexpr const TFunction imageSize_01Q(BuiltInId::imageSize_Image2DMS1,
+                                        BuiltInName::imageSize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p01Q10D00D00E00E,
+                                        1,
+                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                        EOpCallBuiltInFunction,
+                                        false);
+constexpr const TFunction imageSize_01R(BuiltInId::imageSize_IImage2DMS1,
+                                        BuiltInName::imageSize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p01R10D00D00B,
+                                        1,
+                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                        EOpCallBuiltInFunction,
+                                        false);
+constexpr const TFunction imageSize_01S(BuiltInId::imageSize_UImage2DMS1,
+                                        BuiltInName::imageSize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p01S10D00D00B,
+                                        1,
+                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
+                                        EOpCallBuiltInFunction,
+                                        false);
+constexpr const TFunction imageSize_01T(BuiltInId::imageSize_Image2DMSArray1,
+                                        BuiltInName::imageSize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p01T20D00D00E00E,
+                                        1,
+                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                        EOpCallBuiltInFunction,
+                                        false);
+constexpr const TFunction imageSize_01U(BuiltInId::imageSize_IImage2DMSArray1,
+                                        BuiltInName::imageSize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p01U20D00D00E00E,
+                                        1,
+                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                        EOpCallBuiltInFunction,
+                                        false);
+constexpr const TFunction imageSize_01V(BuiltInId::imageSize_UImage2DMSArray1,
+                                        BuiltInName::imageSize,
+                                        TExtension::UNDEFINED,
+                                        BuiltInParameters::p01V20D00D00E00E,
+                                        1,
+                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
+                                        EOpCallBuiltInFunction,
+                                        false);
+constexpr const TFunction imageSamples_01Q(BuiltInId::imageSamples_Image2DMS1,
+                                           BuiltInName::imageSamples,
+                                           TExtension::UNDEFINED,
+                                           BuiltInParameters::p01Q10D00D00E00E,
+                                           1,
+                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                           EOpCallBuiltInFunction,
+                                           false);
+constexpr const TFunction imageSamples_01R(BuiltInId::imageSamples_IImage2DMS1,
+                                           BuiltInName::imageSamples,
+                                           TExtension::UNDEFINED,
+                                           BuiltInParameters::p01R10D00D00B,
+                                           1,
+                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                           EOpCallBuiltInFunction,
+                                           false);
+constexpr const TFunction imageSamples_01S(BuiltInId::imageSamples_UImage2DMS1,
+                                           BuiltInName::imageSamples,
+                                           TExtension::UNDEFINED,
+                                           BuiltInParameters::p01S10D00D00B,
+                                           1,
+                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                           EOpCallBuiltInFunction,
+                                           false);
+constexpr const TFunction imageSamples_01T(BuiltInId::imageSamples_Image2DMSArray1,
+                                           BuiltInName::imageSamples,
+                                           TExtension::UNDEFINED,
+                                           BuiltInParameters::p01T20D00D00E00E,
+                                           1,
+                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                           EOpCallBuiltInFunction,
+                                           false);
+constexpr const TFunction imageSamples_01U(BuiltInId::imageSamples_IImage2DMSArray1,
+                                           BuiltInName::imageSamples,
+                                           TExtension::UNDEFINED,
+                                           BuiltInParameters::p01U20D00D00E00E,
+                                           1,
+                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                           EOpCallBuiltInFunction,
+                                           false);
+constexpr const TFunction imageSamples_01V(BuiltInId::imageSamples_UImage2DMSArray1,
+                                           BuiltInName::imageSamples,
+                                           TExtension::UNDEFINED,
+                                           BuiltInParameters::p01V20D00D00E00E,
+                                           1,
+                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
+                                           EOpCallBuiltInFunction,
+                                           false);
+constexpr const TFunction imageAtomicAdd_00y10D00E(
     BuiltInId::imageAtomicAdd_Image2D1_Int2_UInt1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -17769,7 +16852,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_00z10D00E(
+constexpr const TFunction imageAtomicAdd_00z10D00E(
     BuiltInId::imageAtomicAdd_IImage2D1_Int2_UInt1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -17778,7 +16861,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01A10D00E(
+constexpr const TFunction imageAtomicAdd_01A10D00E(
     BuiltInId::imageAtomicAdd_UImage2D1_Int2_UInt1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -17787,7 +16870,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01B20D00E(
+constexpr const TFunction imageAtomicAdd_01B20D00E(
     BuiltInId::imageAtomicAdd_Image3D1_Int3_UInt1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -17796,7 +16879,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01C20D00E(
+constexpr const TFunction imageAtomicAdd_01C20D00E(
     BuiltInId::imageAtomicAdd_IImage3D1_Int3_UInt1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -17805,7 +16888,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01D20D00E(
+constexpr const TFunction imageAtomicAdd_01D20D00E(
     BuiltInId::imageAtomicAdd_UImage3D1_Int3_UInt1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -17814,7 +16897,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01H20D00E(
+constexpr const TFunction imageAtomicAdd_01H20D00E(
     BuiltInId::imageAtomicAdd_ImageCube1_Int3_UInt1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -17823,7 +16906,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01I20D00E(
+constexpr const TFunction imageAtomicAdd_01I20D00E(
     BuiltInId::imageAtomicAdd_IImageCube1_Int3_UInt1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -17832,7 +16915,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01J20D00E(
+constexpr const TFunction imageAtomicAdd_01J20D00E(
     BuiltInId::imageAtomicAdd_UImageCube1_Int3_UInt1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -17841,7 +16924,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01f00D00E(
+constexpr const TFunction imageAtomicAdd_01f00D00E(
     BuiltInId::imageAtomicAdd_ImageBuffer1_Int1_UInt1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -17850,7 +16933,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01g00D00E(
+constexpr const TFunction imageAtomicAdd_01g00D00E(
     BuiltInId::imageAtomicAdd_IImageBuffer1_Int1_UInt1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -17859,7 +16942,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01h00D00E(
+constexpr const TFunction imageAtomicAdd_01h00D00E(
     BuiltInId::imageAtomicAdd_UImageBuffer1_Int1_UInt1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -17868,7 +16951,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01E20D00E(
+constexpr const TFunction imageAtomicAdd_01E20D00E(
     BuiltInId::imageAtomicAdd_Image2DArray1_Int3_UInt1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -17877,7 +16960,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01F20D00E(
+constexpr const TFunction imageAtomicAdd_01F20D00E(
     BuiltInId::imageAtomicAdd_IImage2DArray1_Int3_UInt1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -17886,7 +16969,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01G20D00E(
+constexpr const TFunction imageAtomicAdd_01G20D00E(
     BuiltInId::imageAtomicAdd_UImage2DArray1_Int3_UInt1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -17895,7 +16978,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01Z20D00E(
+constexpr const TFunction imageAtomicAdd_01Z20D00E(
     BuiltInId::imageAtomicAdd_ImageCubeArray1_Int3_UInt1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -17904,7 +16987,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01a20D00E(
+constexpr const TFunction imageAtomicAdd_01a20D00E(
     BuiltInId::imageAtomicAdd_IImageCubeArray1_Int3_UInt1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -17913,7 +16996,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01b20D00E(
+constexpr const TFunction imageAtomicAdd_01b20D00E(
     BuiltInId::imageAtomicAdd_UImageCubeArray1_Int3_UInt1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -17922,7 +17005,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01K00D00E(
+constexpr const TFunction imageAtomicAdd_01K00D00E(
     BuiltInId::imageAtomicAdd_Image1D1_Int1_UInt1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -17931,7 +17014,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01L00D00E(
+constexpr const TFunction imageAtomicAdd_01L00D00E(
     BuiltInId::imageAtomicAdd_IImage1D1_Int1_UInt1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -17940,7 +17023,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01M00D00E(
+constexpr const TFunction imageAtomicAdd_01M00D00E(
     BuiltInId::imageAtomicAdd_UImage1D1_Int1_UInt1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -17949,7 +17032,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01N10D00E(
+constexpr const TFunction imageAtomicAdd_01N10D00E(
     BuiltInId::imageAtomicAdd_Image1DArray1_Int2_UInt1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -17958,7 +17041,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01O10D00E(
+constexpr const TFunction imageAtomicAdd_01O10D00E(
     BuiltInId::imageAtomicAdd_IImage1DArray1_Int2_UInt1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -17967,7 +17050,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01P10D00E(
+constexpr const TFunction imageAtomicAdd_01P10D00E(
     BuiltInId::imageAtomicAdd_UImage1DArray1_Int2_UInt1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -17976,7 +17059,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01W10D00E(
+constexpr const TFunction imageAtomicAdd_01W10D00E(
     BuiltInId::imageAtomicAdd_Image2DRect1_Int2_UInt1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -17985,7 +17068,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01X10D00E(
+constexpr const TFunction imageAtomicAdd_01X10D00E(
     BuiltInId::imageAtomicAdd_IImage2DRect1_Int2_UInt1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -17994,7 +17077,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01Y10D00E(
+constexpr const TFunction imageAtomicAdd_01Y10D00E(
     BuiltInId::imageAtomicAdd_UImage2DRect1_Int2_UInt1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -18003,7 +17086,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01Q10D00D00E(
+constexpr const TFunction imageAtomicAdd_01Q10D00D00E(
     BuiltInId::imageAtomicAdd_Image2DMS1_Int2_Int1_UInt1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -18012,7 +17095,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01R10D00D00E(
+constexpr const TFunction imageAtomicAdd_01R10D00D00E(
     BuiltInId::imageAtomicAdd_IImage2DMS1_Int2_Int1_UInt1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -18021,7 +17104,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01S10D00D00E(
+constexpr const TFunction imageAtomicAdd_01S10D00D00E(
     BuiltInId::imageAtomicAdd_UImage2DMS1_Int2_Int1_UInt1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -18030,7 +17113,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01T20D00D00E(
+constexpr const TFunction imageAtomicAdd_01T20D00D00E(
     BuiltInId::imageAtomicAdd_Image2DMSArray1_Int3_Int1_UInt1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -18039,7 +17122,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01U20D00D00E(
+constexpr const TFunction imageAtomicAdd_01U20D00D00E(
     BuiltInId::imageAtomicAdd_IImage2DMSArray1_Int3_Int1_UInt1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -18048,7 +17131,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01V20D00D00E(
+constexpr const TFunction imageAtomicAdd_01V20D00D00E(
     BuiltInId::imageAtomicAdd_UImage2DMSArray1_Int3_Int1_UInt1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -18057,7 +17140,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_00y10D00D(
+constexpr const TFunction imageAtomicAdd_00y10D00D(
     BuiltInId::imageAtomicAdd_Image2D1_Int2_Int1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -18066,7 +17149,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_00z10D00D(
+constexpr const TFunction imageAtomicAdd_00z10D00D(
     BuiltInId::imageAtomicAdd_IImage2D1_Int2_Int1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -18075,7 +17158,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01A10D00D(
+constexpr const TFunction imageAtomicAdd_01A10D00D(
     BuiltInId::imageAtomicAdd_UImage2D1_Int2_Int1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -18084,7 +17167,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01B20D00D(
+constexpr const TFunction imageAtomicAdd_01B20D00D(
     BuiltInId::imageAtomicAdd_Image3D1_Int3_Int1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -18093,7 +17176,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01C20D00D(
+constexpr const TFunction imageAtomicAdd_01C20D00D(
     BuiltInId::imageAtomicAdd_IImage3D1_Int3_Int1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -18102,7 +17185,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01D20D00D(
+constexpr const TFunction imageAtomicAdd_01D20D00D(
     BuiltInId::imageAtomicAdd_UImage3D1_Int3_Int1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -18111,7 +17194,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01H20D00D(
+constexpr const TFunction imageAtomicAdd_01H20D00D(
     BuiltInId::imageAtomicAdd_ImageCube1_Int3_Int1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -18120,7 +17203,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01I20D00D(
+constexpr const TFunction imageAtomicAdd_01I20D00D(
     BuiltInId::imageAtomicAdd_IImageCube1_Int3_Int1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -18129,7 +17212,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01J20D00D(
+constexpr const TFunction imageAtomicAdd_01J20D00D(
     BuiltInId::imageAtomicAdd_UImageCube1_Int3_Int1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -18138,7 +17221,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01f00D00D(
+constexpr const TFunction imageAtomicAdd_01f00D00D(
     BuiltInId::imageAtomicAdd_ImageBuffer1_Int1_Int1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -18147,7 +17230,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01g00D00D(
+constexpr const TFunction imageAtomicAdd_01g00D00D(
     BuiltInId::imageAtomicAdd_IImageBuffer1_Int1_Int1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -18156,7 +17239,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01h00D00D(
+constexpr const TFunction imageAtomicAdd_01h00D00D(
     BuiltInId::imageAtomicAdd_UImageBuffer1_Int1_Int1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -18165,7 +17248,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01E20D00D(
+constexpr const TFunction imageAtomicAdd_01E20D00D(
     BuiltInId::imageAtomicAdd_Image2DArray1_Int3_Int1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -18174,7 +17257,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01F20D00D(
+constexpr const TFunction imageAtomicAdd_01F20D00D(
     BuiltInId::imageAtomicAdd_IImage2DArray1_Int3_Int1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -18183,7 +17266,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01G20D00D(
+constexpr const TFunction imageAtomicAdd_01G20D00D(
     BuiltInId::imageAtomicAdd_UImage2DArray1_Int3_Int1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -18192,7 +17275,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01Z20D00D(
+constexpr const TFunction imageAtomicAdd_01Z20D00D(
     BuiltInId::imageAtomicAdd_ImageCubeArray1_Int3_Int1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -18201,7 +17284,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01a20D00D(
+constexpr const TFunction imageAtomicAdd_01a20D00D(
     BuiltInId::imageAtomicAdd_IImageCubeArray1_Int3_Int1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -18210,7 +17293,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01b20D00D(
+constexpr const TFunction imageAtomicAdd_01b20D00D(
     BuiltInId::imageAtomicAdd_UImageCubeArray1_Int3_Int1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -18219,7 +17302,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01K00D00D(
+constexpr const TFunction imageAtomicAdd_01K00D00D(
     BuiltInId::imageAtomicAdd_Image1D1_Int1_Int1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -18228,7 +17311,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01L00D00D(
+constexpr const TFunction imageAtomicAdd_01L00D00D(
     BuiltInId::imageAtomicAdd_IImage1D1_Int1_Int1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -18237,7 +17320,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01M00D00D(
+constexpr const TFunction imageAtomicAdd_01M00D00D(
     BuiltInId::imageAtomicAdd_UImage1D1_Int1_Int1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -18246,7 +17329,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01N10D00D(
+constexpr const TFunction imageAtomicAdd_01N10D00D(
     BuiltInId::imageAtomicAdd_Image1DArray1_Int2_Int1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -18255,7 +17338,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01O10D00D(
+constexpr const TFunction imageAtomicAdd_01O10D00D(
     BuiltInId::imageAtomicAdd_IImage1DArray1_Int2_Int1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -18264,7 +17347,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01P10D00D(
+constexpr const TFunction imageAtomicAdd_01P10D00D(
     BuiltInId::imageAtomicAdd_UImage1DArray1_Int2_Int1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -18273,7 +17356,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01W10D00D(
+constexpr const TFunction imageAtomicAdd_01W10D00D(
     BuiltInId::imageAtomicAdd_Image2DRect1_Int2_Int1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -18282,7 +17365,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01X10D00D(
+constexpr const TFunction imageAtomicAdd_01X10D00D(
     BuiltInId::imageAtomicAdd_IImage2DRect1_Int2_Int1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -18291,7 +17374,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01Y10D00D(
+constexpr const TFunction imageAtomicAdd_01Y10D00D(
     BuiltInId::imageAtomicAdd_UImage2DRect1_Int2_Int1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -18300,7 +17383,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01Q10D00D00D(
+constexpr const TFunction imageAtomicAdd_01Q10D00D00D(
     BuiltInId::imageAtomicAdd_Image2DMS1_Int2_Int1_Int1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -18309,7 +17392,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01R10D00D00D(
+constexpr const TFunction imageAtomicAdd_01R10D00D00D(
     BuiltInId::imageAtomicAdd_IImage2DMS1_Int2_Int1_Int1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -18318,7 +17401,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01S10D00D00D(
+constexpr const TFunction imageAtomicAdd_01S10D00D00D(
     BuiltInId::imageAtomicAdd_UImage2DMS1_Int2_Int1_Int1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -18327,7 +17410,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01T20D00D00D(
+constexpr const TFunction imageAtomicAdd_01T20D00D00D(
     BuiltInId::imageAtomicAdd_Image2DMSArray1_Int3_Int1_Int1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -18336,7 +17419,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01U20D00D00D(
+constexpr const TFunction imageAtomicAdd_01U20D00D00D(
     BuiltInId::imageAtomicAdd_IImage2DMSArray1_Int3_Int1_Int1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -18345,7 +17428,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAdd_01V20D00D00D(
+constexpr const TFunction imageAtomicAdd_01V20D00D00D(
     BuiltInId::imageAtomicAdd_UImage2DMSArray1_Int3_Int1_Int1,
     BuiltInName::imageAtomicAdd,
     TExtension::UNDEFINED,
@@ -18354,7 +17437,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_00y10D00E(
+constexpr const TFunction imageAtomicMin_00y10D00E(
     BuiltInId::imageAtomicMin_Image2D1_Int2_UInt1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18363,7 +17446,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_00z10D00E(
+constexpr const TFunction imageAtomicMin_00z10D00E(
     BuiltInId::imageAtomicMin_IImage2D1_Int2_UInt1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18372,7 +17455,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01A10D00E(
+constexpr const TFunction imageAtomicMin_01A10D00E(
     BuiltInId::imageAtomicMin_UImage2D1_Int2_UInt1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18381,7 +17464,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01B20D00E(
+constexpr const TFunction imageAtomicMin_01B20D00E(
     BuiltInId::imageAtomicMin_Image3D1_Int3_UInt1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18390,7 +17473,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01C20D00E(
+constexpr const TFunction imageAtomicMin_01C20D00E(
     BuiltInId::imageAtomicMin_IImage3D1_Int3_UInt1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18399,7 +17482,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01D20D00E(
+constexpr const TFunction imageAtomicMin_01D20D00E(
     BuiltInId::imageAtomicMin_UImage3D1_Int3_UInt1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18408,7 +17491,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01H20D00E(
+constexpr const TFunction imageAtomicMin_01H20D00E(
     BuiltInId::imageAtomicMin_ImageCube1_Int3_UInt1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18417,7 +17500,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01I20D00E(
+constexpr const TFunction imageAtomicMin_01I20D00E(
     BuiltInId::imageAtomicMin_IImageCube1_Int3_UInt1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18426,7 +17509,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01J20D00E(
+constexpr const TFunction imageAtomicMin_01J20D00E(
     BuiltInId::imageAtomicMin_UImageCube1_Int3_UInt1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18435,7 +17518,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01f00D00E(
+constexpr const TFunction imageAtomicMin_01f00D00E(
     BuiltInId::imageAtomicMin_ImageBuffer1_Int1_UInt1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18444,7 +17527,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01g00D00E(
+constexpr const TFunction imageAtomicMin_01g00D00E(
     BuiltInId::imageAtomicMin_IImageBuffer1_Int1_UInt1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18453,7 +17536,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01h00D00E(
+constexpr const TFunction imageAtomicMin_01h00D00E(
     BuiltInId::imageAtomicMin_UImageBuffer1_Int1_UInt1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18462,7 +17545,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01E20D00E(
+constexpr const TFunction imageAtomicMin_01E20D00E(
     BuiltInId::imageAtomicMin_Image2DArray1_Int3_UInt1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18471,7 +17554,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01F20D00E(
+constexpr const TFunction imageAtomicMin_01F20D00E(
     BuiltInId::imageAtomicMin_IImage2DArray1_Int3_UInt1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18480,7 +17563,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01G20D00E(
+constexpr const TFunction imageAtomicMin_01G20D00E(
     BuiltInId::imageAtomicMin_UImage2DArray1_Int3_UInt1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18489,7 +17572,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01Z20D00E(
+constexpr const TFunction imageAtomicMin_01Z20D00E(
     BuiltInId::imageAtomicMin_ImageCubeArray1_Int3_UInt1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18498,7 +17581,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01a20D00E(
+constexpr const TFunction imageAtomicMin_01a20D00E(
     BuiltInId::imageAtomicMin_IImageCubeArray1_Int3_UInt1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18507,7 +17590,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01b20D00E(
+constexpr const TFunction imageAtomicMin_01b20D00E(
     BuiltInId::imageAtomicMin_UImageCubeArray1_Int3_UInt1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18516,7 +17599,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01K00D00E(
+constexpr const TFunction imageAtomicMin_01K00D00E(
     BuiltInId::imageAtomicMin_Image1D1_Int1_UInt1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18525,7 +17608,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01L00D00E(
+constexpr const TFunction imageAtomicMin_01L00D00E(
     BuiltInId::imageAtomicMin_IImage1D1_Int1_UInt1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18534,7 +17617,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01M00D00E(
+constexpr const TFunction imageAtomicMin_01M00D00E(
     BuiltInId::imageAtomicMin_UImage1D1_Int1_UInt1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18543,7 +17626,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01N10D00E(
+constexpr const TFunction imageAtomicMin_01N10D00E(
     BuiltInId::imageAtomicMin_Image1DArray1_Int2_UInt1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18552,7 +17635,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01O10D00E(
+constexpr const TFunction imageAtomicMin_01O10D00E(
     BuiltInId::imageAtomicMin_IImage1DArray1_Int2_UInt1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18561,7 +17644,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01P10D00E(
+constexpr const TFunction imageAtomicMin_01P10D00E(
     BuiltInId::imageAtomicMin_UImage1DArray1_Int2_UInt1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18570,7 +17653,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01W10D00E(
+constexpr const TFunction imageAtomicMin_01W10D00E(
     BuiltInId::imageAtomicMin_Image2DRect1_Int2_UInt1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18579,7 +17662,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01X10D00E(
+constexpr const TFunction imageAtomicMin_01X10D00E(
     BuiltInId::imageAtomicMin_IImage2DRect1_Int2_UInt1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18588,7 +17671,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01Y10D00E(
+constexpr const TFunction imageAtomicMin_01Y10D00E(
     BuiltInId::imageAtomicMin_UImage2DRect1_Int2_UInt1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18597,7 +17680,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01Q10D00D00E(
+constexpr const TFunction imageAtomicMin_01Q10D00D00E(
     BuiltInId::imageAtomicMin_Image2DMS1_Int2_Int1_UInt1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18606,7 +17689,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01R10D00D00E(
+constexpr const TFunction imageAtomicMin_01R10D00D00E(
     BuiltInId::imageAtomicMin_IImage2DMS1_Int2_Int1_UInt1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18615,7 +17698,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01S10D00D00E(
+constexpr const TFunction imageAtomicMin_01S10D00D00E(
     BuiltInId::imageAtomicMin_UImage2DMS1_Int2_Int1_UInt1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18624,7 +17707,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01T20D00D00E(
+constexpr const TFunction imageAtomicMin_01T20D00D00E(
     BuiltInId::imageAtomicMin_Image2DMSArray1_Int3_Int1_UInt1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18633,7 +17716,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01U20D00D00E(
+constexpr const TFunction imageAtomicMin_01U20D00D00E(
     BuiltInId::imageAtomicMin_IImage2DMSArray1_Int3_Int1_UInt1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18642,7 +17725,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01V20D00D00E(
+constexpr const TFunction imageAtomicMin_01V20D00D00E(
     BuiltInId::imageAtomicMin_UImage2DMSArray1_Int3_Int1_UInt1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18651,7 +17734,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_00y10D00D(
+constexpr const TFunction imageAtomicMin_00y10D00D(
     BuiltInId::imageAtomicMin_Image2D1_Int2_Int1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18660,7 +17743,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_00z10D00D(
+constexpr const TFunction imageAtomicMin_00z10D00D(
     BuiltInId::imageAtomicMin_IImage2D1_Int2_Int1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18669,7 +17752,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01A10D00D(
+constexpr const TFunction imageAtomicMin_01A10D00D(
     BuiltInId::imageAtomicMin_UImage2D1_Int2_Int1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18678,7 +17761,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01B20D00D(
+constexpr const TFunction imageAtomicMin_01B20D00D(
     BuiltInId::imageAtomicMin_Image3D1_Int3_Int1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18687,7 +17770,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01C20D00D(
+constexpr const TFunction imageAtomicMin_01C20D00D(
     BuiltInId::imageAtomicMin_IImage3D1_Int3_Int1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18696,7 +17779,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01D20D00D(
+constexpr const TFunction imageAtomicMin_01D20D00D(
     BuiltInId::imageAtomicMin_UImage3D1_Int3_Int1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18705,7 +17788,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01H20D00D(
+constexpr const TFunction imageAtomicMin_01H20D00D(
     BuiltInId::imageAtomicMin_ImageCube1_Int3_Int1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18714,7 +17797,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01I20D00D(
+constexpr const TFunction imageAtomicMin_01I20D00D(
     BuiltInId::imageAtomicMin_IImageCube1_Int3_Int1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18723,7 +17806,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01J20D00D(
+constexpr const TFunction imageAtomicMin_01J20D00D(
     BuiltInId::imageAtomicMin_UImageCube1_Int3_Int1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18732,7 +17815,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01f00D00D(
+constexpr const TFunction imageAtomicMin_01f00D00D(
     BuiltInId::imageAtomicMin_ImageBuffer1_Int1_Int1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18741,7 +17824,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01g00D00D(
+constexpr const TFunction imageAtomicMin_01g00D00D(
     BuiltInId::imageAtomicMin_IImageBuffer1_Int1_Int1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18750,7 +17833,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01h00D00D(
+constexpr const TFunction imageAtomicMin_01h00D00D(
     BuiltInId::imageAtomicMin_UImageBuffer1_Int1_Int1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18759,7 +17842,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01E20D00D(
+constexpr const TFunction imageAtomicMin_01E20D00D(
     BuiltInId::imageAtomicMin_Image2DArray1_Int3_Int1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18768,7 +17851,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01F20D00D(
+constexpr const TFunction imageAtomicMin_01F20D00D(
     BuiltInId::imageAtomicMin_IImage2DArray1_Int3_Int1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18777,7 +17860,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01G20D00D(
+constexpr const TFunction imageAtomicMin_01G20D00D(
     BuiltInId::imageAtomicMin_UImage2DArray1_Int3_Int1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18786,7 +17869,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01Z20D00D(
+constexpr const TFunction imageAtomicMin_01Z20D00D(
     BuiltInId::imageAtomicMin_ImageCubeArray1_Int3_Int1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18795,7 +17878,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01a20D00D(
+constexpr const TFunction imageAtomicMin_01a20D00D(
     BuiltInId::imageAtomicMin_IImageCubeArray1_Int3_Int1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18804,7 +17887,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01b20D00D(
+constexpr const TFunction imageAtomicMin_01b20D00D(
     BuiltInId::imageAtomicMin_UImageCubeArray1_Int3_Int1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18813,7 +17896,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01K00D00D(
+constexpr const TFunction imageAtomicMin_01K00D00D(
     BuiltInId::imageAtomicMin_Image1D1_Int1_Int1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18822,7 +17905,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01L00D00D(
+constexpr const TFunction imageAtomicMin_01L00D00D(
     BuiltInId::imageAtomicMin_IImage1D1_Int1_Int1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18831,7 +17914,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01M00D00D(
+constexpr const TFunction imageAtomicMin_01M00D00D(
     BuiltInId::imageAtomicMin_UImage1D1_Int1_Int1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18840,7 +17923,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01N10D00D(
+constexpr const TFunction imageAtomicMin_01N10D00D(
     BuiltInId::imageAtomicMin_Image1DArray1_Int2_Int1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18849,7 +17932,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01O10D00D(
+constexpr const TFunction imageAtomicMin_01O10D00D(
     BuiltInId::imageAtomicMin_IImage1DArray1_Int2_Int1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18858,7 +17941,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01P10D00D(
+constexpr const TFunction imageAtomicMin_01P10D00D(
     BuiltInId::imageAtomicMin_UImage1DArray1_Int2_Int1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18867,7 +17950,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01W10D00D(
+constexpr const TFunction imageAtomicMin_01W10D00D(
     BuiltInId::imageAtomicMin_Image2DRect1_Int2_Int1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18876,7 +17959,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01X10D00D(
+constexpr const TFunction imageAtomicMin_01X10D00D(
     BuiltInId::imageAtomicMin_IImage2DRect1_Int2_Int1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18885,7 +17968,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01Y10D00D(
+constexpr const TFunction imageAtomicMin_01Y10D00D(
     BuiltInId::imageAtomicMin_UImage2DRect1_Int2_Int1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18894,7 +17977,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01Q10D00D00D(
+constexpr const TFunction imageAtomicMin_01Q10D00D00D(
     BuiltInId::imageAtomicMin_Image2DMS1_Int2_Int1_Int1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18903,7 +17986,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01R10D00D00D(
+constexpr const TFunction imageAtomicMin_01R10D00D00D(
     BuiltInId::imageAtomicMin_IImage2DMS1_Int2_Int1_Int1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18912,7 +17995,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01S10D00D00D(
+constexpr const TFunction imageAtomicMin_01S10D00D00D(
     BuiltInId::imageAtomicMin_UImage2DMS1_Int2_Int1_Int1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18921,7 +18004,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01T20D00D00D(
+constexpr const TFunction imageAtomicMin_01T20D00D00D(
     BuiltInId::imageAtomicMin_Image2DMSArray1_Int3_Int1_Int1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18930,7 +18013,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01U20D00D00D(
+constexpr const TFunction imageAtomicMin_01U20D00D00D(
     BuiltInId::imageAtomicMin_IImage2DMSArray1_Int3_Int1_Int1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18939,7 +18022,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMin_01V20D00D00D(
+constexpr const TFunction imageAtomicMin_01V20D00D00D(
     BuiltInId::imageAtomicMin_UImage2DMSArray1_Int3_Int1_Int1,
     BuiltInName::imageAtomicMin,
     TExtension::UNDEFINED,
@@ -18948,7 +18031,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_00y10D00E(
+constexpr const TFunction imageAtomicMax_00y10D00E(
     BuiltInId::imageAtomicMax_Image2D1_Int2_UInt1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -18957,7 +18040,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_00z10D00E(
+constexpr const TFunction imageAtomicMax_00z10D00E(
     BuiltInId::imageAtomicMax_IImage2D1_Int2_UInt1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -18966,7 +18049,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01A10D00E(
+constexpr const TFunction imageAtomicMax_01A10D00E(
     BuiltInId::imageAtomicMax_UImage2D1_Int2_UInt1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -18975,7 +18058,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01B20D00E(
+constexpr const TFunction imageAtomicMax_01B20D00E(
     BuiltInId::imageAtomicMax_Image3D1_Int3_UInt1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -18984,7 +18067,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01C20D00E(
+constexpr const TFunction imageAtomicMax_01C20D00E(
     BuiltInId::imageAtomicMax_IImage3D1_Int3_UInt1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -18993,7 +18076,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01D20D00E(
+constexpr const TFunction imageAtomicMax_01D20D00E(
     BuiltInId::imageAtomicMax_UImage3D1_Int3_UInt1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19002,7 +18085,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01H20D00E(
+constexpr const TFunction imageAtomicMax_01H20D00E(
     BuiltInId::imageAtomicMax_ImageCube1_Int3_UInt1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19011,7 +18094,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01I20D00E(
+constexpr const TFunction imageAtomicMax_01I20D00E(
     BuiltInId::imageAtomicMax_IImageCube1_Int3_UInt1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19020,7 +18103,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01J20D00E(
+constexpr const TFunction imageAtomicMax_01J20D00E(
     BuiltInId::imageAtomicMax_UImageCube1_Int3_UInt1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19029,7 +18112,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01f00D00E(
+constexpr const TFunction imageAtomicMax_01f00D00E(
     BuiltInId::imageAtomicMax_ImageBuffer1_Int1_UInt1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19038,7 +18121,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01g00D00E(
+constexpr const TFunction imageAtomicMax_01g00D00E(
     BuiltInId::imageAtomicMax_IImageBuffer1_Int1_UInt1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19047,7 +18130,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01h00D00E(
+constexpr const TFunction imageAtomicMax_01h00D00E(
     BuiltInId::imageAtomicMax_UImageBuffer1_Int1_UInt1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19056,7 +18139,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01E20D00E(
+constexpr const TFunction imageAtomicMax_01E20D00E(
     BuiltInId::imageAtomicMax_Image2DArray1_Int3_UInt1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19065,7 +18148,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01F20D00E(
+constexpr const TFunction imageAtomicMax_01F20D00E(
     BuiltInId::imageAtomicMax_IImage2DArray1_Int3_UInt1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19074,7 +18157,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01G20D00E(
+constexpr const TFunction imageAtomicMax_01G20D00E(
     BuiltInId::imageAtomicMax_UImage2DArray1_Int3_UInt1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19083,7 +18166,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01Z20D00E(
+constexpr const TFunction imageAtomicMax_01Z20D00E(
     BuiltInId::imageAtomicMax_ImageCubeArray1_Int3_UInt1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19092,7 +18175,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01a20D00E(
+constexpr const TFunction imageAtomicMax_01a20D00E(
     BuiltInId::imageAtomicMax_IImageCubeArray1_Int3_UInt1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19101,7 +18184,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01b20D00E(
+constexpr const TFunction imageAtomicMax_01b20D00E(
     BuiltInId::imageAtomicMax_UImageCubeArray1_Int3_UInt1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19110,7 +18193,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01K00D00E(
+constexpr const TFunction imageAtomicMax_01K00D00E(
     BuiltInId::imageAtomicMax_Image1D1_Int1_UInt1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19119,7 +18202,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01L00D00E(
+constexpr const TFunction imageAtomicMax_01L00D00E(
     BuiltInId::imageAtomicMax_IImage1D1_Int1_UInt1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19128,7 +18211,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01M00D00E(
+constexpr const TFunction imageAtomicMax_01M00D00E(
     BuiltInId::imageAtomicMax_UImage1D1_Int1_UInt1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19137,7 +18220,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01N10D00E(
+constexpr const TFunction imageAtomicMax_01N10D00E(
     BuiltInId::imageAtomicMax_Image1DArray1_Int2_UInt1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19146,7 +18229,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01O10D00E(
+constexpr const TFunction imageAtomicMax_01O10D00E(
     BuiltInId::imageAtomicMax_IImage1DArray1_Int2_UInt1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19155,7 +18238,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01P10D00E(
+constexpr const TFunction imageAtomicMax_01P10D00E(
     BuiltInId::imageAtomicMax_UImage1DArray1_Int2_UInt1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19164,7 +18247,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01W10D00E(
+constexpr const TFunction imageAtomicMax_01W10D00E(
     BuiltInId::imageAtomicMax_Image2DRect1_Int2_UInt1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19173,7 +18256,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01X10D00E(
+constexpr const TFunction imageAtomicMax_01X10D00E(
     BuiltInId::imageAtomicMax_IImage2DRect1_Int2_UInt1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19182,7 +18265,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01Y10D00E(
+constexpr const TFunction imageAtomicMax_01Y10D00E(
     BuiltInId::imageAtomicMax_UImage2DRect1_Int2_UInt1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19191,7 +18274,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01Q10D00D00E(
+constexpr const TFunction imageAtomicMax_01Q10D00D00E(
     BuiltInId::imageAtomicMax_Image2DMS1_Int2_Int1_UInt1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19200,7 +18283,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01R10D00D00E(
+constexpr const TFunction imageAtomicMax_01R10D00D00E(
     BuiltInId::imageAtomicMax_IImage2DMS1_Int2_Int1_UInt1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19209,7 +18292,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01S10D00D00E(
+constexpr const TFunction imageAtomicMax_01S10D00D00E(
     BuiltInId::imageAtomicMax_UImage2DMS1_Int2_Int1_UInt1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19218,7 +18301,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01T20D00D00E(
+constexpr const TFunction imageAtomicMax_01T20D00D00E(
     BuiltInId::imageAtomicMax_Image2DMSArray1_Int3_Int1_UInt1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19227,7 +18310,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01U20D00D00E(
+constexpr const TFunction imageAtomicMax_01U20D00D00E(
     BuiltInId::imageAtomicMax_IImage2DMSArray1_Int3_Int1_UInt1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19236,7 +18319,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01V20D00D00E(
+constexpr const TFunction imageAtomicMax_01V20D00D00E(
     BuiltInId::imageAtomicMax_UImage2DMSArray1_Int3_Int1_UInt1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19245,7 +18328,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_00y10D00D(
+constexpr const TFunction imageAtomicMax_00y10D00D(
     BuiltInId::imageAtomicMax_Image2D1_Int2_Int1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19254,7 +18337,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_00z10D00D(
+constexpr const TFunction imageAtomicMax_00z10D00D(
     BuiltInId::imageAtomicMax_IImage2D1_Int2_Int1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19263,7 +18346,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01A10D00D(
+constexpr const TFunction imageAtomicMax_01A10D00D(
     BuiltInId::imageAtomicMax_UImage2D1_Int2_Int1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19272,7 +18355,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01B20D00D(
+constexpr const TFunction imageAtomicMax_01B20D00D(
     BuiltInId::imageAtomicMax_Image3D1_Int3_Int1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19281,7 +18364,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01C20D00D(
+constexpr const TFunction imageAtomicMax_01C20D00D(
     BuiltInId::imageAtomicMax_IImage3D1_Int3_Int1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19290,7 +18373,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01D20D00D(
+constexpr const TFunction imageAtomicMax_01D20D00D(
     BuiltInId::imageAtomicMax_UImage3D1_Int3_Int1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19299,7 +18382,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01H20D00D(
+constexpr const TFunction imageAtomicMax_01H20D00D(
     BuiltInId::imageAtomicMax_ImageCube1_Int3_Int1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19308,7 +18391,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01I20D00D(
+constexpr const TFunction imageAtomicMax_01I20D00D(
     BuiltInId::imageAtomicMax_IImageCube1_Int3_Int1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19317,7 +18400,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01J20D00D(
+constexpr const TFunction imageAtomicMax_01J20D00D(
     BuiltInId::imageAtomicMax_UImageCube1_Int3_Int1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19326,7 +18409,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01f00D00D(
+constexpr const TFunction imageAtomicMax_01f00D00D(
     BuiltInId::imageAtomicMax_ImageBuffer1_Int1_Int1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19335,7 +18418,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01g00D00D(
+constexpr const TFunction imageAtomicMax_01g00D00D(
     BuiltInId::imageAtomicMax_IImageBuffer1_Int1_Int1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19344,7 +18427,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01h00D00D(
+constexpr const TFunction imageAtomicMax_01h00D00D(
     BuiltInId::imageAtomicMax_UImageBuffer1_Int1_Int1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19353,7 +18436,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01E20D00D(
+constexpr const TFunction imageAtomicMax_01E20D00D(
     BuiltInId::imageAtomicMax_Image2DArray1_Int3_Int1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19362,7 +18445,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01F20D00D(
+constexpr const TFunction imageAtomicMax_01F20D00D(
     BuiltInId::imageAtomicMax_IImage2DArray1_Int3_Int1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19371,7 +18454,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01G20D00D(
+constexpr const TFunction imageAtomicMax_01G20D00D(
     BuiltInId::imageAtomicMax_UImage2DArray1_Int3_Int1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19380,7 +18463,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01Z20D00D(
+constexpr const TFunction imageAtomicMax_01Z20D00D(
     BuiltInId::imageAtomicMax_ImageCubeArray1_Int3_Int1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19389,7 +18472,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01a20D00D(
+constexpr const TFunction imageAtomicMax_01a20D00D(
     BuiltInId::imageAtomicMax_IImageCubeArray1_Int3_Int1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19398,7 +18481,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01b20D00D(
+constexpr const TFunction imageAtomicMax_01b20D00D(
     BuiltInId::imageAtomicMax_UImageCubeArray1_Int3_Int1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19407,7 +18490,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01K00D00D(
+constexpr const TFunction imageAtomicMax_01K00D00D(
     BuiltInId::imageAtomicMax_Image1D1_Int1_Int1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19416,7 +18499,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01L00D00D(
+constexpr const TFunction imageAtomicMax_01L00D00D(
     BuiltInId::imageAtomicMax_IImage1D1_Int1_Int1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19425,7 +18508,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01M00D00D(
+constexpr const TFunction imageAtomicMax_01M00D00D(
     BuiltInId::imageAtomicMax_UImage1D1_Int1_Int1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19434,7 +18517,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01N10D00D(
+constexpr const TFunction imageAtomicMax_01N10D00D(
     BuiltInId::imageAtomicMax_Image1DArray1_Int2_Int1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19443,7 +18526,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01O10D00D(
+constexpr const TFunction imageAtomicMax_01O10D00D(
     BuiltInId::imageAtomicMax_IImage1DArray1_Int2_Int1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19452,7 +18535,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01P10D00D(
+constexpr const TFunction imageAtomicMax_01P10D00D(
     BuiltInId::imageAtomicMax_UImage1DArray1_Int2_Int1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19461,7 +18544,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01W10D00D(
+constexpr const TFunction imageAtomicMax_01W10D00D(
     BuiltInId::imageAtomicMax_Image2DRect1_Int2_Int1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19470,7 +18553,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01X10D00D(
+constexpr const TFunction imageAtomicMax_01X10D00D(
     BuiltInId::imageAtomicMax_IImage2DRect1_Int2_Int1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19479,7 +18562,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01Y10D00D(
+constexpr const TFunction imageAtomicMax_01Y10D00D(
     BuiltInId::imageAtomicMax_UImage2DRect1_Int2_Int1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19488,7 +18571,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01Q10D00D00D(
+constexpr const TFunction imageAtomicMax_01Q10D00D00D(
     BuiltInId::imageAtomicMax_Image2DMS1_Int2_Int1_Int1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19497,7 +18580,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01R10D00D00D(
+constexpr const TFunction imageAtomicMax_01R10D00D00D(
     BuiltInId::imageAtomicMax_IImage2DMS1_Int2_Int1_Int1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19506,7 +18589,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01S10D00D00D(
+constexpr const TFunction imageAtomicMax_01S10D00D00D(
     BuiltInId::imageAtomicMax_UImage2DMS1_Int2_Int1_Int1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19515,7 +18598,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01T20D00D00D(
+constexpr const TFunction imageAtomicMax_01T20D00D00D(
     BuiltInId::imageAtomicMax_Image2DMSArray1_Int3_Int1_Int1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19524,7 +18607,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01U20D00D00D(
+constexpr const TFunction imageAtomicMax_01U20D00D00D(
     BuiltInId::imageAtomicMax_IImage2DMSArray1_Int3_Int1_Int1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19533,7 +18616,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicMax_01V20D00D00D(
+constexpr const TFunction imageAtomicMax_01V20D00D00D(
     BuiltInId::imageAtomicMax_UImage2DMSArray1_Int3_Int1_Int1,
     BuiltInName::imageAtomicMax,
     TExtension::UNDEFINED,
@@ -19542,7 +18625,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_00y10D00E(
+constexpr const TFunction imageAtomicAnd_00y10D00E(
     BuiltInId::imageAtomicAnd_Image2D1_Int2_UInt1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -19551,7 +18634,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_00z10D00E(
+constexpr const TFunction imageAtomicAnd_00z10D00E(
     BuiltInId::imageAtomicAnd_IImage2D1_Int2_UInt1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -19560,7 +18643,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01A10D00E(
+constexpr const TFunction imageAtomicAnd_01A10D00E(
     BuiltInId::imageAtomicAnd_UImage2D1_Int2_UInt1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -19569,7 +18652,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01B20D00E(
+constexpr const TFunction imageAtomicAnd_01B20D00E(
     BuiltInId::imageAtomicAnd_Image3D1_Int3_UInt1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -19578,7 +18661,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01C20D00E(
+constexpr const TFunction imageAtomicAnd_01C20D00E(
     BuiltInId::imageAtomicAnd_IImage3D1_Int3_UInt1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -19587,7 +18670,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01D20D00E(
+constexpr const TFunction imageAtomicAnd_01D20D00E(
     BuiltInId::imageAtomicAnd_UImage3D1_Int3_UInt1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -19596,7 +18679,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01H20D00E(
+constexpr const TFunction imageAtomicAnd_01H20D00E(
     BuiltInId::imageAtomicAnd_ImageCube1_Int3_UInt1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -19605,7 +18688,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01I20D00E(
+constexpr const TFunction imageAtomicAnd_01I20D00E(
     BuiltInId::imageAtomicAnd_IImageCube1_Int3_UInt1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -19614,7 +18697,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01J20D00E(
+constexpr const TFunction imageAtomicAnd_01J20D00E(
     BuiltInId::imageAtomicAnd_UImageCube1_Int3_UInt1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -19623,7 +18706,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01f00D00E(
+constexpr const TFunction imageAtomicAnd_01f00D00E(
     BuiltInId::imageAtomicAnd_ImageBuffer1_Int1_UInt1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -19632,7 +18715,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01g00D00E(
+constexpr const TFunction imageAtomicAnd_01g00D00E(
     BuiltInId::imageAtomicAnd_IImageBuffer1_Int1_UInt1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -19641,7 +18724,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01h00D00E(
+constexpr const TFunction imageAtomicAnd_01h00D00E(
     BuiltInId::imageAtomicAnd_UImageBuffer1_Int1_UInt1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -19650,7 +18733,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01E20D00E(
+constexpr const TFunction imageAtomicAnd_01E20D00E(
     BuiltInId::imageAtomicAnd_Image2DArray1_Int3_UInt1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -19659,7 +18742,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01F20D00E(
+constexpr const TFunction imageAtomicAnd_01F20D00E(
     BuiltInId::imageAtomicAnd_IImage2DArray1_Int3_UInt1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -19668,7 +18751,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01G20D00E(
+constexpr const TFunction imageAtomicAnd_01G20D00E(
     BuiltInId::imageAtomicAnd_UImage2DArray1_Int3_UInt1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -19677,7 +18760,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01Z20D00E(
+constexpr const TFunction imageAtomicAnd_01Z20D00E(
     BuiltInId::imageAtomicAnd_ImageCubeArray1_Int3_UInt1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -19686,7 +18769,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01a20D00E(
+constexpr const TFunction imageAtomicAnd_01a20D00E(
     BuiltInId::imageAtomicAnd_IImageCubeArray1_Int3_UInt1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -19695,7 +18778,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01b20D00E(
+constexpr const TFunction imageAtomicAnd_01b20D00E(
     BuiltInId::imageAtomicAnd_UImageCubeArray1_Int3_UInt1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -19704,7 +18787,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01K00D00E(
+constexpr const TFunction imageAtomicAnd_01K00D00E(
     BuiltInId::imageAtomicAnd_Image1D1_Int1_UInt1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -19713,7 +18796,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01L00D00E(
+constexpr const TFunction imageAtomicAnd_01L00D00E(
     BuiltInId::imageAtomicAnd_IImage1D1_Int1_UInt1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -19722,7 +18805,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01M00D00E(
+constexpr const TFunction imageAtomicAnd_01M00D00E(
     BuiltInId::imageAtomicAnd_UImage1D1_Int1_UInt1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -19731,7 +18814,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01N10D00E(
+constexpr const TFunction imageAtomicAnd_01N10D00E(
     BuiltInId::imageAtomicAnd_Image1DArray1_Int2_UInt1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -19740,7 +18823,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01O10D00E(
+constexpr const TFunction imageAtomicAnd_01O10D00E(
     BuiltInId::imageAtomicAnd_IImage1DArray1_Int2_UInt1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -19749,7 +18832,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01P10D00E(
+constexpr const TFunction imageAtomicAnd_01P10D00E(
     BuiltInId::imageAtomicAnd_UImage1DArray1_Int2_UInt1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -19758,7 +18841,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01W10D00E(
+constexpr const TFunction imageAtomicAnd_01W10D00E(
     BuiltInId::imageAtomicAnd_Image2DRect1_Int2_UInt1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -19767,7 +18850,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01X10D00E(
+constexpr const TFunction imageAtomicAnd_01X10D00E(
     BuiltInId::imageAtomicAnd_IImage2DRect1_Int2_UInt1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -19776,7 +18859,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01Y10D00E(
+constexpr const TFunction imageAtomicAnd_01Y10D00E(
     BuiltInId::imageAtomicAnd_UImage2DRect1_Int2_UInt1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -19785,7 +18868,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01Q10D00D00E(
+constexpr const TFunction imageAtomicAnd_01Q10D00D00E(
     BuiltInId::imageAtomicAnd_Image2DMS1_Int2_Int1_UInt1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -19794,7 +18877,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01R10D00D00E(
+constexpr const TFunction imageAtomicAnd_01R10D00D00E(
     BuiltInId::imageAtomicAnd_IImage2DMS1_Int2_Int1_UInt1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -19803,7 +18886,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01S10D00D00E(
+constexpr const TFunction imageAtomicAnd_01S10D00D00E(
     BuiltInId::imageAtomicAnd_UImage2DMS1_Int2_Int1_UInt1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -19812,7 +18895,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01T20D00D00E(
+constexpr const TFunction imageAtomicAnd_01T20D00D00E(
     BuiltInId::imageAtomicAnd_Image2DMSArray1_Int3_Int1_UInt1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -19821,7 +18904,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01U20D00D00E(
+constexpr const TFunction imageAtomicAnd_01U20D00D00E(
     BuiltInId::imageAtomicAnd_IImage2DMSArray1_Int3_Int1_UInt1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -19830,7 +18913,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01V20D00D00E(
+constexpr const TFunction imageAtomicAnd_01V20D00D00E(
     BuiltInId::imageAtomicAnd_UImage2DMSArray1_Int3_Int1_UInt1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -19839,7 +18922,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_00y10D00D(
+constexpr const TFunction imageAtomicAnd_00y10D00D(
     BuiltInId::imageAtomicAnd_Image2D1_Int2_Int1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -19848,7 +18931,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_00z10D00D(
+constexpr const TFunction imageAtomicAnd_00z10D00D(
     BuiltInId::imageAtomicAnd_IImage2D1_Int2_Int1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -19857,7 +18940,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01A10D00D(
+constexpr const TFunction imageAtomicAnd_01A10D00D(
     BuiltInId::imageAtomicAnd_UImage2D1_Int2_Int1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -19866,7 +18949,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01B20D00D(
+constexpr const TFunction imageAtomicAnd_01B20D00D(
     BuiltInId::imageAtomicAnd_Image3D1_Int3_Int1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -19875,7 +18958,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01C20D00D(
+constexpr const TFunction imageAtomicAnd_01C20D00D(
     BuiltInId::imageAtomicAnd_IImage3D1_Int3_Int1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -19884,7 +18967,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01D20D00D(
+constexpr const TFunction imageAtomicAnd_01D20D00D(
     BuiltInId::imageAtomicAnd_UImage3D1_Int3_Int1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -19893,7 +18976,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01H20D00D(
+constexpr const TFunction imageAtomicAnd_01H20D00D(
     BuiltInId::imageAtomicAnd_ImageCube1_Int3_Int1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -19902,7 +18985,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01I20D00D(
+constexpr const TFunction imageAtomicAnd_01I20D00D(
     BuiltInId::imageAtomicAnd_IImageCube1_Int3_Int1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -19911,7 +18994,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01J20D00D(
+constexpr const TFunction imageAtomicAnd_01J20D00D(
     BuiltInId::imageAtomicAnd_UImageCube1_Int3_Int1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -19920,7 +19003,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01f00D00D(
+constexpr const TFunction imageAtomicAnd_01f00D00D(
     BuiltInId::imageAtomicAnd_ImageBuffer1_Int1_Int1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -19929,7 +19012,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01g00D00D(
+constexpr const TFunction imageAtomicAnd_01g00D00D(
     BuiltInId::imageAtomicAnd_IImageBuffer1_Int1_Int1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -19938,7 +19021,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01h00D00D(
+constexpr const TFunction imageAtomicAnd_01h00D00D(
     BuiltInId::imageAtomicAnd_UImageBuffer1_Int1_Int1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -19947,7 +19030,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01E20D00D(
+constexpr const TFunction imageAtomicAnd_01E20D00D(
     BuiltInId::imageAtomicAnd_Image2DArray1_Int3_Int1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -19956,7 +19039,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01F20D00D(
+constexpr const TFunction imageAtomicAnd_01F20D00D(
     BuiltInId::imageAtomicAnd_IImage2DArray1_Int3_Int1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -19965,7 +19048,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01G20D00D(
+constexpr const TFunction imageAtomicAnd_01G20D00D(
     BuiltInId::imageAtomicAnd_UImage2DArray1_Int3_Int1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -19974,7 +19057,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01Z20D00D(
+constexpr const TFunction imageAtomicAnd_01Z20D00D(
     BuiltInId::imageAtomicAnd_ImageCubeArray1_Int3_Int1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -19983,7 +19066,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01a20D00D(
+constexpr const TFunction imageAtomicAnd_01a20D00D(
     BuiltInId::imageAtomicAnd_IImageCubeArray1_Int3_Int1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -19992,7 +19075,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01b20D00D(
+constexpr const TFunction imageAtomicAnd_01b20D00D(
     BuiltInId::imageAtomicAnd_UImageCubeArray1_Int3_Int1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -20001,7 +19084,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01K00D00D(
+constexpr const TFunction imageAtomicAnd_01K00D00D(
     BuiltInId::imageAtomicAnd_Image1D1_Int1_Int1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -20010,7 +19093,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01L00D00D(
+constexpr const TFunction imageAtomicAnd_01L00D00D(
     BuiltInId::imageAtomicAnd_IImage1D1_Int1_Int1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -20019,7 +19102,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01M00D00D(
+constexpr const TFunction imageAtomicAnd_01M00D00D(
     BuiltInId::imageAtomicAnd_UImage1D1_Int1_Int1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -20028,7 +19111,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01N10D00D(
+constexpr const TFunction imageAtomicAnd_01N10D00D(
     BuiltInId::imageAtomicAnd_Image1DArray1_Int2_Int1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -20037,7 +19120,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01O10D00D(
+constexpr const TFunction imageAtomicAnd_01O10D00D(
     BuiltInId::imageAtomicAnd_IImage1DArray1_Int2_Int1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -20046,7 +19129,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01P10D00D(
+constexpr const TFunction imageAtomicAnd_01P10D00D(
     BuiltInId::imageAtomicAnd_UImage1DArray1_Int2_Int1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -20055,7 +19138,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01W10D00D(
+constexpr const TFunction imageAtomicAnd_01W10D00D(
     BuiltInId::imageAtomicAnd_Image2DRect1_Int2_Int1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -20064,7 +19147,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01X10D00D(
+constexpr const TFunction imageAtomicAnd_01X10D00D(
     BuiltInId::imageAtomicAnd_IImage2DRect1_Int2_Int1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -20073,7 +19156,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01Y10D00D(
+constexpr const TFunction imageAtomicAnd_01Y10D00D(
     BuiltInId::imageAtomicAnd_UImage2DRect1_Int2_Int1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -20082,7 +19165,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01Q10D00D00D(
+constexpr const TFunction imageAtomicAnd_01Q10D00D00D(
     BuiltInId::imageAtomicAnd_Image2DMS1_Int2_Int1_Int1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -20091,7 +19174,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01R10D00D00D(
+constexpr const TFunction imageAtomicAnd_01R10D00D00D(
     BuiltInId::imageAtomicAnd_IImage2DMS1_Int2_Int1_Int1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -20100,7 +19183,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01S10D00D00D(
+constexpr const TFunction imageAtomicAnd_01S10D00D00D(
     BuiltInId::imageAtomicAnd_UImage2DMS1_Int2_Int1_Int1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -20109,7 +19192,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01T20D00D00D(
+constexpr const TFunction imageAtomicAnd_01T20D00D00D(
     BuiltInId::imageAtomicAnd_Image2DMSArray1_Int3_Int1_Int1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -20118,7 +19201,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01U20D00D00D(
+constexpr const TFunction imageAtomicAnd_01U20D00D00D(
     BuiltInId::imageAtomicAnd_IImage2DMSArray1_Int3_Int1_Int1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -20127,7 +19210,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicAnd_01V20D00D00D(
+constexpr const TFunction imageAtomicAnd_01V20D00D00D(
     BuiltInId::imageAtomicAnd_UImage2DMSArray1_Int3_Int1_Int1,
     BuiltInName::imageAtomicAnd,
     TExtension::UNDEFINED,
@@ -20136,7 +19219,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_00y10D00E(
+constexpr const TFunction imageAtomicOr_00y10D00E(
     BuiltInId::imageAtomicOr_Image2D1_Int2_UInt1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20145,7 +19228,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_00z10D00E(
+constexpr const TFunction imageAtomicOr_00z10D00E(
     BuiltInId::imageAtomicOr_IImage2D1_Int2_UInt1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20154,7 +19237,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01A10D00E(
+constexpr const TFunction imageAtomicOr_01A10D00E(
     BuiltInId::imageAtomicOr_UImage2D1_Int2_UInt1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20163,7 +19246,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01B20D00E(
+constexpr const TFunction imageAtomicOr_01B20D00E(
     BuiltInId::imageAtomicOr_Image3D1_Int3_UInt1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20172,7 +19255,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01C20D00E(
+constexpr const TFunction imageAtomicOr_01C20D00E(
     BuiltInId::imageAtomicOr_IImage3D1_Int3_UInt1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20181,7 +19264,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01D20D00E(
+constexpr const TFunction imageAtomicOr_01D20D00E(
     BuiltInId::imageAtomicOr_UImage3D1_Int3_UInt1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20190,7 +19273,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01H20D00E(
+constexpr const TFunction imageAtomicOr_01H20D00E(
     BuiltInId::imageAtomicOr_ImageCube1_Int3_UInt1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20199,7 +19282,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01I20D00E(
+constexpr const TFunction imageAtomicOr_01I20D00E(
     BuiltInId::imageAtomicOr_IImageCube1_Int3_UInt1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20208,7 +19291,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01J20D00E(
+constexpr const TFunction imageAtomicOr_01J20D00E(
     BuiltInId::imageAtomicOr_UImageCube1_Int3_UInt1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20217,7 +19300,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01f00D00E(
+constexpr const TFunction imageAtomicOr_01f00D00E(
     BuiltInId::imageAtomicOr_ImageBuffer1_Int1_UInt1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20226,7 +19309,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01g00D00E(
+constexpr const TFunction imageAtomicOr_01g00D00E(
     BuiltInId::imageAtomicOr_IImageBuffer1_Int1_UInt1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20235,7 +19318,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01h00D00E(
+constexpr const TFunction imageAtomicOr_01h00D00E(
     BuiltInId::imageAtomicOr_UImageBuffer1_Int1_UInt1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20244,7 +19327,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01E20D00E(
+constexpr const TFunction imageAtomicOr_01E20D00E(
     BuiltInId::imageAtomicOr_Image2DArray1_Int3_UInt1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20253,7 +19336,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01F20D00E(
+constexpr const TFunction imageAtomicOr_01F20D00E(
     BuiltInId::imageAtomicOr_IImage2DArray1_Int3_UInt1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20262,7 +19345,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01G20D00E(
+constexpr const TFunction imageAtomicOr_01G20D00E(
     BuiltInId::imageAtomicOr_UImage2DArray1_Int3_UInt1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20271,7 +19354,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01Z20D00E(
+constexpr const TFunction imageAtomicOr_01Z20D00E(
     BuiltInId::imageAtomicOr_ImageCubeArray1_Int3_UInt1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20280,7 +19363,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01a20D00E(
+constexpr const TFunction imageAtomicOr_01a20D00E(
     BuiltInId::imageAtomicOr_IImageCubeArray1_Int3_UInt1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20289,7 +19372,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01b20D00E(
+constexpr const TFunction imageAtomicOr_01b20D00E(
     BuiltInId::imageAtomicOr_UImageCubeArray1_Int3_UInt1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20298,7 +19381,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01K00D00E(
+constexpr const TFunction imageAtomicOr_01K00D00E(
     BuiltInId::imageAtomicOr_Image1D1_Int1_UInt1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20307,7 +19390,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01L00D00E(
+constexpr const TFunction imageAtomicOr_01L00D00E(
     BuiltInId::imageAtomicOr_IImage1D1_Int1_UInt1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20316,7 +19399,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01M00D00E(
+constexpr const TFunction imageAtomicOr_01M00D00E(
     BuiltInId::imageAtomicOr_UImage1D1_Int1_UInt1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20325,7 +19408,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01N10D00E(
+constexpr const TFunction imageAtomicOr_01N10D00E(
     BuiltInId::imageAtomicOr_Image1DArray1_Int2_UInt1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20334,7 +19417,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01O10D00E(
+constexpr const TFunction imageAtomicOr_01O10D00E(
     BuiltInId::imageAtomicOr_IImage1DArray1_Int2_UInt1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20343,7 +19426,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01P10D00E(
+constexpr const TFunction imageAtomicOr_01P10D00E(
     BuiltInId::imageAtomicOr_UImage1DArray1_Int2_UInt1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20352,7 +19435,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01W10D00E(
+constexpr const TFunction imageAtomicOr_01W10D00E(
     BuiltInId::imageAtomicOr_Image2DRect1_Int2_UInt1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20361,7 +19444,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01X10D00E(
+constexpr const TFunction imageAtomicOr_01X10D00E(
     BuiltInId::imageAtomicOr_IImage2DRect1_Int2_UInt1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20370,7 +19453,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01Y10D00E(
+constexpr const TFunction imageAtomicOr_01Y10D00E(
     BuiltInId::imageAtomicOr_UImage2DRect1_Int2_UInt1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20379,7 +19462,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01Q10D00D00E(
+constexpr const TFunction imageAtomicOr_01Q10D00D00E(
     BuiltInId::imageAtomicOr_Image2DMS1_Int2_Int1_UInt1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20388,7 +19471,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01R10D00D00E(
+constexpr const TFunction imageAtomicOr_01R10D00D00E(
     BuiltInId::imageAtomicOr_IImage2DMS1_Int2_Int1_UInt1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20397,7 +19480,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01S10D00D00E(
+constexpr const TFunction imageAtomicOr_01S10D00D00E(
     BuiltInId::imageAtomicOr_UImage2DMS1_Int2_Int1_UInt1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20406,7 +19489,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01T20D00D00E(
+constexpr const TFunction imageAtomicOr_01T20D00D00E(
     BuiltInId::imageAtomicOr_Image2DMSArray1_Int3_Int1_UInt1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20415,7 +19498,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01U20D00D00E(
+constexpr const TFunction imageAtomicOr_01U20D00D00E(
     BuiltInId::imageAtomicOr_IImage2DMSArray1_Int3_Int1_UInt1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20424,7 +19507,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01V20D00D00E(
+constexpr const TFunction imageAtomicOr_01V20D00D00E(
     BuiltInId::imageAtomicOr_UImage2DMSArray1_Int3_Int1_UInt1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20433,7 +19516,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_00y10D00D(
+constexpr const TFunction imageAtomicOr_00y10D00D(
     BuiltInId::imageAtomicOr_Image2D1_Int2_Int1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20442,7 +19525,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_00z10D00D(
+constexpr const TFunction imageAtomicOr_00z10D00D(
     BuiltInId::imageAtomicOr_IImage2D1_Int2_Int1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20451,7 +19534,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01A10D00D(
+constexpr const TFunction imageAtomicOr_01A10D00D(
     BuiltInId::imageAtomicOr_UImage2D1_Int2_Int1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20460,7 +19543,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01B20D00D(
+constexpr const TFunction imageAtomicOr_01B20D00D(
     BuiltInId::imageAtomicOr_Image3D1_Int3_Int1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20469,7 +19552,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01C20D00D(
+constexpr const TFunction imageAtomicOr_01C20D00D(
     BuiltInId::imageAtomicOr_IImage3D1_Int3_Int1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20478,7 +19561,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01D20D00D(
+constexpr const TFunction imageAtomicOr_01D20D00D(
     BuiltInId::imageAtomicOr_UImage3D1_Int3_Int1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20487,7 +19570,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01H20D00D(
+constexpr const TFunction imageAtomicOr_01H20D00D(
     BuiltInId::imageAtomicOr_ImageCube1_Int3_Int1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20496,7 +19579,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01I20D00D(
+constexpr const TFunction imageAtomicOr_01I20D00D(
     BuiltInId::imageAtomicOr_IImageCube1_Int3_Int1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20505,7 +19588,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01J20D00D(
+constexpr const TFunction imageAtomicOr_01J20D00D(
     BuiltInId::imageAtomicOr_UImageCube1_Int3_Int1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20514,7 +19597,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01f00D00D(
+constexpr const TFunction imageAtomicOr_01f00D00D(
     BuiltInId::imageAtomicOr_ImageBuffer1_Int1_Int1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20523,7 +19606,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01g00D00D(
+constexpr const TFunction imageAtomicOr_01g00D00D(
     BuiltInId::imageAtomicOr_IImageBuffer1_Int1_Int1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20532,7 +19615,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01h00D00D(
+constexpr const TFunction imageAtomicOr_01h00D00D(
     BuiltInId::imageAtomicOr_UImageBuffer1_Int1_Int1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20541,7 +19624,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01E20D00D(
+constexpr const TFunction imageAtomicOr_01E20D00D(
     BuiltInId::imageAtomicOr_Image2DArray1_Int3_Int1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20550,7 +19633,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01F20D00D(
+constexpr const TFunction imageAtomicOr_01F20D00D(
     BuiltInId::imageAtomicOr_IImage2DArray1_Int3_Int1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20559,7 +19642,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01G20D00D(
+constexpr const TFunction imageAtomicOr_01G20D00D(
     BuiltInId::imageAtomicOr_UImage2DArray1_Int3_Int1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20568,7 +19651,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01Z20D00D(
+constexpr const TFunction imageAtomicOr_01Z20D00D(
     BuiltInId::imageAtomicOr_ImageCubeArray1_Int3_Int1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20577,7 +19660,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01a20D00D(
+constexpr const TFunction imageAtomicOr_01a20D00D(
     BuiltInId::imageAtomicOr_IImageCubeArray1_Int3_Int1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20586,7 +19669,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01b20D00D(
+constexpr const TFunction imageAtomicOr_01b20D00D(
     BuiltInId::imageAtomicOr_UImageCubeArray1_Int3_Int1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20595,7 +19678,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01K00D00D(
+constexpr const TFunction imageAtomicOr_01K00D00D(
     BuiltInId::imageAtomicOr_Image1D1_Int1_Int1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20604,7 +19687,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01L00D00D(
+constexpr const TFunction imageAtomicOr_01L00D00D(
     BuiltInId::imageAtomicOr_IImage1D1_Int1_Int1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20613,7 +19696,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01M00D00D(
+constexpr const TFunction imageAtomicOr_01M00D00D(
     BuiltInId::imageAtomicOr_UImage1D1_Int1_Int1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20622,7 +19705,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01N10D00D(
+constexpr const TFunction imageAtomicOr_01N10D00D(
     BuiltInId::imageAtomicOr_Image1DArray1_Int2_Int1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20631,7 +19714,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01O10D00D(
+constexpr const TFunction imageAtomicOr_01O10D00D(
     BuiltInId::imageAtomicOr_IImage1DArray1_Int2_Int1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20640,7 +19723,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01P10D00D(
+constexpr const TFunction imageAtomicOr_01P10D00D(
     BuiltInId::imageAtomicOr_UImage1DArray1_Int2_Int1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20649,7 +19732,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01W10D00D(
+constexpr const TFunction imageAtomicOr_01W10D00D(
     BuiltInId::imageAtomicOr_Image2DRect1_Int2_Int1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20658,7 +19741,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01X10D00D(
+constexpr const TFunction imageAtomicOr_01X10D00D(
     BuiltInId::imageAtomicOr_IImage2DRect1_Int2_Int1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20667,7 +19750,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01Y10D00D(
+constexpr const TFunction imageAtomicOr_01Y10D00D(
     BuiltInId::imageAtomicOr_UImage2DRect1_Int2_Int1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20676,7 +19759,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01Q10D00D00D(
+constexpr const TFunction imageAtomicOr_01Q10D00D00D(
     BuiltInId::imageAtomicOr_Image2DMS1_Int2_Int1_Int1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20685,7 +19768,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01R10D00D00D(
+constexpr const TFunction imageAtomicOr_01R10D00D00D(
     BuiltInId::imageAtomicOr_IImage2DMS1_Int2_Int1_Int1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20694,7 +19777,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01S10D00D00D(
+constexpr const TFunction imageAtomicOr_01S10D00D00D(
     BuiltInId::imageAtomicOr_UImage2DMS1_Int2_Int1_Int1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20703,7 +19786,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01T20D00D00D(
+constexpr const TFunction imageAtomicOr_01T20D00D00D(
     BuiltInId::imageAtomicOr_Image2DMSArray1_Int3_Int1_Int1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20712,7 +19795,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01U20D00D00D(
+constexpr const TFunction imageAtomicOr_01U20D00D00D(
     BuiltInId::imageAtomicOr_IImage2DMSArray1_Int3_Int1_Int1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20721,7 +19804,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicOr_01V20D00D00D(
+constexpr const TFunction imageAtomicOr_01V20D00D00D(
     BuiltInId::imageAtomicOr_UImage2DMSArray1_Int3_Int1_Int1,
     BuiltInName::imageAtomicOr,
     TExtension::UNDEFINED,
@@ -20730,7 +19813,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_00y10D00E(
+constexpr const TFunction imageAtomicXor_00y10D00E(
     BuiltInId::imageAtomicXor_Image2D1_Int2_UInt1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -20739,7 +19822,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_00z10D00E(
+constexpr const TFunction imageAtomicXor_00z10D00E(
     BuiltInId::imageAtomicXor_IImage2D1_Int2_UInt1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -20748,7 +19831,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01A10D00E(
+constexpr const TFunction imageAtomicXor_01A10D00E(
     BuiltInId::imageAtomicXor_UImage2D1_Int2_UInt1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -20757,7 +19840,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01B20D00E(
+constexpr const TFunction imageAtomicXor_01B20D00E(
     BuiltInId::imageAtomicXor_Image3D1_Int3_UInt1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -20766,7 +19849,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01C20D00E(
+constexpr const TFunction imageAtomicXor_01C20D00E(
     BuiltInId::imageAtomicXor_IImage3D1_Int3_UInt1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -20775,7 +19858,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01D20D00E(
+constexpr const TFunction imageAtomicXor_01D20D00E(
     BuiltInId::imageAtomicXor_UImage3D1_Int3_UInt1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -20784,7 +19867,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01H20D00E(
+constexpr const TFunction imageAtomicXor_01H20D00E(
     BuiltInId::imageAtomicXor_ImageCube1_Int3_UInt1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -20793,7 +19876,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01I20D00E(
+constexpr const TFunction imageAtomicXor_01I20D00E(
     BuiltInId::imageAtomicXor_IImageCube1_Int3_UInt1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -20802,7 +19885,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01J20D00E(
+constexpr const TFunction imageAtomicXor_01J20D00E(
     BuiltInId::imageAtomicXor_UImageCube1_Int3_UInt1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -20811,7 +19894,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01f00D00E(
+constexpr const TFunction imageAtomicXor_01f00D00E(
     BuiltInId::imageAtomicXor_ImageBuffer1_Int1_UInt1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -20820,7 +19903,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01g00D00E(
+constexpr const TFunction imageAtomicXor_01g00D00E(
     BuiltInId::imageAtomicXor_IImageBuffer1_Int1_UInt1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -20829,7 +19912,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01h00D00E(
+constexpr const TFunction imageAtomicXor_01h00D00E(
     BuiltInId::imageAtomicXor_UImageBuffer1_Int1_UInt1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -20838,7 +19921,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01E20D00E(
+constexpr const TFunction imageAtomicXor_01E20D00E(
     BuiltInId::imageAtomicXor_Image2DArray1_Int3_UInt1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -20847,7 +19930,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01F20D00E(
+constexpr const TFunction imageAtomicXor_01F20D00E(
     BuiltInId::imageAtomicXor_IImage2DArray1_Int3_UInt1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -20856,7 +19939,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01G20D00E(
+constexpr const TFunction imageAtomicXor_01G20D00E(
     BuiltInId::imageAtomicXor_UImage2DArray1_Int3_UInt1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -20865,7 +19948,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01Z20D00E(
+constexpr const TFunction imageAtomicXor_01Z20D00E(
     BuiltInId::imageAtomicXor_ImageCubeArray1_Int3_UInt1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -20874,7 +19957,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01a20D00E(
+constexpr const TFunction imageAtomicXor_01a20D00E(
     BuiltInId::imageAtomicXor_IImageCubeArray1_Int3_UInt1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -20883,7 +19966,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01b20D00E(
+constexpr const TFunction imageAtomicXor_01b20D00E(
     BuiltInId::imageAtomicXor_UImageCubeArray1_Int3_UInt1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -20892,7 +19975,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01K00D00E(
+constexpr const TFunction imageAtomicXor_01K00D00E(
     BuiltInId::imageAtomicXor_Image1D1_Int1_UInt1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -20901,7 +19984,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01L00D00E(
+constexpr const TFunction imageAtomicXor_01L00D00E(
     BuiltInId::imageAtomicXor_IImage1D1_Int1_UInt1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -20910,7 +19993,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01M00D00E(
+constexpr const TFunction imageAtomicXor_01M00D00E(
     BuiltInId::imageAtomicXor_UImage1D1_Int1_UInt1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -20919,7 +20002,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01N10D00E(
+constexpr const TFunction imageAtomicXor_01N10D00E(
     BuiltInId::imageAtomicXor_Image1DArray1_Int2_UInt1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -20928,7 +20011,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01O10D00E(
+constexpr const TFunction imageAtomicXor_01O10D00E(
     BuiltInId::imageAtomicXor_IImage1DArray1_Int2_UInt1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -20937,7 +20020,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01P10D00E(
+constexpr const TFunction imageAtomicXor_01P10D00E(
     BuiltInId::imageAtomicXor_UImage1DArray1_Int2_UInt1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -20946,7 +20029,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01W10D00E(
+constexpr const TFunction imageAtomicXor_01W10D00E(
     BuiltInId::imageAtomicXor_Image2DRect1_Int2_UInt1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -20955,7 +20038,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01X10D00E(
+constexpr const TFunction imageAtomicXor_01X10D00E(
     BuiltInId::imageAtomicXor_IImage2DRect1_Int2_UInt1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -20964,7 +20047,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01Y10D00E(
+constexpr const TFunction imageAtomicXor_01Y10D00E(
     BuiltInId::imageAtomicXor_UImage2DRect1_Int2_UInt1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -20973,7 +20056,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01Q10D00D00E(
+constexpr const TFunction imageAtomicXor_01Q10D00D00E(
     BuiltInId::imageAtomicXor_Image2DMS1_Int2_Int1_UInt1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -20982,7 +20065,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01R10D00D00E(
+constexpr const TFunction imageAtomicXor_01R10D00D00E(
     BuiltInId::imageAtomicXor_IImage2DMS1_Int2_Int1_UInt1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -20991,7 +20074,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01S10D00D00E(
+constexpr const TFunction imageAtomicXor_01S10D00D00E(
     BuiltInId::imageAtomicXor_UImage2DMS1_Int2_Int1_UInt1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -21000,7 +20083,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01T20D00D00E(
+constexpr const TFunction imageAtomicXor_01T20D00D00E(
     BuiltInId::imageAtomicXor_Image2DMSArray1_Int3_Int1_UInt1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -21009,7 +20092,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01U20D00D00E(
+constexpr const TFunction imageAtomicXor_01U20D00D00E(
     BuiltInId::imageAtomicXor_IImage2DMSArray1_Int3_Int1_UInt1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -21018,7 +20101,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01V20D00D00E(
+constexpr const TFunction imageAtomicXor_01V20D00D00E(
     BuiltInId::imageAtomicXor_UImage2DMSArray1_Int3_Int1_UInt1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -21027,7 +20110,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_00y10D00D(
+constexpr const TFunction imageAtomicXor_00y10D00D(
     BuiltInId::imageAtomicXor_Image2D1_Int2_Int1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -21036,7 +20119,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_00z10D00D(
+constexpr const TFunction imageAtomicXor_00z10D00D(
     BuiltInId::imageAtomicXor_IImage2D1_Int2_Int1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -21045,7 +20128,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01A10D00D(
+constexpr const TFunction imageAtomicXor_01A10D00D(
     BuiltInId::imageAtomicXor_UImage2D1_Int2_Int1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -21054,7 +20137,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01B20D00D(
+constexpr const TFunction imageAtomicXor_01B20D00D(
     BuiltInId::imageAtomicXor_Image3D1_Int3_Int1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -21063,7 +20146,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01C20D00D(
+constexpr const TFunction imageAtomicXor_01C20D00D(
     BuiltInId::imageAtomicXor_IImage3D1_Int3_Int1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -21072,7 +20155,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01D20D00D(
+constexpr const TFunction imageAtomicXor_01D20D00D(
     BuiltInId::imageAtomicXor_UImage3D1_Int3_Int1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -21081,7 +20164,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01H20D00D(
+constexpr const TFunction imageAtomicXor_01H20D00D(
     BuiltInId::imageAtomicXor_ImageCube1_Int3_Int1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -21090,7 +20173,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01I20D00D(
+constexpr const TFunction imageAtomicXor_01I20D00D(
     BuiltInId::imageAtomicXor_IImageCube1_Int3_Int1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -21099,7 +20182,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01J20D00D(
+constexpr const TFunction imageAtomicXor_01J20D00D(
     BuiltInId::imageAtomicXor_UImageCube1_Int3_Int1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -21108,7 +20191,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01f00D00D(
+constexpr const TFunction imageAtomicXor_01f00D00D(
     BuiltInId::imageAtomicXor_ImageBuffer1_Int1_Int1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -21117,7 +20200,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01g00D00D(
+constexpr const TFunction imageAtomicXor_01g00D00D(
     BuiltInId::imageAtomicXor_IImageBuffer1_Int1_Int1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -21126,7 +20209,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01h00D00D(
+constexpr const TFunction imageAtomicXor_01h00D00D(
     BuiltInId::imageAtomicXor_UImageBuffer1_Int1_Int1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -21135,7 +20218,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01E20D00D(
+constexpr const TFunction imageAtomicXor_01E20D00D(
     BuiltInId::imageAtomicXor_Image2DArray1_Int3_Int1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -21144,7 +20227,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01F20D00D(
+constexpr const TFunction imageAtomicXor_01F20D00D(
     BuiltInId::imageAtomicXor_IImage2DArray1_Int3_Int1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -21153,7 +20236,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01G20D00D(
+constexpr const TFunction imageAtomicXor_01G20D00D(
     BuiltInId::imageAtomicXor_UImage2DArray1_Int3_Int1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -21162,7 +20245,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01Z20D00D(
+constexpr const TFunction imageAtomicXor_01Z20D00D(
     BuiltInId::imageAtomicXor_ImageCubeArray1_Int3_Int1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -21171,7 +20254,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01a20D00D(
+constexpr const TFunction imageAtomicXor_01a20D00D(
     BuiltInId::imageAtomicXor_IImageCubeArray1_Int3_Int1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -21180,7 +20263,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01b20D00D(
+constexpr const TFunction imageAtomicXor_01b20D00D(
     BuiltInId::imageAtomicXor_UImageCubeArray1_Int3_Int1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -21189,7 +20272,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01K00D00D(
+constexpr const TFunction imageAtomicXor_01K00D00D(
     BuiltInId::imageAtomicXor_Image1D1_Int1_Int1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -21198,7 +20281,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01L00D00D(
+constexpr const TFunction imageAtomicXor_01L00D00D(
     BuiltInId::imageAtomicXor_IImage1D1_Int1_Int1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -21207,7 +20290,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01M00D00D(
+constexpr const TFunction imageAtomicXor_01M00D00D(
     BuiltInId::imageAtomicXor_UImage1D1_Int1_Int1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -21216,7 +20299,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01N10D00D(
+constexpr const TFunction imageAtomicXor_01N10D00D(
     BuiltInId::imageAtomicXor_Image1DArray1_Int2_Int1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -21225,7 +20308,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01O10D00D(
+constexpr const TFunction imageAtomicXor_01O10D00D(
     BuiltInId::imageAtomicXor_IImage1DArray1_Int2_Int1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -21234,7 +20317,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01P10D00D(
+constexpr const TFunction imageAtomicXor_01P10D00D(
     BuiltInId::imageAtomicXor_UImage1DArray1_Int2_Int1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -21243,7 +20326,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01W10D00D(
+constexpr const TFunction imageAtomicXor_01W10D00D(
     BuiltInId::imageAtomicXor_Image2DRect1_Int2_Int1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -21252,7 +20335,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01X10D00D(
+constexpr const TFunction imageAtomicXor_01X10D00D(
     BuiltInId::imageAtomicXor_IImage2DRect1_Int2_Int1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -21261,7 +20344,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01Y10D00D(
+constexpr const TFunction imageAtomicXor_01Y10D00D(
     BuiltInId::imageAtomicXor_UImage2DRect1_Int2_Int1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -21270,7 +20353,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01Q10D00D00D(
+constexpr const TFunction imageAtomicXor_01Q10D00D00D(
     BuiltInId::imageAtomicXor_Image2DMS1_Int2_Int1_Int1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -21279,7 +20362,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01R10D00D00D(
+constexpr const TFunction imageAtomicXor_01R10D00D00D(
     BuiltInId::imageAtomicXor_IImage2DMS1_Int2_Int1_Int1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -21288,7 +20371,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01S10D00D00D(
+constexpr const TFunction imageAtomicXor_01S10D00D00D(
     BuiltInId::imageAtomicXor_UImage2DMS1_Int2_Int1_Int1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -21297,7 +20380,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01T20D00D00D(
+constexpr const TFunction imageAtomicXor_01T20D00D00D(
     BuiltInId::imageAtomicXor_Image2DMSArray1_Int3_Int1_Int1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -21306,7 +20389,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01U20D00D00D(
+constexpr const TFunction imageAtomicXor_01U20D00D00D(
     BuiltInId::imageAtomicXor_IImage2DMSArray1_Int3_Int1_Int1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -21315,7 +20398,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicXor_01V20D00D00D(
+constexpr const TFunction imageAtomicXor_01V20D00D00D(
     BuiltInId::imageAtomicXor_UImage2DMSArray1_Int3_Int1_Int1,
     BuiltInName::imageAtomicXor,
     TExtension::UNDEFINED,
@@ -21324,7 +20407,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_00y10D00E(
+constexpr const TFunction imageAtomicExchange_00y10D00E(
     BuiltInId::imageAtomicExchange_Image2D1_Int2_UInt1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21333,7 +20416,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_00z10D00E(
+constexpr const TFunction imageAtomicExchange_00z10D00E(
     BuiltInId::imageAtomicExchange_IImage2D1_Int2_UInt1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21342,7 +20425,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01A10D00E(
+constexpr const TFunction imageAtomicExchange_01A10D00E(
     BuiltInId::imageAtomicExchange_UImage2D1_Int2_UInt1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21351,7 +20434,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01B20D00E(
+constexpr const TFunction imageAtomicExchange_01B20D00E(
     BuiltInId::imageAtomicExchange_Image3D1_Int3_UInt1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21360,7 +20443,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01C20D00E(
+constexpr const TFunction imageAtomicExchange_01C20D00E(
     BuiltInId::imageAtomicExchange_IImage3D1_Int3_UInt1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21369,7 +20452,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01D20D00E(
+constexpr const TFunction imageAtomicExchange_01D20D00E(
     BuiltInId::imageAtomicExchange_UImage3D1_Int3_UInt1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21378,7 +20461,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01H20D00E(
+constexpr const TFunction imageAtomicExchange_01H20D00E(
     BuiltInId::imageAtomicExchange_ImageCube1_Int3_UInt1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21387,7 +20470,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01I20D00E(
+constexpr const TFunction imageAtomicExchange_01I20D00E(
     BuiltInId::imageAtomicExchange_IImageCube1_Int3_UInt1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21396,7 +20479,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01J20D00E(
+constexpr const TFunction imageAtomicExchange_01J20D00E(
     BuiltInId::imageAtomicExchange_UImageCube1_Int3_UInt1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21405,7 +20488,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01f00D00E(
+constexpr const TFunction imageAtomicExchange_01f00D00E(
     BuiltInId::imageAtomicExchange_ImageBuffer1_Int1_UInt1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21414,7 +20497,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01g00D00E(
+constexpr const TFunction imageAtomicExchange_01g00D00E(
     BuiltInId::imageAtomicExchange_IImageBuffer1_Int1_UInt1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21423,7 +20506,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01h00D00E(
+constexpr const TFunction imageAtomicExchange_01h00D00E(
     BuiltInId::imageAtomicExchange_UImageBuffer1_Int1_UInt1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21432,7 +20515,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01E20D00E(
+constexpr const TFunction imageAtomicExchange_01E20D00E(
     BuiltInId::imageAtomicExchange_Image2DArray1_Int3_UInt1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21441,7 +20524,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01F20D00E(
+constexpr const TFunction imageAtomicExchange_01F20D00E(
     BuiltInId::imageAtomicExchange_IImage2DArray1_Int3_UInt1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21450,7 +20533,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01G20D00E(
+constexpr const TFunction imageAtomicExchange_01G20D00E(
     BuiltInId::imageAtomicExchange_UImage2DArray1_Int3_UInt1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21459,7 +20542,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01Z20D00E(
+constexpr const TFunction imageAtomicExchange_01Z20D00E(
     BuiltInId::imageAtomicExchange_ImageCubeArray1_Int3_UInt1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21468,7 +20551,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01a20D00E(
+constexpr const TFunction imageAtomicExchange_01a20D00E(
     BuiltInId::imageAtomicExchange_IImageCubeArray1_Int3_UInt1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21477,7 +20560,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01b20D00E(
+constexpr const TFunction imageAtomicExchange_01b20D00E(
     BuiltInId::imageAtomicExchange_UImageCubeArray1_Int3_UInt1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21486,7 +20569,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01K00D00E(
+constexpr const TFunction imageAtomicExchange_01K00D00E(
     BuiltInId::imageAtomicExchange_Image1D1_Int1_UInt1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21495,7 +20578,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01L00D00E(
+constexpr const TFunction imageAtomicExchange_01L00D00E(
     BuiltInId::imageAtomicExchange_IImage1D1_Int1_UInt1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21504,7 +20587,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01M00D00E(
+constexpr const TFunction imageAtomicExchange_01M00D00E(
     BuiltInId::imageAtomicExchange_UImage1D1_Int1_UInt1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21513,7 +20596,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01N10D00E(
+constexpr const TFunction imageAtomicExchange_01N10D00E(
     BuiltInId::imageAtomicExchange_Image1DArray1_Int2_UInt1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21522,7 +20605,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01O10D00E(
+constexpr const TFunction imageAtomicExchange_01O10D00E(
     BuiltInId::imageAtomicExchange_IImage1DArray1_Int2_UInt1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21531,7 +20614,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01P10D00E(
+constexpr const TFunction imageAtomicExchange_01P10D00E(
     BuiltInId::imageAtomicExchange_UImage1DArray1_Int2_UInt1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21540,7 +20623,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01W10D00E(
+constexpr const TFunction imageAtomicExchange_01W10D00E(
     BuiltInId::imageAtomicExchange_Image2DRect1_Int2_UInt1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21549,7 +20632,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01X10D00E(
+constexpr const TFunction imageAtomicExchange_01X10D00E(
     BuiltInId::imageAtomicExchange_IImage2DRect1_Int2_UInt1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21558,7 +20641,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01Y10D00E(
+constexpr const TFunction imageAtomicExchange_01Y10D00E(
     BuiltInId::imageAtomicExchange_UImage2DRect1_Int2_UInt1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21567,7 +20650,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01Q10D00D00E(
+constexpr const TFunction imageAtomicExchange_01Q10D00D00E(
     BuiltInId::imageAtomicExchange_Image2DMS1_Int2_Int1_UInt1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21576,7 +20659,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01R10D00D00E(
+constexpr const TFunction imageAtomicExchange_01R10D00D00E(
     BuiltInId::imageAtomicExchange_IImage2DMS1_Int2_Int1_UInt1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21585,7 +20668,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01S10D00D00E(
+constexpr const TFunction imageAtomicExchange_01S10D00D00E(
     BuiltInId::imageAtomicExchange_UImage2DMS1_Int2_Int1_UInt1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21594,7 +20677,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01T20D00D00E(
+constexpr const TFunction imageAtomicExchange_01T20D00D00E(
     BuiltInId::imageAtomicExchange_Image2DMSArray1_Int3_Int1_UInt1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21603,7 +20686,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01U20D00D00E(
+constexpr const TFunction imageAtomicExchange_01U20D00D00E(
     BuiltInId::imageAtomicExchange_IImage2DMSArray1_Int3_Int1_UInt1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21612,7 +20695,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01V20D00D00E(
+constexpr const TFunction imageAtomicExchange_01V20D00D00E(
     BuiltInId::imageAtomicExchange_UImage2DMSArray1_Int3_Int1_UInt1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21621,7 +20704,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_00y10D00D(
+constexpr const TFunction imageAtomicExchange_00y10D00D(
     BuiltInId::imageAtomicExchange_Image2D1_Int2_Int1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21630,7 +20713,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_00z10D00D(
+constexpr const TFunction imageAtomicExchange_00z10D00D(
     BuiltInId::imageAtomicExchange_IImage2D1_Int2_Int1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21639,7 +20722,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01A10D00D(
+constexpr const TFunction imageAtomicExchange_01A10D00D(
     BuiltInId::imageAtomicExchange_UImage2D1_Int2_Int1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21648,7 +20731,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01B20D00D(
+constexpr const TFunction imageAtomicExchange_01B20D00D(
     BuiltInId::imageAtomicExchange_Image3D1_Int3_Int1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21657,7 +20740,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01C20D00D(
+constexpr const TFunction imageAtomicExchange_01C20D00D(
     BuiltInId::imageAtomicExchange_IImage3D1_Int3_Int1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21666,7 +20749,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01D20D00D(
+constexpr const TFunction imageAtomicExchange_01D20D00D(
     BuiltInId::imageAtomicExchange_UImage3D1_Int3_Int1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21675,7 +20758,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01H20D00D(
+constexpr const TFunction imageAtomicExchange_01H20D00D(
     BuiltInId::imageAtomicExchange_ImageCube1_Int3_Int1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21684,7 +20767,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01I20D00D(
+constexpr const TFunction imageAtomicExchange_01I20D00D(
     BuiltInId::imageAtomicExchange_IImageCube1_Int3_Int1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21693,7 +20776,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01J20D00D(
+constexpr const TFunction imageAtomicExchange_01J20D00D(
     BuiltInId::imageAtomicExchange_UImageCube1_Int3_Int1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21702,7 +20785,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01f00D00D(
+constexpr const TFunction imageAtomicExchange_01f00D00D(
     BuiltInId::imageAtomicExchange_ImageBuffer1_Int1_Int1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21711,7 +20794,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01g00D00D(
+constexpr const TFunction imageAtomicExchange_01g00D00D(
     BuiltInId::imageAtomicExchange_IImageBuffer1_Int1_Int1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21720,7 +20803,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01h00D00D(
+constexpr const TFunction imageAtomicExchange_01h00D00D(
     BuiltInId::imageAtomicExchange_UImageBuffer1_Int1_Int1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21729,7 +20812,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01E20D00D(
+constexpr const TFunction imageAtomicExchange_01E20D00D(
     BuiltInId::imageAtomicExchange_Image2DArray1_Int3_Int1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21738,7 +20821,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01F20D00D(
+constexpr const TFunction imageAtomicExchange_01F20D00D(
     BuiltInId::imageAtomicExchange_IImage2DArray1_Int3_Int1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21747,7 +20830,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01G20D00D(
+constexpr const TFunction imageAtomicExchange_01G20D00D(
     BuiltInId::imageAtomicExchange_UImage2DArray1_Int3_Int1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21756,7 +20839,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01Z20D00D(
+constexpr const TFunction imageAtomicExchange_01Z20D00D(
     BuiltInId::imageAtomicExchange_ImageCubeArray1_Int3_Int1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21765,7 +20848,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01a20D00D(
+constexpr const TFunction imageAtomicExchange_01a20D00D(
     BuiltInId::imageAtomicExchange_IImageCubeArray1_Int3_Int1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21774,7 +20857,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01b20D00D(
+constexpr const TFunction imageAtomicExchange_01b20D00D(
     BuiltInId::imageAtomicExchange_UImageCubeArray1_Int3_Int1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21783,7 +20866,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01K00D00D(
+constexpr const TFunction imageAtomicExchange_01K00D00D(
     BuiltInId::imageAtomicExchange_Image1D1_Int1_Int1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21792,7 +20875,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01L00D00D(
+constexpr const TFunction imageAtomicExchange_01L00D00D(
     BuiltInId::imageAtomicExchange_IImage1D1_Int1_Int1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21801,7 +20884,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01M00D00D(
+constexpr const TFunction imageAtomicExchange_01M00D00D(
     BuiltInId::imageAtomicExchange_UImage1D1_Int1_Int1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21810,7 +20893,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01N10D00D(
+constexpr const TFunction imageAtomicExchange_01N10D00D(
     BuiltInId::imageAtomicExchange_Image1DArray1_Int2_Int1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21819,7 +20902,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01O10D00D(
+constexpr const TFunction imageAtomicExchange_01O10D00D(
     BuiltInId::imageAtomicExchange_IImage1DArray1_Int2_Int1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21828,7 +20911,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01P10D00D(
+constexpr const TFunction imageAtomicExchange_01P10D00D(
     BuiltInId::imageAtomicExchange_UImage1DArray1_Int2_Int1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21837,7 +20920,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01W10D00D(
+constexpr const TFunction imageAtomicExchange_01W10D00D(
     BuiltInId::imageAtomicExchange_Image2DRect1_Int2_Int1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21846,7 +20929,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01X10D00D(
+constexpr const TFunction imageAtomicExchange_01X10D00D(
     BuiltInId::imageAtomicExchange_IImage2DRect1_Int2_Int1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21855,7 +20938,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01Y10D00D(
+constexpr const TFunction imageAtomicExchange_01Y10D00D(
     BuiltInId::imageAtomicExchange_UImage2DRect1_Int2_Int1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21864,7 +20947,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01Q10D00D00D(
+constexpr const TFunction imageAtomicExchange_01Q10D00D00D(
     BuiltInId::imageAtomicExchange_Image2DMS1_Int2_Int1_Int1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21873,7 +20956,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01R10D00D00D(
+constexpr const TFunction imageAtomicExchange_01R10D00D00D(
     BuiltInId::imageAtomicExchange_IImage2DMS1_Int2_Int1_Int1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21882,7 +20965,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01S10D00D00D(
+constexpr const TFunction imageAtomicExchange_01S10D00D00D(
     BuiltInId::imageAtomicExchange_UImage2DMS1_Int2_Int1_Int1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21891,7 +20974,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01T20D00D00D(
+constexpr const TFunction imageAtomicExchange_01T20D00D00D(
     BuiltInId::imageAtomicExchange_Image2DMSArray1_Int3_Int1_Int1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21900,7 +20983,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01U20D00D00D(
+constexpr const TFunction imageAtomicExchange_01U20D00D00D(
     BuiltInId::imageAtomicExchange_IImage2DMSArray1_Int3_Int1_Int1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21909,7 +20992,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01V20D00D00D(
+constexpr const TFunction imageAtomicExchange_01V20D00D00D(
     BuiltInId::imageAtomicExchange_UImage2DMSArray1_Int3_Int1_Int1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21918,7 +21001,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_00y10D00B(
+constexpr const TFunction imageAtomicExchange_00y10D00B(
     BuiltInId::imageAtomicExchange_Image2D1_Int2_Float1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21927,7 +21010,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_00z10D00B(
+constexpr const TFunction imageAtomicExchange_00z10D00B(
     BuiltInId::imageAtomicExchange_IImage2D1_Int2_Float1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21936,7 +21019,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01A10D00B(
+constexpr const TFunction imageAtomicExchange_01A10D00B(
     BuiltInId::imageAtomicExchange_UImage2D1_Int2_Float1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21945,7 +21028,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01B20D00B(
+constexpr const TFunction imageAtomicExchange_01B20D00B(
     BuiltInId::imageAtomicExchange_Image3D1_Int3_Float1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21954,7 +21037,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01C20D00B(
+constexpr const TFunction imageAtomicExchange_01C20D00B(
     BuiltInId::imageAtomicExchange_IImage3D1_Int3_Float1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21963,7 +21046,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01D20D00B(
+constexpr const TFunction imageAtomicExchange_01D20D00B(
     BuiltInId::imageAtomicExchange_UImage3D1_Int3_Float1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21972,7 +21055,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01H20D00B(
+constexpr const TFunction imageAtomicExchange_01H20D00B(
     BuiltInId::imageAtomicExchange_ImageCube1_Int3_Float1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21981,7 +21064,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01I20D00B(
+constexpr const TFunction imageAtomicExchange_01I20D00B(
     BuiltInId::imageAtomicExchange_IImageCube1_Int3_Float1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21990,7 +21073,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01J20D00B(
+constexpr const TFunction imageAtomicExchange_01J20D00B(
     BuiltInId::imageAtomicExchange_UImageCube1_Int3_Float1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -21999,7 +21082,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01f00D00B(
+constexpr const TFunction imageAtomicExchange_01f00D00B(
     BuiltInId::imageAtomicExchange_ImageBuffer1_Int1_Float1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -22008,7 +21091,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01g00D00B(
+constexpr const TFunction imageAtomicExchange_01g00D00B(
     BuiltInId::imageAtomicExchange_IImageBuffer1_Int1_Float1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -22017,7 +21100,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01h00D00B(
+constexpr const TFunction imageAtomicExchange_01h00D00B(
     BuiltInId::imageAtomicExchange_UImageBuffer1_Int1_Float1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -22026,7 +21109,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01E20D00B(
+constexpr const TFunction imageAtomicExchange_01E20D00B(
     BuiltInId::imageAtomicExchange_Image2DArray1_Int3_Float1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -22035,7 +21118,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01F20D00B(
+constexpr const TFunction imageAtomicExchange_01F20D00B(
     BuiltInId::imageAtomicExchange_IImage2DArray1_Int3_Float1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -22044,7 +21127,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01G20D00B(
+constexpr const TFunction imageAtomicExchange_01G20D00B(
     BuiltInId::imageAtomicExchange_UImage2DArray1_Int3_Float1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -22053,7 +21136,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01Z20D00B(
+constexpr const TFunction imageAtomicExchange_01Z20D00B(
     BuiltInId::imageAtomicExchange_ImageCubeArray1_Int3_Float1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -22062,7 +21145,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01a20D00B(
+constexpr const TFunction imageAtomicExchange_01a20D00B(
     BuiltInId::imageAtomicExchange_IImageCubeArray1_Int3_Float1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -22071,7 +21154,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01b20D00B(
+constexpr const TFunction imageAtomicExchange_01b20D00B(
     BuiltInId::imageAtomicExchange_UImageCubeArray1_Int3_Float1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -22080,7 +21163,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01K00D00B(
+constexpr const TFunction imageAtomicExchange_01K00D00B(
     BuiltInId::imageAtomicExchange_Image1D1_Int1_Float1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -22089,7 +21172,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01L00D00B(
+constexpr const TFunction imageAtomicExchange_01L00D00B(
     BuiltInId::imageAtomicExchange_IImage1D1_Int1_Float1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -22098,7 +21181,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01M00D00B(
+constexpr const TFunction imageAtomicExchange_01M00D00B(
     BuiltInId::imageAtomicExchange_UImage1D1_Int1_Float1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -22107,7 +21190,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01N10D00B(
+constexpr const TFunction imageAtomicExchange_01N10D00B(
     BuiltInId::imageAtomicExchange_Image1DArray1_Int2_Float1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -22116,7 +21199,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01O10D00B(
+constexpr const TFunction imageAtomicExchange_01O10D00B(
     BuiltInId::imageAtomicExchange_IImage1DArray1_Int2_Float1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -22125,7 +21208,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01P10D00B(
+constexpr const TFunction imageAtomicExchange_01P10D00B(
     BuiltInId::imageAtomicExchange_UImage1DArray1_Int2_Float1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -22134,7 +21217,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01W10D00B(
+constexpr const TFunction imageAtomicExchange_01W10D00B(
     BuiltInId::imageAtomicExchange_Image2DRect1_Int2_Float1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -22143,7 +21226,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01X10D00B(
+constexpr const TFunction imageAtomicExchange_01X10D00B(
     BuiltInId::imageAtomicExchange_IImage2DRect1_Int2_Float1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -22152,7 +21235,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01Y10D00B(
+constexpr const TFunction imageAtomicExchange_01Y10D00B(
     BuiltInId::imageAtomicExchange_UImage2DRect1_Int2_Float1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -22161,7 +21244,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01Q10D00D00B(
+constexpr const TFunction imageAtomicExchange_01Q10D00D00B(
     BuiltInId::imageAtomicExchange_Image2DMS1_Int2_Int1_Float1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -22170,7 +21253,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01R10D00D00B(
+constexpr const TFunction imageAtomicExchange_01R10D00D00B(
     BuiltInId::imageAtomicExchange_IImage2DMS1_Int2_Int1_Float1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -22179,7 +21262,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01S10D00D00B(
+constexpr const TFunction imageAtomicExchange_01S10D00D00B(
     BuiltInId::imageAtomicExchange_UImage2DMS1_Int2_Int1_Float1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -22188,7 +21271,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01T20D00D00B(
+constexpr const TFunction imageAtomicExchange_01T20D00D00B(
     BuiltInId::imageAtomicExchange_Image2DMSArray1_Int3_Int1_Float1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -22197,7 +21280,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01U20D00D00B(
+constexpr const TFunction imageAtomicExchange_01U20D00D00B(
     BuiltInId::imageAtomicExchange_IImage2DMSArray1_Int3_Int1_Float1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -22206,7 +21289,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicExchange_01V20D00D00B(
+constexpr const TFunction imageAtomicExchange_01V20D00D00B(
     BuiltInId::imageAtomicExchange_UImage2DMSArray1_Int3_Int1_Float1,
     BuiltInName::imageAtomicExchange,
     TExtension::UNDEFINED,
@@ -22215,7 +21298,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_00y10D00E00E(
+constexpr const TFunction imageAtomicCompSwap_00y10D00E00E(
     BuiltInId::imageAtomicCompSwap_Image2D1_Int2_UInt1_UInt1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22224,7 +21307,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_00z10D00E00E(
+constexpr const TFunction imageAtomicCompSwap_00z10D00E00E(
     BuiltInId::imageAtomicCompSwap_IImage2D1_Int2_UInt1_UInt1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22233,7 +21316,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01A10D00E00E(
+constexpr const TFunction imageAtomicCompSwap_01A10D00E00E(
     BuiltInId::imageAtomicCompSwap_UImage2D1_Int2_UInt1_UInt1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22242,7 +21325,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01B20D00E00E(
+constexpr const TFunction imageAtomicCompSwap_01B20D00E00E(
     BuiltInId::imageAtomicCompSwap_Image3D1_Int3_UInt1_UInt1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22251,7 +21334,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01C20D00E00E(
+constexpr const TFunction imageAtomicCompSwap_01C20D00E00E(
     BuiltInId::imageAtomicCompSwap_IImage3D1_Int3_UInt1_UInt1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22260,7 +21343,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01D20D00E00E(
+constexpr const TFunction imageAtomicCompSwap_01D20D00E00E(
     BuiltInId::imageAtomicCompSwap_UImage3D1_Int3_UInt1_UInt1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22269,7 +21352,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01H20D00E00E(
+constexpr const TFunction imageAtomicCompSwap_01H20D00E00E(
     BuiltInId::imageAtomicCompSwap_ImageCube1_Int3_UInt1_UInt1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22278,7 +21361,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01I20D00E00E(
+constexpr const TFunction imageAtomicCompSwap_01I20D00E00E(
     BuiltInId::imageAtomicCompSwap_IImageCube1_Int3_UInt1_UInt1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22287,7 +21370,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01J20D00E00E(
+constexpr const TFunction imageAtomicCompSwap_01J20D00E00E(
     BuiltInId::imageAtomicCompSwap_UImageCube1_Int3_UInt1_UInt1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22296,7 +21379,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01f00D00E00E(
+constexpr const TFunction imageAtomicCompSwap_01f00D00E00E(
     BuiltInId::imageAtomicCompSwap_ImageBuffer1_Int1_UInt1_UInt1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22305,7 +21388,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01g00D00E00E(
+constexpr const TFunction imageAtomicCompSwap_01g00D00E00E(
     BuiltInId::imageAtomicCompSwap_IImageBuffer1_Int1_UInt1_UInt1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22314,7 +21397,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01h00D00E00E(
+constexpr const TFunction imageAtomicCompSwap_01h00D00E00E(
     BuiltInId::imageAtomicCompSwap_UImageBuffer1_Int1_UInt1_UInt1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22323,7 +21406,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01E20D00E00E(
+constexpr const TFunction imageAtomicCompSwap_01E20D00E00E(
     BuiltInId::imageAtomicCompSwap_Image2DArray1_Int3_UInt1_UInt1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22332,7 +21415,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01F20D00E00E(
+constexpr const TFunction imageAtomicCompSwap_01F20D00E00E(
     BuiltInId::imageAtomicCompSwap_IImage2DArray1_Int3_UInt1_UInt1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22341,7 +21424,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01G20D00E00E(
+constexpr const TFunction imageAtomicCompSwap_01G20D00E00E(
     BuiltInId::imageAtomicCompSwap_UImage2DArray1_Int3_UInt1_UInt1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22350,7 +21433,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01Z20D00E00E(
+constexpr const TFunction imageAtomicCompSwap_01Z20D00E00E(
     BuiltInId::imageAtomicCompSwap_ImageCubeArray1_Int3_UInt1_UInt1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22359,7 +21442,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01a20D00E00E(
+constexpr const TFunction imageAtomicCompSwap_01a20D00E00E(
     BuiltInId::imageAtomicCompSwap_IImageCubeArray1_Int3_UInt1_UInt1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22368,7 +21451,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01b20D00E00E(
+constexpr const TFunction imageAtomicCompSwap_01b20D00E00E(
     BuiltInId::imageAtomicCompSwap_UImageCubeArray1_Int3_UInt1_UInt1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22377,7 +21460,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01K00D00E00E(
+constexpr const TFunction imageAtomicCompSwap_01K00D00E00E(
     BuiltInId::imageAtomicCompSwap_Image1D1_Int1_UInt1_UInt1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22386,7 +21469,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01L00D00E00E(
+constexpr const TFunction imageAtomicCompSwap_01L00D00E00E(
     BuiltInId::imageAtomicCompSwap_IImage1D1_Int1_UInt1_UInt1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22395,7 +21478,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01M00D00E00E(
+constexpr const TFunction imageAtomicCompSwap_01M00D00E00E(
     BuiltInId::imageAtomicCompSwap_UImage1D1_Int1_UInt1_UInt1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22404,7 +21487,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01N10D00E00E(
+constexpr const TFunction imageAtomicCompSwap_01N10D00E00E(
     BuiltInId::imageAtomicCompSwap_Image1DArray1_Int2_UInt1_UInt1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22413,7 +21496,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01O10D00E00E(
+constexpr const TFunction imageAtomicCompSwap_01O10D00E00E(
     BuiltInId::imageAtomicCompSwap_IImage1DArray1_Int2_UInt1_UInt1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22422,7 +21505,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01P10D00E00E(
+constexpr const TFunction imageAtomicCompSwap_01P10D00E00E(
     BuiltInId::imageAtomicCompSwap_UImage1DArray1_Int2_UInt1_UInt1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22431,7 +21514,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01W10D00E00E(
+constexpr const TFunction imageAtomicCompSwap_01W10D00E00E(
     BuiltInId::imageAtomicCompSwap_Image2DRect1_Int2_UInt1_UInt1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22440,7 +21523,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01X10D00E00E(
+constexpr const TFunction imageAtomicCompSwap_01X10D00E00E(
     BuiltInId::imageAtomicCompSwap_IImage2DRect1_Int2_UInt1_UInt1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22449,7 +21532,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01Y10D00E00E(
+constexpr const TFunction imageAtomicCompSwap_01Y10D00E00E(
     BuiltInId::imageAtomicCompSwap_UImage2DRect1_Int2_UInt1_UInt1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22458,7 +21541,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01Q10D00D00E00E(
+constexpr const TFunction imageAtomicCompSwap_01Q10D00D00E00E(
     BuiltInId::imageAtomicCompSwap_Image2DMS1_Int2_Int1_UInt1_UInt1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22467,7 +21550,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01R10D00D00E00E(
+constexpr const TFunction imageAtomicCompSwap_01R10D00D00E00E(
     BuiltInId::imageAtomicCompSwap_IImage2DMS1_Int2_Int1_UInt1_UInt1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22476,7 +21559,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01S10D00D00E00E(
+constexpr const TFunction imageAtomicCompSwap_01S10D00D00E00E(
     BuiltInId::imageAtomicCompSwap_UImage2DMS1_Int2_Int1_UInt1_UInt1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22485,7 +21568,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01T20D00D00E00E(
+constexpr const TFunction imageAtomicCompSwap_01T20D00D00E00E(
     BuiltInId::imageAtomicCompSwap_Image2DMSArray1_Int3_Int1_UInt1_UInt1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22494,7 +21577,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01U20D00D00E00E(
+constexpr const TFunction imageAtomicCompSwap_01U20D00D00E00E(
     BuiltInId::imageAtomicCompSwap_IImage2DMSArray1_Int3_Int1_UInt1_UInt1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22503,7 +21586,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01V20D00D00E00E(
+constexpr const TFunction imageAtomicCompSwap_01V20D00D00E00E(
     BuiltInId::imageAtomicCompSwap_UImage2DMSArray1_Int3_Int1_UInt1_UInt1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22512,7 +21595,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_00y10D00D00D(
+constexpr const TFunction imageAtomicCompSwap_00y10D00D00D(
     BuiltInId::imageAtomicCompSwap_Image2D1_Int2_Int1_Int1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22521,7 +21604,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_00z10D00D00D(
+constexpr const TFunction imageAtomicCompSwap_00z10D00D00D(
     BuiltInId::imageAtomicCompSwap_IImage2D1_Int2_Int1_Int1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22530,7 +21613,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01A10D00D00D(
+constexpr const TFunction imageAtomicCompSwap_01A10D00D00D(
     BuiltInId::imageAtomicCompSwap_UImage2D1_Int2_Int1_Int1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22539,7 +21622,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01B20D00D00D(
+constexpr const TFunction imageAtomicCompSwap_01B20D00D00D(
     BuiltInId::imageAtomicCompSwap_Image3D1_Int3_Int1_Int1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22548,7 +21631,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01C20D00D00D(
+constexpr const TFunction imageAtomicCompSwap_01C20D00D00D(
     BuiltInId::imageAtomicCompSwap_IImage3D1_Int3_Int1_Int1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22557,7 +21640,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01D20D00D00D(
+constexpr const TFunction imageAtomicCompSwap_01D20D00D00D(
     BuiltInId::imageAtomicCompSwap_UImage3D1_Int3_Int1_Int1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22566,7 +21649,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01H20D00D00D(
+constexpr const TFunction imageAtomicCompSwap_01H20D00D00D(
     BuiltInId::imageAtomicCompSwap_ImageCube1_Int3_Int1_Int1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22575,7 +21658,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01I20D00D00D(
+constexpr const TFunction imageAtomicCompSwap_01I20D00D00D(
     BuiltInId::imageAtomicCompSwap_IImageCube1_Int3_Int1_Int1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22584,7 +21667,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01J20D00D00D(
+constexpr const TFunction imageAtomicCompSwap_01J20D00D00D(
     BuiltInId::imageAtomicCompSwap_UImageCube1_Int3_Int1_Int1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22593,7 +21676,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01f00D00D00D(
+constexpr const TFunction imageAtomicCompSwap_01f00D00D00D(
     BuiltInId::imageAtomicCompSwap_ImageBuffer1_Int1_Int1_Int1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22602,7 +21685,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01g00D00D00D(
+constexpr const TFunction imageAtomicCompSwap_01g00D00D00D(
     BuiltInId::imageAtomicCompSwap_IImageBuffer1_Int1_Int1_Int1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22611,7 +21694,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01h00D00D00D(
+constexpr const TFunction imageAtomicCompSwap_01h00D00D00D(
     BuiltInId::imageAtomicCompSwap_UImageBuffer1_Int1_Int1_Int1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22620,7 +21703,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01E20D00D00D(
+constexpr const TFunction imageAtomicCompSwap_01E20D00D00D(
     BuiltInId::imageAtomicCompSwap_Image2DArray1_Int3_Int1_Int1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22629,7 +21712,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01F20D00D00D(
+constexpr const TFunction imageAtomicCompSwap_01F20D00D00D(
     BuiltInId::imageAtomicCompSwap_IImage2DArray1_Int3_Int1_Int1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22638,7 +21721,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01G20D00D00D(
+constexpr const TFunction imageAtomicCompSwap_01G20D00D00D(
     BuiltInId::imageAtomicCompSwap_UImage2DArray1_Int3_Int1_Int1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22647,7 +21730,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01Z20D00D00D(
+constexpr const TFunction imageAtomicCompSwap_01Z20D00D00D(
     BuiltInId::imageAtomicCompSwap_ImageCubeArray1_Int3_Int1_Int1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22656,7 +21739,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01a20D00D00D(
+constexpr const TFunction imageAtomicCompSwap_01a20D00D00D(
     BuiltInId::imageAtomicCompSwap_IImageCubeArray1_Int3_Int1_Int1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22665,7 +21748,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01b20D00D00D(
+constexpr const TFunction imageAtomicCompSwap_01b20D00D00D(
     BuiltInId::imageAtomicCompSwap_UImageCubeArray1_Int3_Int1_Int1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22674,7 +21757,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01K00D00D00D(
+constexpr const TFunction imageAtomicCompSwap_01K00D00D00D(
     BuiltInId::imageAtomicCompSwap_Image1D1_Int1_Int1_Int1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22683,7 +21766,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01L00D00D00D(
+constexpr const TFunction imageAtomicCompSwap_01L00D00D00D(
     BuiltInId::imageAtomicCompSwap_IImage1D1_Int1_Int1_Int1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22692,7 +21775,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01M00D00D00D(
+constexpr const TFunction imageAtomicCompSwap_01M00D00D00D(
     BuiltInId::imageAtomicCompSwap_UImage1D1_Int1_Int1_Int1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22701,7 +21784,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01N10D00D00D(
+constexpr const TFunction imageAtomicCompSwap_01N10D00D00D(
     BuiltInId::imageAtomicCompSwap_Image1DArray1_Int2_Int1_Int1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22710,7 +21793,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01O10D00D00D(
+constexpr const TFunction imageAtomicCompSwap_01O10D00D00D(
     BuiltInId::imageAtomicCompSwap_IImage1DArray1_Int2_Int1_Int1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22719,7 +21802,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01P10D00D00D(
+constexpr const TFunction imageAtomicCompSwap_01P10D00D00D(
     BuiltInId::imageAtomicCompSwap_UImage1DArray1_Int2_Int1_Int1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22728,7 +21811,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01W10D00D00D(
+constexpr const TFunction imageAtomicCompSwap_01W10D00D00D(
     BuiltInId::imageAtomicCompSwap_Image2DRect1_Int2_Int1_Int1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22737,7 +21820,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01X10D00D00D(
+constexpr const TFunction imageAtomicCompSwap_01X10D00D00D(
     BuiltInId::imageAtomicCompSwap_IImage2DRect1_Int2_Int1_Int1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22746,7 +21829,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01Y10D00D00D(
+constexpr const TFunction imageAtomicCompSwap_01Y10D00D00D(
     BuiltInId::imageAtomicCompSwap_UImage2DRect1_Int2_Int1_Int1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22755,7 +21838,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01Q10D00D00D00D(
+constexpr const TFunction imageAtomicCompSwap_01Q10D00D00D00D(
     BuiltInId::imageAtomicCompSwap_Image2DMS1_Int2_Int1_Int1_Int1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22764,7 +21847,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01R10D00D00D00D(
+constexpr const TFunction imageAtomicCompSwap_01R10D00D00D00D(
     BuiltInId::imageAtomicCompSwap_IImage2DMS1_Int2_Int1_Int1_Int1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22773,7 +21856,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01S10D00D00D00D(
+constexpr const TFunction imageAtomicCompSwap_01S10D00D00D00D(
     BuiltInId::imageAtomicCompSwap_UImage2DMS1_Int2_Int1_Int1_Int1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22782,7 +21865,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01T20D00D00D00D(
+constexpr const TFunction imageAtomicCompSwap_01T20D00D00D00D(
     BuiltInId::imageAtomicCompSwap_Image2DMSArray1_Int3_Int1_Int1_Int1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22791,7 +21874,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01U20D00D00D00D(
+constexpr const TFunction imageAtomicCompSwap_01U20D00D00D00D(
     BuiltInId::imageAtomicCompSwap_IImage2DMSArray1_Int3_Int1_Int1_Int1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22800,7 +21883,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageAtomicCompSwap_01V20D00D00D00D(
+constexpr const TFunction imageAtomicCompSwap_01V20D00D00D00D(
     BuiltInId::imageAtomicCompSwap_UImage2DMSArray1_Int3_Int1_Int1_Int1,
     BuiltInName::imageAtomicCompSwap,
     TExtension::UNDEFINED,
@@ -22809,7 +21892,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageLoad_00y10D(
+constexpr const TFunction imageLoad_00y10D(
     BuiltInId::imageLoad_Image2D1_Int2,
     BuiltInName::imageLoad,
     TExtension::UNDEFINED,
@@ -22818,16 +21901,15 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageLoad_00z10D(
-    BuiltInId::imageLoad_IImage2D1_Int2,
-    BuiltInName::imageLoad,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00z10D00B,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageLoad_01A10D(
+constexpr const TFunction imageLoad_00z10D(BuiltInId::imageLoad_IImage2D1_Int2,
+                                           BuiltInName::imageLoad,
+                                           TExtension::UNDEFINED,
+                                           BuiltInParameters::p00z10D00B,
+                                           2,
+                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                           EOpCallBuiltInFunction,
+                                           false);
+constexpr const TFunction imageLoad_01A10D(
     BuiltInId::imageLoad_UImage2D1_Int2,
     BuiltInName::imageLoad,
     TExtension::UNDEFINED,
@@ -22836,7 +21918,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageLoad_01B20D(
+constexpr const TFunction imageLoad_01B20D(
     BuiltInId::imageLoad_Image3D1_Int3,
     BuiltInName::imageLoad,
     TExtension::UNDEFINED,
@@ -22845,16 +21927,15 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageLoad_01C20D(
-    BuiltInId::imageLoad_IImage3D1_Int3,
-    BuiltInName::imageLoad,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01C20D00D00D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageLoad_01D20D(
+constexpr const TFunction imageLoad_01C20D(BuiltInId::imageLoad_IImage3D1_Int3,
+                                           BuiltInName::imageLoad,
+                                           TExtension::UNDEFINED,
+                                           BuiltInParameters::p01C20D00D00D,
+                                           2,
+                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                           EOpCallBuiltInFunction,
+                                           false);
+constexpr const TFunction imageLoad_01D20D(
     BuiltInId::imageLoad_UImage3D1_Int3,
     BuiltInName::imageLoad,
     TExtension::UNDEFINED,
@@ -22863,7 +21944,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageLoad_01E20D(
+constexpr const TFunction imageLoad_01E20D(
     BuiltInId::imageLoad_Image2DArray1_Int3,
     BuiltInName::imageLoad,
     TExtension::UNDEFINED,
@@ -22872,16 +21953,15 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageLoad_01F20D(
-    BuiltInId::imageLoad_IImage2DArray1_Int3,
-    BuiltInName::imageLoad,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01F20D00D00D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageLoad_01G20D(
+constexpr const TFunction imageLoad_01F20D(BuiltInId::imageLoad_IImage2DArray1_Int3,
+                                           BuiltInName::imageLoad,
+                                           TExtension::UNDEFINED,
+                                           BuiltInParameters::p01F20D00D00D,
+                                           2,
+                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                           EOpCallBuiltInFunction,
+                                           false);
+constexpr const TFunction imageLoad_01G20D(
     BuiltInId::imageLoad_UImage2DArray1_Int3,
     BuiltInName::imageLoad,
     TExtension::UNDEFINED,
@@ -22890,7 +21970,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageLoad_01H20D(
+constexpr const TFunction imageLoad_01H20D(
     BuiltInId::imageLoad_ImageCube1_Int3,
     BuiltInName::imageLoad,
     TExtension::UNDEFINED,
@@ -22899,16 +21979,15 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageLoad_01I20D(
-    BuiltInId::imageLoad_IImageCube1_Int3,
-    BuiltInName::imageLoad,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01I20D00D00D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageLoad_01J20D(
+constexpr const TFunction imageLoad_01I20D(BuiltInId::imageLoad_IImageCube1_Int3,
+                                           BuiltInName::imageLoad,
+                                           TExtension::UNDEFINED,
+                                           BuiltInParameters::p01I20D00D00D,
+                                           2,
+                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                           EOpCallBuiltInFunction,
+                                           false);
+constexpr const TFunction imageLoad_01J20D(
     BuiltInId::imageLoad_UImageCube1_Int3,
     BuiltInName::imageLoad,
     TExtension::UNDEFINED,
@@ -22917,7 +21996,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageLoad_01f00D(
+constexpr const TFunction imageLoad_01f00D(
     BuiltInId::imageLoad_ImageBuffer1_Int1,
     BuiltInName::imageLoad,
     TExtension::UNDEFINED,
@@ -22926,16 +22005,15 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageLoad_01g00D(
-    BuiltInId::imageLoad_IImageBuffer1_Int1,
-    BuiltInName::imageLoad,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01g00D30D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageLoad_01h00D(
+constexpr const TFunction imageLoad_01g00D(BuiltInId::imageLoad_IImageBuffer1_Int1,
+                                           BuiltInName::imageLoad,
+                                           TExtension::UNDEFINED,
+                                           BuiltInParameters::p01g00D30D,
+                                           2,
+                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                           EOpCallBuiltInFunction,
+                                           false);
+constexpr const TFunction imageLoad_01h00D(
     BuiltInId::imageLoad_UImageBuffer1_Int1,
     BuiltInName::imageLoad,
     TExtension::UNDEFINED,
@@ -22944,7 +22022,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageLoad_01Z20D(
+constexpr const TFunction imageLoad_01Z20D(
     BuiltInId::imageLoad_ImageCubeArray1_Int3,
     BuiltInName::imageLoad,
     TExtension::UNDEFINED,
@@ -22953,16 +22031,15 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageLoad_01a20D(
-    BuiltInId::imageLoad_IImageCubeArray1_Int3,
-    BuiltInName::imageLoad,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01a20D00E00E,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageLoad_01b20D(
+constexpr const TFunction imageLoad_01a20D(BuiltInId::imageLoad_IImageCubeArray1_Int3,
+                                           BuiltInName::imageLoad,
+                                           TExtension::UNDEFINED,
+                                           BuiltInParameters::p01a20D00E00E,
+                                           2,
+                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                           EOpCallBuiltInFunction,
+                                           false);
+constexpr const TFunction imageLoad_01b20D(
     BuiltInId::imageLoad_UImageCubeArray1_Int3,
     BuiltInName::imageLoad,
     TExtension::UNDEFINED,
@@ -22971,7 +22048,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageLoad_01K00D(
+constexpr const TFunction imageLoad_01K00D(
     BuiltInId::imageLoad_Image1D1_Int1,
     BuiltInName::imageLoad,
     TExtension::UNDEFINED,
@@ -22980,16 +22057,15 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageLoad_01L00D(
-    BuiltInId::imageLoad_IImage1D1_Int1,
-    BuiltInName::imageLoad,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01L00D00E00E,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageLoad_01M00D(
+constexpr const TFunction imageLoad_01L00D(BuiltInId::imageLoad_IImage1D1_Int1,
+                                           BuiltInName::imageLoad,
+                                           TExtension::UNDEFINED,
+                                           BuiltInParameters::p01L00D00E00E,
+                                           2,
+                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                           EOpCallBuiltInFunction,
+                                           false);
+constexpr const TFunction imageLoad_01M00D(
     BuiltInId::imageLoad_UImage1D1_Int1,
     BuiltInName::imageLoad,
     TExtension::UNDEFINED,
@@ -22998,7 +22074,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageLoad_01N10D(
+constexpr const TFunction imageLoad_01N10D(
     BuiltInId::imageLoad_Image1DArray1_Int2,
     BuiltInName::imageLoad,
     TExtension::UNDEFINED,
@@ -23007,16 +22083,15 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageLoad_01O10D(
-    BuiltInId::imageLoad_IImage1DArray1_Int2,
-    BuiltInName::imageLoad,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01O10D00E00E,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageLoad_01P10D(
+constexpr const TFunction imageLoad_01O10D(BuiltInId::imageLoad_IImage1DArray1_Int2,
+                                           BuiltInName::imageLoad,
+                                           TExtension::UNDEFINED,
+                                           BuiltInParameters::p01O10D00E00E,
+                                           2,
+                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                           EOpCallBuiltInFunction,
+                                           false);
+constexpr const TFunction imageLoad_01P10D(
     BuiltInId::imageLoad_UImage1DArray1_Int2,
     BuiltInName::imageLoad,
     TExtension::UNDEFINED,
@@ -23025,7 +22100,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageLoad_01W10D(
+constexpr const TFunction imageLoad_01W10D(
     BuiltInId::imageLoad_Image2DRect1_Int2,
     BuiltInName::imageLoad,
     TExtension::UNDEFINED,
@@ -23034,16 +22109,15 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageLoad_01X10D(
-    BuiltInId::imageLoad_IImage2DRect1_Int2,
-    BuiltInName::imageLoad,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01X10D00D00D,
-    2,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_imageLoad_01Y10D(
+constexpr const TFunction imageLoad_01X10D(BuiltInId::imageLoad_IImage2DRect1_Int2,
+                                           BuiltInName::imageLoad,
+                                           TExtension::UNDEFINED,
+                                           BuiltInParameters::p01X10D00D00D,
+                                           2,
+                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                           EOpCallBuiltInFunction,
+                                           false);
+constexpr const TFunction imageLoad_01Y10D(
     BuiltInId::imageLoad_UImage2DRect1_Int2,
     BuiltInName::imageLoad,
     TExtension::UNDEFINED,
@@ -23052,7 +22126,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageLoad_01Q10D00D(
+constexpr const TFunction imageLoad_01Q10D00D(
     BuiltInId::imageLoad_Image2DMS1_Int2_Int1,
     BuiltInName::imageLoad,
     TExtension::UNDEFINED,
@@ -23061,7 +22135,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageLoad_01R10D00D(
+constexpr const TFunction imageLoad_01R10D00D(
     BuiltInId::imageLoad_IImage2DMS1_Int2_Int1,
     BuiltInName::imageLoad,
     TExtension::UNDEFINED,
@@ -23070,7 +22144,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageLoad_01S10D00D(
+constexpr const TFunction imageLoad_01S10D00D(
     BuiltInId::imageLoad_UImage2DMS1_Int2_Int1,
     BuiltInName::imageLoad,
     TExtension::UNDEFINED,
@@ -23079,7 +22153,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageLoad_01T20D00D(
+constexpr const TFunction imageLoad_01T20D00D(
     BuiltInId::imageLoad_Image2DMSArray1_Int3_Int1,
     BuiltInName::imageLoad,
     TExtension::UNDEFINED,
@@ -23088,7 +22162,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageLoad_01U20D00D(
+constexpr const TFunction imageLoad_01U20D00D(
     BuiltInId::imageLoad_IImage2DMSArray1_Int3_Int1,
     BuiltInName::imageLoad,
     TExtension::UNDEFINED,
@@ -23097,7 +22171,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageLoad_01V20D00D(
+constexpr const TFunction imageLoad_01V20D00D(
     BuiltInId::imageLoad_UImage2DMSArray1_Int3_Int1,
     BuiltInName::imageLoad,
     TExtension::UNDEFINED,
@@ -23106,7 +22180,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageStore_00y10D30B(
+constexpr const TFunction imageStore_00y10D30B(
     BuiltInId::imageStore_Image2D1_Int2_Float4,
     BuiltInName::imageStore,
     TExtension::UNDEFINED,
@@ -23115,7 +22189,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageStore_00z10D30D(
+constexpr const TFunction imageStore_00z10D30D(
     BuiltInId::imageStore_IImage2D1_Int2_Int4,
     BuiltInName::imageStore,
     TExtension::UNDEFINED,
@@ -23124,7 +22198,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageStore_01A10D30E(
+constexpr const TFunction imageStore_01A10D30E(
     BuiltInId::imageStore_UImage2D1_Int2_UInt4,
     BuiltInName::imageStore,
     TExtension::UNDEFINED,
@@ -23133,7 +22207,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageStore_01B20D30B(
+constexpr const TFunction imageStore_01B20D30B(
     BuiltInId::imageStore_Image3D1_Int3_Float4,
     BuiltInName::imageStore,
     TExtension::UNDEFINED,
@@ -23142,7 +22216,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageStore_01C20D30D(
+constexpr const TFunction imageStore_01C20D30D(
     BuiltInId::imageStore_IImage3D1_Int3_Int4,
     BuiltInName::imageStore,
     TExtension::UNDEFINED,
@@ -23151,7 +22225,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageStore_01D20D30E(
+constexpr const TFunction imageStore_01D20D30E(
     BuiltInId::imageStore_UImage3D1_Int3_UInt4,
     BuiltInName::imageStore,
     TExtension::UNDEFINED,
@@ -23160,7 +22234,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageStore_01E20D30B(
+constexpr const TFunction imageStore_01E20D30B(
     BuiltInId::imageStore_Image2DArray1_Int3_Float4,
     BuiltInName::imageStore,
     TExtension::UNDEFINED,
@@ -23169,7 +22243,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageStore_01F20D30D(
+constexpr const TFunction imageStore_01F20D30D(
     BuiltInId::imageStore_IImage2DArray1_Int3_Int4,
     BuiltInName::imageStore,
     TExtension::UNDEFINED,
@@ -23178,7 +22252,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageStore_01G20D30E(
+constexpr const TFunction imageStore_01G20D30E(
     BuiltInId::imageStore_UImage2DArray1_Int3_UInt4,
     BuiltInName::imageStore,
     TExtension::UNDEFINED,
@@ -23187,7 +22261,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageStore_01H20D30B(
+constexpr const TFunction imageStore_01H20D30B(
     BuiltInId::imageStore_ImageCube1_Int3_Float4,
     BuiltInName::imageStore,
     TExtension::UNDEFINED,
@@ -23196,7 +22270,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageStore_01I20D30D(
+constexpr const TFunction imageStore_01I20D30D(
     BuiltInId::imageStore_IImageCube1_Int3_Int4,
     BuiltInName::imageStore,
     TExtension::UNDEFINED,
@@ -23205,7 +22279,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageStore_01J20D30E(
+constexpr const TFunction imageStore_01J20D30E(
     BuiltInId::imageStore_UImageCube1_Int3_UInt4,
     BuiltInName::imageStore,
     TExtension::UNDEFINED,
@@ -23214,7 +22288,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageStore_01f00D30B(
+constexpr const TFunction imageStore_01f00D30B(
     BuiltInId::imageStore_ImageBuffer1_Int1_Float4,
     BuiltInName::imageStore,
     TExtension::UNDEFINED,
@@ -23223,7 +22297,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageStore_01g00D30D(
+constexpr const TFunction imageStore_01g00D30D(
     BuiltInId::imageStore_IImageBuffer1_Int1_Int4,
     BuiltInName::imageStore,
     TExtension::UNDEFINED,
@@ -23232,7 +22306,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageStore_01h00D30E(
+constexpr const TFunction imageStore_01h00D30E(
     BuiltInId::imageStore_UImageBuffer1_Int1_UInt4,
     BuiltInName::imageStore,
     TExtension::UNDEFINED,
@@ -23241,7 +22315,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageStore_01Z20D30B(
+constexpr const TFunction imageStore_01Z20D30B(
     BuiltInId::imageStore_ImageCubeArray1_Int3_Float4,
     BuiltInName::imageStore,
     TExtension::UNDEFINED,
@@ -23250,7 +22324,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageStore_01a20D30D(
+constexpr const TFunction imageStore_01a20D30D(
     BuiltInId::imageStore_IImageCubeArray1_Int3_Int4,
     BuiltInName::imageStore,
     TExtension::UNDEFINED,
@@ -23259,7 +22333,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageStore_01b20D30E(
+constexpr const TFunction imageStore_01b20D30E(
     BuiltInId::imageStore_UImageCubeArray1_Int3_UInt4,
     BuiltInName::imageStore,
     TExtension::UNDEFINED,
@@ -23268,7 +22342,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageStore_01K00D30B(
+constexpr const TFunction imageStore_01K00D30B(
     BuiltInId::imageStore_Image1D1_Int1_Float4,
     BuiltInName::imageStore,
     TExtension::UNDEFINED,
@@ -23277,7 +22351,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageStore_01L00D30D(
+constexpr const TFunction imageStore_01L00D30D(
     BuiltInId::imageStore_IImage1D1_Int1_Int4,
     BuiltInName::imageStore,
     TExtension::UNDEFINED,
@@ -23286,7 +22360,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageStore_01M00D30E(
+constexpr const TFunction imageStore_01M00D30E(
     BuiltInId::imageStore_UImage1D1_Int1_UInt4,
     BuiltInName::imageStore,
     TExtension::UNDEFINED,
@@ -23295,7 +22369,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageStore_01N10D30B(
+constexpr const TFunction imageStore_01N10D30B(
     BuiltInId::imageStore_Image1DArray1_Int2_Float4,
     BuiltInName::imageStore,
     TExtension::UNDEFINED,
@@ -23304,7 +22378,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageStore_01O10D30D(
+constexpr const TFunction imageStore_01O10D30D(
     BuiltInId::imageStore_IImage1DArray1_Int2_Int4,
     BuiltInName::imageStore,
     TExtension::UNDEFINED,
@@ -23313,7 +22387,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageStore_01P10D30E(
+constexpr const TFunction imageStore_01P10D30E(
     BuiltInId::imageStore_UImage1DArray1_Int2_UInt4,
     BuiltInName::imageStore,
     TExtension::UNDEFINED,
@@ -23322,7 +22396,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageStore_01W10D30B(
+constexpr const TFunction imageStore_01W10D30B(
     BuiltInId::imageStore_Image2DRect1_Int2_Float4,
     BuiltInName::imageStore,
     TExtension::UNDEFINED,
@@ -23331,7 +22405,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageStore_01X10D30D(
+constexpr const TFunction imageStore_01X10D30D(
     BuiltInId::imageStore_IImage2DRect1_Int2_Int4,
     BuiltInName::imageStore,
     TExtension::UNDEFINED,
@@ -23340,7 +22414,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageStore_01Y10D30E(
+constexpr const TFunction imageStore_01Y10D30E(
     BuiltInId::imageStore_UImage2DRect1_Int2_UInt4,
     BuiltInName::imageStore,
     TExtension::UNDEFINED,
@@ -23349,7 +22423,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageStore_01Q10D00D30B(
+constexpr const TFunction imageStore_01Q10D00D30B(
     BuiltInId::imageStore_Image2DMS1_Int2_Int1_Float4,
     BuiltInName::imageStore,
     TExtension::UNDEFINED,
@@ -23358,7 +22432,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageStore_01R10D00D30D(
+constexpr const TFunction imageStore_01R10D00D30D(
     BuiltInId::imageStore_IImage2DMS1_Int2_Int1_Int4,
     BuiltInName::imageStore,
     TExtension::UNDEFINED,
@@ -23367,7 +22441,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageStore_01S10D00D30E(
+constexpr const TFunction imageStore_01S10D00D30E(
     BuiltInId::imageStore_UImage2DMS1_Int2_Int1_UInt4,
     BuiltInName::imageStore,
     TExtension::UNDEFINED,
@@ -23376,7 +22450,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageStore_01T20D00D30B(
+constexpr const TFunction imageStore_01T20D00D30B(
     BuiltInId::imageStore_Image2DMSArray1_Int3_Int1_Float4,
     BuiltInName::imageStore,
     TExtension::UNDEFINED,
@@ -23385,7 +22459,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageStore_01U20D00D30D(
+constexpr const TFunction imageStore_01U20D00D30D(
     BuiltInId::imageStore_IImage2DMSArray1_Int3_Int1_Int4,
     BuiltInName::imageStore,
     TExtension::UNDEFINED,
@@ -23394,7 +22468,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_imageStore_01V20D00D30E(
+constexpr const TFunction imageStore_01V20D00D30E(
     BuiltInId::imageStore_UImage2DMSArray1_Int3_Int1_UInt4,
     BuiltInName::imageStore,
     TExtension::UNDEFINED,
@@ -23403,160 +22477,143 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_noise1_00B(
-    BuiltInId::noise1_Float1,
-    BuiltInName::noise1,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_noise1_10B(
-    BuiltInId::noise1_Float2,
-    BuiltInName::noise1,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B_o_10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_noise1_20B(
-    BuiltInId::noise1_Float3,
-    BuiltInName::noise1,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_noise1_30B(
-    BuiltInId::noise1_Float4,
-    BuiltInName::noise1,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30D,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_noise2_00B(
-    BuiltInId::noise2_Float1,
-    BuiltInName::noise2,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_noise2_10B(
-    BuiltInId::noise2_Float2,
-    BuiltInName::noise2,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B_o_10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_noise2_20B(
-    BuiltInId::noise2_Float3,
-    BuiltInName::noise2,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_noise2_30B(
-    BuiltInId::noise2_Float4,
-    BuiltInName::noise2,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30D,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_noise3_00B(
-    BuiltInId::noise3_Float1,
-    BuiltInName::noise3,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_noise3_10B(
-    BuiltInId::noise3_Float2,
-    BuiltInName::noise3,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B_o_10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_noise3_20B(
-    BuiltInId::noise3_Float3,
-    BuiltInName::noise3,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_noise3_30B(
-    BuiltInId::noise3_Float4,
-    BuiltInName::noise3,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30D,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_noise4_00B(
-    BuiltInId::noise4_Float1,
-    BuiltInName::noise4,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p00B00B30B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_noise4_10B(
-    BuiltInId::noise4_Float2,
-    BuiltInName::noise4,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p10B_o_10B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_noise4_20B(
-    BuiltInId::noise4_Float3,
-    BuiltInName::noise4,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p20B20B00B,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_noise4_30B(
-    BuiltInId::noise4_Float4,
-    BuiltInName::noise4,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p30B30D,
-    1,
-    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_memoryBarrier_(
-    BuiltInId::memoryBarrier,
-    BuiltInName::memoryBarrier,
-    TExtension::UNDEFINED,
-    BuiltInParameters::empty,
-    0,
-    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpMemoryBarrier,
-    false);
-constexpr const TFunction function_memoryBarrierAtomicCounter_(
+constexpr const TFunction noise1_00B(BuiltInId::noise1_Float1,
+                                     BuiltInName::noise1,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p00B00B30B,
+                                     1,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                     EOpCallBuiltInFunction,
+                                     false);
+constexpr const TFunction noise1_10B(BuiltInId::noise1_Float2,
+                                     BuiltInName::noise1,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p10B_o_10B,
+                                     1,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                     EOpCallBuiltInFunction,
+                                     false);
+constexpr const TFunction noise1_20B(BuiltInId::noise1_Float3,
+                                     BuiltInName::noise1,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p20B20B00B,
+                                     1,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                     EOpCallBuiltInFunction,
+                                     false);
+constexpr const TFunction noise1_30B(BuiltInId::noise1_Float4,
+                                     BuiltInName::noise1,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p30B30D,
+                                     1,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
+                                     EOpCallBuiltInFunction,
+                                     false);
+constexpr const TFunction noise2_00B(BuiltInId::noise2_Float1,
+                                     BuiltInName::noise2,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p00B00B30B,
+                                     1,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                     EOpCallBuiltInFunction,
+                                     false);
+constexpr const TFunction noise2_10B(BuiltInId::noise2_Float2,
+                                     BuiltInName::noise2,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p10B_o_10B,
+                                     1,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                     EOpCallBuiltInFunction,
+                                     false);
+constexpr const TFunction noise2_20B(BuiltInId::noise2_Float3,
+                                     BuiltInName::noise2,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p20B20B00B,
+                                     1,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                     EOpCallBuiltInFunction,
+                                     false);
+constexpr const TFunction noise2_30B(BuiltInId::noise2_Float4,
+                                     BuiltInName::noise2,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p30B30D,
+                                     1,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
+                                     EOpCallBuiltInFunction,
+                                     false);
+constexpr const TFunction noise3_00B(BuiltInId::noise3_Float1,
+                                     BuiltInName::noise3,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p00B00B30B,
+                                     1,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                     EOpCallBuiltInFunction,
+                                     false);
+constexpr const TFunction noise3_10B(BuiltInId::noise3_Float2,
+                                     BuiltInName::noise3,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p10B_o_10B,
+                                     1,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                     EOpCallBuiltInFunction,
+                                     false);
+constexpr const TFunction noise3_20B(BuiltInId::noise3_Float3,
+                                     BuiltInName::noise3,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p20B20B00B,
+                                     1,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                     EOpCallBuiltInFunction,
+                                     false);
+constexpr const TFunction noise3_30B(BuiltInId::noise3_Float4,
+                                     BuiltInName::noise3,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p30B30D,
+                                     1,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
+                                     EOpCallBuiltInFunction,
+                                     false);
+constexpr const TFunction noise4_00B(BuiltInId::noise4_Float1,
+                                     BuiltInName::noise4,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p00B00B30B,
+                                     1,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                     EOpCallBuiltInFunction,
+                                     false);
+constexpr const TFunction noise4_10B(BuiltInId::noise4_Float2,
+                                     BuiltInName::noise4,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p10B_o_10B,
+                                     1,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                     EOpCallBuiltInFunction,
+                                     false);
+constexpr const TFunction noise4_20B(BuiltInId::noise4_Float3,
+                                     BuiltInName::noise4,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p20B20B00B,
+                                     1,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                     EOpCallBuiltInFunction,
+                                     false);
+constexpr const TFunction noise4_30B(BuiltInId::noise4_Float4,
+                                     BuiltInName::noise4,
+                                     TExtension::UNDEFINED,
+                                     BuiltInParameters::p30B30D,
+                                     1,
+                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
+                                     EOpCallBuiltInFunction,
+                                     false);
+constexpr const TFunction memoryBarrier_(BuiltInId::memoryBarrier,
+                                         BuiltInName::memoryBarrier,
+                                         TExtension::UNDEFINED,
+                                         BuiltInParameters::empty,
+                                         0,
+                                         StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
+                                         EOpMemoryBarrier,
+                                         false);
+constexpr const TFunction memoryBarrierAtomicCounter_(
     BuiltInId::memoryBarrierAtomicCounter,
     BuiltInName::memoryBarrierAtomicCounter,
     TExtension::UNDEFINED,
@@ -23565,7 +22622,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpMemoryBarrierAtomicCounter,
     false);
-constexpr const TFunction function_memoryBarrierBuffer_(
+constexpr const TFunction memoryBarrierBuffer_(
     BuiltInId::memoryBarrierBuffer,
     BuiltInName::memoryBarrierBuffer,
     TExtension::UNDEFINED,
@@ -23574,7 +22631,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpMemoryBarrierBuffer,
     false);
-constexpr const TFunction function_memoryBarrierImage_(
+constexpr const TFunction memoryBarrierImage_(
     BuiltInId::memoryBarrierImage,
     BuiltInName::memoryBarrierImage,
     TExtension::UNDEFINED,
@@ -23583,16 +22640,15 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpMemoryBarrierImage,
     false);
-constexpr const TFunction function_barrier_(
-    BuiltInId::barrier,
-    BuiltInName::barrier,
-    TExtension::UNDEFINED,
-    BuiltInParameters::empty,
-    0,
-    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpBarrier,
-    false);
-constexpr const TFunction function_memoryBarrierShared_(
+constexpr const TFunction barrier_(BuiltInId::barrier,
+                                   BuiltInName::barrier,
+                                   TExtension::UNDEFINED,
+                                   BuiltInParameters::empty,
+                                   0,
+                                   StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
+                                   EOpBarrier,
+                                   false);
+constexpr const TFunction memoryBarrierShared_(
     BuiltInId::memoryBarrierShared,
     BuiltInName::memoryBarrierShared,
     TExtension::UNDEFINED,
@@ -23601,7 +22657,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpMemoryBarrierShared,
     false);
-constexpr const TFunction function_groupMemoryBarrier_(
+constexpr const TFunction groupMemoryBarrier_(
     BuiltInId::groupMemoryBarrier,
     BuiltInName::groupMemoryBarrier,
     TExtension::UNDEFINED,
@@ -23610,25 +22666,23 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpGroupMemoryBarrier,
     false);
-constexpr const TFunction function_EmitVertex_(
-    BuiltInId::EmitVertex,
-    BuiltInName::EmitVertex,
-    TExtension::EXT_geometry_shader,
-    BuiltInParameters::empty,
-    0,
-    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpEmitVertex,
-    false);
-constexpr const TFunction function_EndPrimitive_(
-    BuiltInId::EndPrimitive,
-    BuiltInName::EndPrimitive,
-    TExtension::EXT_geometry_shader,
-    BuiltInParameters::empty,
-    0,
-    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
-    EOpEndPrimitive,
-    false);
-constexpr const TFunction function_EmitStreamVertex_00D(
+constexpr const TFunction EmitVertex_(BuiltInId::EmitVertex,
+                                      BuiltInName::EmitVertex,
+                                      TExtension::EXT_geometry_shader,
+                                      BuiltInParameters::empty,
+                                      0,
+                                      StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
+                                      EOpEmitVertex,
+                                      false);
+constexpr const TFunction EndPrimitive_(BuiltInId::EndPrimitive,
+                                        BuiltInName::EndPrimitive,
+                                        TExtension::EXT_geometry_shader,
+                                        BuiltInParameters::empty,
+                                        0,
+                                        StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
+                                        EOpEndPrimitive,
+                                        false);
+constexpr const TFunction EmitStreamVertex_00D(
     BuiltInId::EmitStreamVertex_Int1,
     BuiltInName::EmitStreamVertex,
     TExtension::UNDEFINED,
@@ -23637,7 +22691,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_EndStreamPrimitive_00D(
+constexpr const TFunction EndStreamPrimitive_00D(
     BuiltInId::EndStreamPrimitive_Int1,
     BuiltInName::EndStreamPrimitive,
     TExtension::UNDEFINED,
@@ -23646,7 +22700,7 @@
     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_subpassLoad_01i(
+constexpr const TFunction subpassLoad_01i(
     BuiltInId::subpassLoad_SubpassInput1,
     BuiltInName::subpassLoad,
     TExtension::UNDEFINED,
@@ -23655,25 +22709,23 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_subpassLoad_01j(
-    BuiltInId::subpassLoad_ISubpassInput1,
-    BuiltInName::subpassLoad,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01j,
-    1,
-    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_subpassLoad_01k(
-    BuiltInId::subpassLoad_USubpassInput1,
-    BuiltInName::subpassLoad,
-    TExtension::UNDEFINED,
-    BuiltInParameters::p01k,
-    1,
-    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
-    EOpCallBuiltInFunction,
-    false);
-constexpr const TFunction function_subpassLoad_01l00D(
+constexpr const TFunction subpassLoad_01j(BuiltInId::subpassLoad_ISubpassInput1,
+                                          BuiltInName::subpassLoad,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p01j,
+                                          1,
+                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                          EOpCallBuiltInFunction,
+                                          false);
+constexpr const TFunction subpassLoad_01k(BuiltInId::subpassLoad_USubpassInput1,
+                                          BuiltInName::subpassLoad,
+                                          TExtension::UNDEFINED,
+                                          BuiltInParameters::p01k,
+                                          1,
+                                          StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
+                                          EOpCallBuiltInFunction,
+                                          false);
+constexpr const TFunction subpassLoad_01l00D(
     BuiltInId::subpassLoad_SubpassInputMS1_Int1,
     BuiltInName::subpassLoad,
     TExtension::UNDEFINED,
@@ -23682,7 +22734,7 @@
     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_subpassLoad_01m00D(
+constexpr const TFunction subpassLoad_01m00D(
     BuiltInId::subpassLoad_ISubpassInputMS1_Int1,
     BuiltInName::subpassLoad,
     TExtension::UNDEFINED,
@@ -23691,7 +22743,7 @@
     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_subpassLoad_01n00D(
+constexpr const TFunction subpassLoad_01n00D(
     BuiltInId::subpassLoad_USubpassInputMS1_Int1,
     BuiltInName::subpassLoad,
     TExtension::UNDEFINED,
@@ -23700,7 +22752,7 @@
     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_anyInvocation_00F(
+constexpr const TFunction anyInvocation_00F(
     BuiltInId::anyInvocation_Bool1,
     BuiltInName::anyInvocation,
     TExtension::UNDEFINED,
@@ -23709,7 +22761,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_allInvocations_00F(
+constexpr const TFunction allInvocations_00F(
     BuiltInId::allInvocations_Bool1,
     BuiltInName::allInvocations,
     TExtension::UNDEFINED,
@@ -23718,7 +22770,7 @@
     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
     EOpCallBuiltInFunction,
     false);
-constexpr const TFunction function_allInvocationsEqual_00F(
+constexpr const TFunction allInvocationsEqual_00F(
     BuiltInId::allInvocationsEqual_Bool1,
     BuiltInName::allInvocationsEqual,
     TExtension::UNDEFINED,
@@ -23728,35431 +22780,7588 @@
     EOpCallBuiltInFunction,
     false);
 
-}  // namespace BuiltInFunction
+}  // namespace Func
 
 namespace BuiltInArray
 {
+using namespace Func;
+using Rule = SymbolRule;
 
-constexpr SymbolEntry mangled[] = {
-    SymbolEntry(ImmutableString("textureProj(00R30B00B"),
-                &BuiltInFunction::function_textureProj_00R30B00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("interpolateAtOffset(30B10B"),
-                &BuiltInFunction::function_interpolateAtOffset_30B10B,
-                nullptr,
-                -1,
-                400,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00g10B00D"),
-                &BuiltInFunction::function_textureProjOffset_00g10B00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(00z10D00D"),
-                &BuiltInFunction::function_imageAtomicOr_00z10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture2DProj(00I20B"),
-                &BuiltInFunction::function_texture2DProj_00I20B,
-                nullptr,
-                100,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGradOffset(00v30B10B10B10D"),
-                &BuiltInFunction::function_textureProjGradOffset_00v30B10B10B10D,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetch(00o00D00D"),
-                &BuiltInFunction::function_texelFetch_00o00D00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageLoad(01g00D"),
-                &BuiltInFunction::function_imageLoad_01g00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageLoad(01I20D"),
-                &BuiltInFunction::function_imageLoad_01I20D,
-                nullptr,
-                310,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("tanh(30B"),
-                &BuiltInFunction::function_tanh_30B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01E20D00D00D"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01E20D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLod(00m00B"),
-                &BuiltInFunction::function_textureQueryLod_00m00B,
-                nullptr,
-                -1,
-                400,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01f00D00D00D"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01f00D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("not(10F"),
-                &BuiltInFunction::function_notFunc_10F,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("findMSB(20E"),
-                &BuiltInFunction::function_findMSB_20E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("lessThanEqual(30B30B"),
-                &BuiltInFunction::function_lessThanEqual_30B30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(00z10D00E"),
-                &BuiltInFunction::function_imageAtomicAdd_00z10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLod(00t00B00B"),
-                &BuiltInFunction::function_textureLod_00t00B00B,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGradOffset(00O30B10B10B10D"),
-                &BuiltInFunction::function_textureProjGradOffset_00O30B10B10B10D,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("outerProduct(20B30B"),
-                &BuiltInFunction::function_outerProduct_20B30B,
-                nullptr,
-                300,
-                120,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(00z10D00E"),
-                &BuiltInFunction::function_imageAtomicOr_00z10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01f00D00D"),
-                &BuiltInFunction::function_imageAtomicAnd_01f00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01f00D00E"),
-                &BuiltInFunction::function_imageAtomicAnd_01f00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSamples(01V"),
-                &BuiltInFunction::function_imageSamples_01V,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSamples(01U"),
-                &BuiltInFunction::function_imageSamples_01U,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSamples(01T"),
-                &BuiltInFunction::function_imageSamples_01T,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSamples(01S"),
-                &BuiltInFunction::function_imageSamples_01S,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mix(20B20B00B"),
-                &BuiltInFunction::function_mix_20B20B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSamples(01Q"),
-                &BuiltInFunction::function_imageSamples_01Q,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLodOffset(00o00B00B00D"),
-                &BuiltInFunction::function_textureLodOffset_00o00B00B00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("uintBitsToFloat(30E"),
-                &BuiltInFunction::function_uintBitsToFloat_30E,
-                nullptr,
-                300,
-                330,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01R10D00D00B"),
-                &BuiltInFunction::function_imageAtomicExchange_01R10D00D00B,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00K00D"),
-                &BuiltInFunction::function_textureSize_00K00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00h00D"),
-                &BuiltInFunction::function_textureSize_00h00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxAtomicCounterBindings"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxAtomicCounterBindings,
-                310,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetchOffset(00q10D10D"),
-                &BuiltInFunction::function_texelFetchOffset_00q10D10D,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("greaterThanEqual(10E10E"),
-                &BuiltInFunction::function_greaterThanEqual_10E10E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00d20B"),
-                &BuiltInFunction::function_texture_00d20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atan(10B10B"),
-                &BuiltInFunction::function_atan_10B10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("clamp(30B30B30B"),
-                &BuiltInFunction::function_clamp_30B30B30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01a20D00E00E"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01a20D00E00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01R10D00D00D00D"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01R10D00D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLodOffset(00a20B00B10D"),
-                &BuiltInFunction::function_textureLodOffset_00a20B00B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageStore(01K00D30B"),
-                &BuiltInFunction::function_imageStore_01K00D30B,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("greaterThanEqual(20B20B"),
-                &BuiltInFunction::function_greaterThanEqual_20B20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageLoad(01F20D"),
-                &BuiltInFunction::function_imageLoad_01F20D,
-                nullptr,
-                310,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("ceil(10C"),
-                &BuiltInFunction::function_ceil_10C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01b20D00D00D"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01b20D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01A10D00D"),
-                &BuiltInFunction::function_imageAtomicAnd_01A10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01D20D00E"),
-                &BuiltInFunction::function_imageAtomicAdd_01D20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atomicAdd(00D00D"),
-                &BuiltInFunction::function_atomicAdd_00D00D,
-                nullptr,
-                310,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00p00D"),
-                &BuiltInFunction::function_textureSize_00p00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("floatBitsToUint(20B"),
-                &BuiltInFunction::function_floatBitsToUint_20B,
-                nullptr,
-                300,
-                330,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00t30B00D00B"),
-                &BuiltInFunction::function_textureProjOffset_00t30B00D00B,
-                nullptr,
-                -1,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01Q10D00D00D"),
-                &BuiltInFunction::function_imageAtomicOr_01Q10D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01Q10D00D00E"),
-                &BuiltInFunction::function_imageAtomicOr_01Q10D00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mix(20D20D20F"),
-                &BuiltInFunction::function_mix_20D20D20F,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("degrees(20B"),
-                &BuiltInFunction::function_degrees_20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01Y10D00D"),
-                &BuiltInFunction::function_imageAtomicMin_01Y10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01Z20D00D"),
-                &BuiltInFunction::function_imageAtomicAnd_01Z20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01D20D00D00D"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01D20D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("min(00C00C"),
-                &BuiltInFunction::function_min_00C00C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01S10D00D00E"),
-                &BuiltInFunction::function_imageAtomicMax_01S10D00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01R10D00D00E"),
-                &BuiltInFunction::function_imageAtomicXor_01R10D00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01Q10D00D00E"),
-                &BuiltInFunction::function_imageAtomicXor_01Q10D00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("inversesqrt(00C"),
-                &BuiltInFunction::function_inversesqrt_00C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("inversesqrt(00B"),
-                &BuiltInFunction::function_inversesqrt_00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01Q10D00D00D"),
-                &BuiltInFunction::function_imageAtomicXor_01Q10D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetchOffset(00J20D00D20D"),
-                &BuiltInFunction::function_texelFetchOffset_00J20D00D20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGrad(00S30B20B20B"),
-                &BuiltInFunction::function_textureProjGrad_00S30B20B20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("equal(10D10D"),
-                &BuiltInFunction::function_equal_10D10D,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("max(30D00D"),
-                &BuiltInFunction::function_max_30D00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("groupMemoryBarrier("),
-                &BuiltInFunction::function_groupMemoryBarrier_,
-                nullptr,
-                310,
-                430,
-                Shader::COMPUTE,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01N10D00D"),
-                &BuiltInFunction::function_imageAtomicOr_01N10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01N10D00E"),
-                &BuiltInFunction::function_imageAtomicOr_01N10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01b20D00E"),
-                &BuiltInFunction::function_imageAtomicExchange_01b20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01b20D00D"),
-                &BuiltInFunction::function_imageAtomicExchange_01b20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("step(20C20C"),
-                &BuiltInFunction::function_step_20C20C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetch(00I10D00D"),
-                &BuiltInFunction::function_texelFetch_00I10D00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mod(00C00C"),
-                &BuiltInFunction::function_mod_00C00C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("transpose(E0B"),
-                &BuiltInFunction::function_transpose_E0B,
-                nullptr,
-                300,
-                120,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01R10D00D00E"),
-                &BuiltInFunction::function_imageAtomicMin_01R10D00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01R10D00D00D"),
-                &BuiltInFunction::function_imageAtomicMin_01R10D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffsets(00f20B00B70D"),
-                &BuiltInFunction::function_textureGatherOffsets_00f20B00B70D,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00O20B"),
-                &BuiltInFunction::function_textureGather_00O20B,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00Y30B20D00B"),
-                &BuiltInFunction::function_textureProjOffset_00Y30B20D00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("modf(10B10B"),
-                &BuiltInFunction::function_modf_10B10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01K00D00D"),
-                &BuiltInFunction::function_imageAtomicMax_01K00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01K00D00E"),
-                &BuiltInFunction::function_imageAtomicMax_01K00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("determinant(50B"),
-                &BuiltInFunction::function_determinant_50B,
-                nullptr,
-                300,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01J20D00E00E"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01J20D00E00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00g10B00B"),
-                &BuiltInFunction::function_textureProj_00g10B00B,
-                nullptr,
-                -1,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("lessThan(20B20B"),
-                &BuiltInFunction::function_lessThan_20B20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxFragmentInputVectors"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxFragmentInputVectors,
-                300,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("sign(20C"),
-                &BuiltInFunction::function_sign_20C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("cosh(20B"),
-                &BuiltInFunction::function_cosh_20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("sign(20D"),
-                &BuiltInFunction::function_sign_20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atanh(00B"),
-                &BuiltInFunction::function_atanh_00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01V20D00D00E"),
-                &BuiltInFunction::function_imageAtomicAnd_01V20D00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01V20D00D00D"),
-                &BuiltInFunction::function_imageAtomicAnd_01V20D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00t10B"),
-                &BuiltInFunction::function_textureProj_00t10B,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00p20B00B"),
-                &BuiltInFunction::function_texture_00p20B00B,
-                nullptr,
-                -1,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("fma(10C10C10C"),
-                &BuiltInFunction::function_fma_10C10C10C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01Y10D00D"),
-                &BuiltInFunction::function_imageAtomicXor_01Y10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01Y10D00E"),
-                &BuiltInFunction::function_imageAtomicXor_01Y10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01N10D00D"),
-                &BuiltInFunction::function_imageAtomicExchange_01N10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01C20D00E"),
-                &BuiltInFunction::function_imageAtomicAnd_01C20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00d20B10D00B"),
-                &BuiltInFunction::function_textureOffset_00d20B10D00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00m20B00D"),
-                &BuiltInFunction::function_textureOffset_00m20B00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01C20D00D"),
-                &BuiltInFunction::function_imageAtomicAnd_01C20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("lessThan(10E10E"),
-                &BuiltInFunction::function_lessThan_10E10E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01A10D00D00D"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01A10D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGrad(00X00B00B00B"),
-                &BuiltInFunction::function_textureGrad_00X00B00B00B,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLodOffset(00t30B00B00D"),
-                &BuiltInFunction::function_textureProjLodOffset_00t30B00B00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("fma(30C30C30C"),
-                &BuiltInFunction::function_fma_30C30C30C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGrad(00v10B10B10B"),
-                &BuiltInFunction::function_textureGrad_00v10B10B10B,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00N30B00B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_textureProj_00N30B00B,
-                nullptr,
-                300,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::EXT_YUV_target,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("step(00C00C"),
-                &BuiltInFunction::function_step_00C00C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxCombinedShaderOutputResources"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxCombinedShaderOutputResources,
-                310,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00I10B00B"),
-                &BuiltInFunction::function_texture_00I10B00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetch(00j00D"),
-                &BuiltInFunction::function_texelFetch_00j00D,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("lessThan(20D20D"),
-                &BuiltInFunction::function_lessThan_20D20D,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("clamp(20C20C20C"),
-                &BuiltInFunction::function_clamp_20C20C20C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(00z10D00E"),
-                &BuiltInFunction::function_imageAtomicXor_00z10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("all(10F"),
-                &BuiltInFunction::function_all_10F,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("dFdyCoarse(00B"),
-                &BuiltInFunction::function_dFdyCoarse_00B,
-                nullptr,
-                -1,
-                450,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("isinf(30B"),
-                &BuiltInFunction::function_isinf_30B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffset(00a20B10D00D"),
-                &BuiltInFunction::function_textureGatherOffset_00a20B10D00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffset(00I10B10D"),
-                &BuiltInFunction::function_textureGatherOffset_00I10B10D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00q30B10D"),
-                &BuiltInFunction::function_textureProjOffset_00q30B10D,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00L20B10D"),
-                &BuiltInFunction::function_textureOffset_00L20B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("lessThanEqual(30E30E"),
-                &BuiltInFunction::function_lessThanEqual_30E30E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("min(10E00E"),
-                &BuiltInFunction::function_min_10E00E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01a20D00E"),
-                &BuiltInFunction::function_imageAtomicXor_01a20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01a20D00D"),
-                &BuiltInFunction::function_imageAtomicXor_01a20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00S30B20D"),
-                &BuiltInFunction::function_textureProjOffset_00S30B20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("round(00C"),
-                &BuiltInFunction::function_round_00C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("round(00B"),
-                &BuiltInFunction::function_round_00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("greaterThan(30D30D"),
-                &BuiltInFunction::function_greaterThan_30D30D,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00U20B"),
-                &BuiltInFunction::function_texture_00U20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01P10D00E00E"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01P10D00E00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("smoothstep(00C00C20C"),
-                &BuiltInFunction::function_smoothstep_00C00C20C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture2DRect(00O10B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_texture2DRect_00O10B,
-                nullptr,
-                100,
-                Shader::ALL,
-                &ShBuiltInResources::ARB_texture_rectangle,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01K00D00E"),
-                &BuiltInFunction::function_imageAtomicAdd_01K00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01K00D00D"),
-                &BuiltInFunction::function_imageAtomicAdd_01K00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("noise2(20B"),
-                &BuiltInFunction::function_noise2_20B,
-                nullptr,
-                -1,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxGeometryOutputVertices"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxGeometryOutputVertices,
-                310,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_geometry_shader,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("step(20B20B"),
-                &BuiltInFunction::function_step_20B20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01b20D00E"),
-                &BuiltInFunction::function_imageAtomicAnd_01b20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("findMSB(10E"),
-                &BuiltInFunction::function_findMSB_10E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("findMSB(10D"),
-                &BuiltInFunction::function_findMSB_10D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("interpolateAtOffset(00B10B"),
-                &BuiltInFunction::function_interpolateAtOffset_00B10B,
-                nullptr,
-                -1,
-                400,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00t00B"),
-                &BuiltInFunction::function_texture_00t00B,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLodOffset(00S20B00B20D"),
-                &BuiltInFunction::function_textureLodOffset_00S20B00B20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLod(00p00B"),
-                &BuiltInFunction::function_textureQueryLod_00p00B,
-                nullptr,
-                -1,
-                400,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageStore(00z10D30D"),
-                &BuiltInFunction::function_imageStore_00z10D30D,
-                nullptr,
-                310,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("outerProduct(10B20B"),
-                &BuiltInFunction::function_outerProduct_10B20B,
-                nullptr,
-                300,
-                120,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("fwidthFine(10B"),
-                &BuiltInFunction::function_fwidthFine_10B,
-                nullptr,
-                -1,
-                450,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("cos(30B"),
-                &BuiltInFunction::function_cos_30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("unpackHalf2x16(00E"),
-                &BuiltInFunction::function_unpackHalf2x16_00E,
-                nullptr,
-                300,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageStore(01J20D30E"),
-                &BuiltInFunction::function_imageStore_01J20D30E,
-                nullptr,
-                310,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("outerProduct(10B10B"),
-                &BuiltInFunction::function_outerProduct_10B10B,
-                nullptr,
-                300,
-                120,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01M00D00D"),
-                &BuiltInFunction::function_imageAtomicOr_01M00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxComputeTextureImageUnits"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxComputeTextureImageUnits,
-                310,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01Y10D00E"),
-                &BuiltInFunction::function_imageAtomicMax_01Y10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01Y10D00D"),
-                &BuiltInFunction::function_imageAtomicMax_01Y10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("sin(30B"),
-                &BuiltInFunction::function_sin_30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01O10D00D"),
-                &BuiltInFunction::function_imageAtomicAnd_01O10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01Q10D00D00D00D"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01Q10D00D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00L20B00D"),
-                &BuiltInFunction::function_textureGather_00L20B00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageStore(01A10D30E"),
-                &BuiltInFunction::function_imageStore_01A10D30E,
-                nullptr,
-                310,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01H20D00D"),
-                &BuiltInFunction::function_imageAtomicXor_01H20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01H20D00E"),
-                &BuiltInFunction::function_imageAtomicXor_01H20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("shadow1D(00m20B00B"),
-                &BuiltInFunction::function_shadow1D_00m20B00B,
-                nullptr,
-                -1,
-                0,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("max(10E10E"),
-                &BuiltInFunction::function_max_10E10E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("max(30B30B"),
-                &BuiltInFunction::function_max_30B30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("clamp(10E10E10E"),
-                &BuiltInFunction::function_clamp_10E10E10E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00N10B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_texture_00N10B,
-                nullptr,
-                300,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_YUV_target,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGrad(00t30B00B00B"),
-                &BuiltInFunction::function_textureProjGrad_00t30B00B00B,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01E20D00D"),
-                &BuiltInFunction::function_imageAtomicOr_01E20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01E20D00E"),
-                &BuiltInFunction::function_imageAtomicOr_01E20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetchOffset(00a20D00D10D"),
-                &BuiltInFunction::function_texelFetchOffset_00a20D00D10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageLoad(01V20D00D"),
-                &BuiltInFunction::function_imageLoad_01V20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("not(20F"),
-                &BuiltInFunction::function_notFunc_20F,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01F20D00D"),
-                &BuiltInFunction::function_imageAtomicExchange_01F20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01Q10D00D00D"),
-                &BuiltInFunction::function_imageAtomicMax_01Q10D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01Q10D00D00E"),
-                &BuiltInFunction::function_imageAtomicMax_01Q10D00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01F20D00B"),
-                &BuiltInFunction::function_imageAtomicExchange_01F20D00B,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageStore(01L00D30D"),
-                &BuiltInFunction::function_imageStore_01L00D30D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("outerProduct(20B20B"),
-                &BuiltInFunction::function_outerProduct_20B20B,
-                nullptr,
-                300,
-                120,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLodOffset(00R20B00B10D"),
-                &BuiltInFunction::function_textureProjLodOffset_00R20B00B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00p10B00D"),
-                &BuiltInFunction::function_textureOffset_00p10B00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00h20B"),
-                &BuiltInFunction::function_texture_00h20B,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01B20D00D"),
-                &BuiltInFunction::function_imageAtomicXor_01B20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01B20D00E"),
-                &BuiltInFunction::function_imageAtomicXor_01B20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGrad(00J30B20B20B"),
-                &BuiltInFunction::function_textureProjGrad_00J30B20B20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01R10D00D00E"),
-                &BuiltInFunction::function_imageAtomicOr_01R10D00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01R10D00D00D"),
-                &BuiltInFunction::function_imageAtomicOr_01R10D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLod(00X10B00B"),
-                &BuiltInFunction::function_textureLod_00X10B00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_InvocationID"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInVariable::kVar_gl_InvocationID,
-                nullptr,
-                310,
-                Shader::GEOMETRY_EXT,
-                &ShBuiltInResources::EXT_geometry_shader,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01R10D00D00D"),
-                &BuiltInFunction::function_imageAtomicAnd_01R10D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01E20D00E"),
-                &BuiltInFunction::function_imageAtomicAdd_01E20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("radians(10B"),
-                &BuiltInFunction::function_radians_10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffset(00n10B00B10D"),
-                &BuiltInFunction::function_textureGatherOffset_00n10B00B10D,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("noise2(10B"),
-                &BuiltInFunction::function_noise2_10B,
-                nullptr,
-                -1,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLod(00a10B"),
-                &BuiltInFunction::function_textureQueryLod_00a10B,
-                nullptr,
-                -1,
-                400,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00e20B00B"),
-                &BuiltInFunction::function_textureGather_00e20B00B,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("distance(10B10B"),
-                &BuiltInFunction::function_distance_10B10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGrad(00Z20B20B20B"),
-                &BuiltInFunction::function_textureGrad_00Z20B20B20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("sign(00B"),
-                &BuiltInFunction::function_sign_00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitfieldReverse(00D"),
-                &BuiltInFunction::function_bitfieldReverse_00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitfieldReverse(00E"),
-                &BuiltInFunction::function_bitfieldReverse_00E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitfieldExtract(30E00D00D"),
-                &BuiltInFunction::function_bitfieldExtract_30E00D00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLod(00I10B00B"),
-                &BuiltInFunction::function_textureLod_00I10B00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("greaterThanEqual(10D10D"),
-                &BuiltInFunction::function_greaterThanEqual_10D10D,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageStore(01f00D30B"),
-                &BuiltInFunction::function_imageStore_01f00D30B,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01I20D00E00E"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01I20D00E00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("degrees(30B"),
-                &BuiltInFunction::function_degrees_30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("inversesqrt(30B"),
-                &BuiltInFunction::function_inversesqrt_30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("inversesqrt(30C"),
-                &BuiltInFunction::function_inversesqrt_30C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01I20D00D"),
-                &BuiltInFunction::function_imageAtomicMin_01I20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00v20B00D"),
-                &BuiltInFunction::function_textureGather_00v20B00D,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("intBitsToFloat(20D"),
-                &BuiltInFunction::function_intBitsToFloat_20D,
-                nullptr,
-                300,
-                330,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("exp(20B"),
-                &BuiltInFunction::function_exp_20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01A10D00E"),
-                &BuiltInFunction::function_imageAtomicMax_01A10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01A10D00D"),
-                &BuiltInFunction::function_imageAtomicMax_01A10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("acosh(00B"),
-                &BuiltInFunction::function_acosh_00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("log(10B"),
-                &BuiltInFunction::function_log_10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLodOffset(00S30B00B20D"),
-                &BuiltInFunction::function_textureProjLodOffset_00S30B00B20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00L20B"),
-                &BuiltInFunction::function_textureGather_00L20B,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00n30B"),
-                &BuiltInFunction::function_textureProj_00n30B,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLod(00i00B"),
-                &BuiltInFunction::function_textureQueryLod_00i00B,
-                nullptr,
-                -1,
-                400,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00p20B"),
-                &BuiltInFunction::function_texture_00p20B,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("outerProduct(30B20B"),
-                &BuiltInFunction::function_outerProduct_30B20B,
-                nullptr,
-                300,
-                120,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00S20B"),
-                &BuiltInFunction::function_texture_00S20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atomicXor(00D00D"),
-                &BuiltInFunction::function_atomicXor_00D00D,
-                nullptr,
-                310,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetch(00Y20D00D"),
-                &BuiltInFunction::function_texelFetch_00Y20D00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01P10D00D"),
-                &BuiltInFunction::function_imageAtomicOr_01P10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01P10D00E"),
-                &BuiltInFunction::function_imageAtomicOr_01P10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01N10D00E"),
-                &BuiltInFunction::function_imageAtomicXor_01N10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01N10D00D"),
-                &BuiltInFunction::function_imageAtomicXor_01N10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitfieldExtract(10D00D00D"),
-                &BuiltInFunction::function_bitfieldExtract_10D00D00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("sign(30B"),
-                &BuiltInFunction::function_sign_30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("sign(30C"),
-                &BuiltInFunction::function_sign_30C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("sign(30D"),
-                &BuiltInFunction::function_sign_30D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00Y20B00B"),
-                &BuiltInFunction::function_texture_00Y20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("dFdy(20B"),
-                &BuiltInFunction::function_dFdy_20B,
-                nullptr,
-                300,
-                0,
-                Shader::FRAGMENT,
-                &BuiltInFunction::function_dFdyExt_20B,
-                nullptr,
-                100,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::OES_standard_derivatives,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00Y30B"),
-                &BuiltInFunction::function_textureProj_00Y30B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00X10B10D00B"),
-                &BuiltInFunction::function_textureOffset_00X10B10D00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("memoryBarrierBuffer("),
-                &BuiltInFunction::function_memoryBarrierBuffer_,
-                nullptr,
-                310,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("isinf(00B"),
-                &BuiltInFunction::function_isinf_00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("isinf(00C"),
-                &BuiltInFunction::function_isinf_00C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("clamp(20D00D00D"),
-                &BuiltInFunction::function_clamp_20D00D00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture2DProj(00I20B00B"),
-                &BuiltInFunction::function_texture2DProj_00I20B00B,
-                nullptr,
-                100,
-                0,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mod(30B00B"),
-                &BuiltInFunction::function_mod_30B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01A10D00E"),
-                &BuiltInFunction::function_imageAtomicAnd_01A10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffsets(00O10B70D00D"),
-                &BuiltInFunction::function_textureGatherOffsets_00O10B70D00D,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00f20B00B"),
-                &BuiltInFunction::function_textureGather_00f20B00B,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00m30B"),
-                &BuiltInFunction::function_textureProj_00m30B,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("greaterThan(20E20E"),
-                &BuiltInFunction::function_greaterThan_20E20E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLod(00I30B00B"),
-                &BuiltInFunction::function_textureProjLod_00I30B00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("refract(00B00B00B"),
-                &BuiltInFunction::function_refract_00B00B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxGeometryImageUniforms"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxGeometryImageUniforms,
-                310,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_geometry_shader,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(00y10D00D"),
-                &BuiltInFunction::function_imageAtomicMin_00y10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(00y10D00E"),
-                &BuiltInFunction::function_imageAtomicMin_00y10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01X10D00D"),
-                &BuiltInFunction::function_imageAtomicMin_01X10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01X10D00E"),
-                &BuiltInFunction::function_imageAtomicMin_01X10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00e00D"),
-                &BuiltInFunction::function_textureSize_00e00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetch(00a20D00D"),
-                &BuiltInFunction::function_texelFetch_00a20D00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("step(00C10C"),
-                &BuiltInFunction::function_step_00C10C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("frexp(30B30D"),
-                &BuiltInFunction::function_frexp_30B30D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01Y10D00E"),
-                &BuiltInFunction::function_imageAtomicMin_01Y10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00t00B00B"),
-                &BuiltInFunction::function_texture_00t00B00B,
-                nullptr,
-                -1,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("min(30C00C"),
-                &BuiltInFunction::function_min_30C00C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01X10D00E00E"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01X10D00E00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00I10B"),
-                &BuiltInFunction::function_texture_00I10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_InstanceID"),
-                &BuiltInVariable::kVar_gl_InstanceID,
-                nullptr,
-                300,
-                0,
-                Shader::VERTEX,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("normalize(20B"),
-                &BuiltInFunction::function_normalize_20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("normalize(20C"),
-                &BuiltInFunction::function_normalize_20C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01H20D00D00D"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01H20D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("inverse(F0B"),
-                &BuiltInFunction::function_inverse_F0B,
-                nullptr,
-                300,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageLoad(01K00D"),
-                &BuiltInFunction::function_imageLoad_01K00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("frexp(20C20D"),
-                &BuiltInFunction::function_frexp_20C20D,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atan(00B"),
-                &BuiltInFunction::function_atan_00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffset(00R10B10D00D"),
-                &BuiltInFunction::function_textureGatherOffset_00R10B10D00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01h00D00E"),
-                &BuiltInFunction::function_imageAtomicMin_01h00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01h00D00D"),
-                &BuiltInFunction::function_imageAtomicMin_01h00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("greaterThan(30E30E"),
-                &BuiltInFunction::function_greaterThan_30E30E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageStore(01U20D00D30D"),
-                &BuiltInFunction::function_imageStore_01U20D00D30D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetchOffset(00p10D00D00D"),
-                &BuiltInFunction::function_texelFetchOffset_00p10D00D00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01J20D00D"),
-                &BuiltInFunction::function_imageAtomicAnd_01J20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01J20D00E"),
-                &BuiltInFunction::function_imageAtomicAnd_01J20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_DepthRange"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_DepthRange,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01S10D00D00D"),
-                &BuiltInFunction::function_imageAtomicMax_01S10D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01K00D00D00D"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01K00D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00o30B"),
-                &BuiltInFunction::function_textureProj_00o30B,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01I20D00E"),
-                &BuiltInFunction::function_imageAtomicAdd_01I20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitfieldExtract(20D00D00D"),
-                &BuiltInFunction::function_bitfieldExtract_20D00D00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00L20B00B"),
-                &BuiltInFunction::function_texture_00L20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01L00D00E"),
-                &BuiltInFunction::function_imageAtomicOr_01L00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01L00D00D"),
-                &BuiltInFunction::function_imageAtomicOr_01L00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mix(30D30D30F"),
-                &BuiltInFunction::function_mix_30D30D30F,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01Z20D00B"),
-                &BuiltInFunction::function_imageAtomicExchange_01Z20D00B,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01Z20D00E"),
-                &BuiltInFunction::function_imageAtomicExchange_01Z20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01Z20D00D"),
-                &BuiltInFunction::function_imageAtomicExchange_01Z20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01f00D00E"),
-                &BuiltInFunction::function_imageAtomicExchange_01f00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01f00D00D"),
-                &BuiltInFunction::function_imageAtomicExchange_01f00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageLoad(01h00D"),
-                &BuiltInFunction::function_imageLoad_01h00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01E20D00E00E"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01E20D00E00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00O30B10D"),
-                &BuiltInFunction::function_textureProjOffset_00O30B10D,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("floor(10B"),
-                &BuiltInFunction::function_floor_10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("floor(10C"),
-                &BuiltInFunction::function_floor_10C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01R10D00D00E"),
-                &BuiltInFunction::function_imageAtomicMax_01R10D00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01R10D00D00D"),
-                &BuiltInFunction::function_imageAtomicMax_01R10D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLodOffset(00o10B00B00D"),
-                &BuiltInFunction::function_textureProjLodOffset_00o10B00B00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00x30B00D"),
-                &BuiltInFunction::function_textureGather_00x30B00D,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("interpolateAtSample(10B00D"),
-                &BuiltInFunction::function_interpolateAtSample_10B00D,
-                nullptr,
-                -1,
-                400,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01F20D00E"),
-                &BuiltInFunction::function_imageAtomicMin_01F20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01F20D00D"),
-                &BuiltInFunction::function_imageAtomicMin_01F20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("outerProduct(10B30B"),
-                &BuiltInFunction::function_outerProduct_10B30B,
-                nullptr,
-                300,
-                120,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01O10D00E00E"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01O10D00E00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("cos(00B"),
-                &BuiltInFunction::function_cos_00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01F20D00E"),
-                &BuiltInFunction::function_imageAtomicXor_01F20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("frexp(00C00D"),
-                &BuiltInFunction::function_frexp_00C00D,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atomicCounterCompSwap(00G00E00E"),
-                &BuiltInFunction::function_atomicCounterCompSwap_00G00E00E,
-                nullptr,
-                -1,
-                460,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00a20B10D00B"),
-                &BuiltInFunction::function_textureOffset_00a20B10D00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00X10B"),
-                &BuiltInFunction::function_textureGather_00X10B,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00R10B10D00B"),
-                &BuiltInFunction::function_textureOffset_00R10B10D00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffset(00d10B00B10D"),
-                &BuiltInFunction::function_textureGatherOffset_00d10B00B10D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxFragmentImageUniforms"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxFragmentImageUniforms,
-                310,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00i00D"),
-                &BuiltInFunction::function_textureSize_00i00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("equal(20E20E"),
-                &BuiltInFunction::function_equal_20E20E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("uaddCarry(00E00E00E"),
-                &BuiltInFunction::function_uaddCarry_00E00E00E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLod(00T20B"),
-                &BuiltInFunction::function_textureQueryLod_00T20B,
-                nullptr,
-                -1,
-                400,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureCube(00K20B"),
-                &BuiltInFunction::function_textureCube_00K20B,
-                nullptr,
-                100,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01U20D00D00E"),
-                &BuiltInFunction::function_imageAtomicMax_01U20D00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01U20D00D00D"),
-                &BuiltInFunction::function_imageAtomicMax_01U20D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("matrixCompMult(90B90B"),
-                &BuiltInFunction::function_matrixCompMult_90B90B,
-                nullptr,
-                300,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01T20D00D00D"),
-                &BuiltInFunction::function_imageAtomicMin_01T20D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01T20D00D00E"),
-                &BuiltInFunction::function_imageAtomicMin_01T20D00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGradOffset(00p10B00B00B00D"),
-                &BuiltInFunction::function_textureGradOffset_00p10B00B00B00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLodOffset(00g30B00B00D"),
-                &BuiltInFunction::function_textureProjLodOffset_00g30B00B00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("clamp(30E00E00E"),
-                &BuiltInFunction::function_clamp_30E00E00E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("asin(00B"),
-                &BuiltInFunction::function_asin_00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00J30B20D00B"),
-                &BuiltInFunction::function_textureProjOffset_00J30B20D00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageLoad(01W10D"),
-                &BuiltInFunction::function_imageLoad_01W10D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetch(00w00D"),
-                &BuiltInFunction::function_texelFetch_00w00D,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01b20D00B"),
-                &BuiltInFunction::function_imageAtomicExchange_01b20D00B,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("notEqual(30E30E"),
-                &BuiltInFunction::function_notEqual_30E30E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("lessThanEqual(10E10E"),
-                &BuiltInFunction::function_lessThanEqual_10E10E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("inversesqrt(20C"),
-                &BuiltInFunction::function_inversesqrt_20C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("inversesqrt(20B"),
-                &BuiltInFunction::function_inversesqrt_20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLod(00i20B00B"),
-                &BuiltInFunction::function_textureLod_00i20B00B,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00u10B00D00B"),
-                &BuiltInFunction::function_textureOffset_00u10B00D00B,
-                nullptr,
-                -1,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("reflect(00C00C"),
-                &BuiltInFunction::function_reflect_00C00C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atomicAdd(00E00E"),
-                &BuiltInFunction::function_atomicAdd_00E00E,
-                nullptr,
-                310,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("intBitsToFloat(30D"),
-                &BuiltInFunction::function_intBitsToFloat_30D,
-                nullptr,
-                300,
-                330,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGradOffset(00v20B10B10B10D"),
-                &BuiltInFunction::function_textureProjGradOffset_00v20B10B10B10D,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGrad(00X10B10B10B"),
-                &BuiltInFunction::function_textureGrad_00X10B10B10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("greaterThanEqual(30E30E"),
-                &BuiltInFunction::function_greaterThanEqual_30E30E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mix(20B20B20F"),
-                &BuiltInFunction::function_mix_20B20B20F,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxVertexAtomicCounters"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxVertexAtomicCounters,
-                310,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00X20B10D"),
-                &BuiltInFunction::function_textureProjOffset_00X20B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("any(10F"),
-                &BuiltInFunction::function_any_10F,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGradOffset(00d30B10B10B10D"),
-                &BuiltInFunction::function_textureProjGradOffset_00d30B10B10B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageLoad(01X10D"),
-                &BuiltInFunction::function_imageLoad_01X10D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00I30B10D"),
-                &BuiltInFunction::function_textureProjOffset_00I30B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01W10D00B"),
-                &BuiltInFunction::function_imageAtomicExchange_01W10D00B,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01W10D00E"),
-                &BuiltInFunction::function_imageAtomicExchange_01W10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01W10D00D"),
-                &BuiltInFunction::function_imageAtomicExchange_01W10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00X10B10D"),
-                &BuiltInFunction::function_textureOffset_00X10B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01K00D00E"),
-                &BuiltInFunction::function_imageAtomicXor_01K00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00R10B"),
-                &BuiltInFunction::function_texture_00R10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01Z20D00E"),
-                &BuiltInFunction::function_imageAtomicAnd_01Z20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageStore(01M00D30E"),
-                &BuiltInFunction::function_imageStore_01M00D30E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("radians(00B"),
-                &BuiltInFunction::function_radians_00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageStore(01Y10D30E"),
-                &BuiltInFunction::function_imageStore_01Y10D30E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("step(10B10B"),
-                &BuiltInFunction::function_step_10B10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxDualSourceDrawBuffersEXT"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxDualSourceDrawBuffersEXT,
-                0,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_blend_func_extended,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01Y10D00D"),
-                &BuiltInFunction::function_imageAtomicAdd_01Y10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01Y10D00E"),
-                &BuiltInFunction::function_imageAtomicAdd_01Y10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitfieldReverse(10E"),
-                &BuiltInFunction::function_bitfieldReverse_10E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitfieldReverse(10D"),
-                &BuiltInFunction::function_bitfieldReverse_10D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageStore(01g00D30D"),
-                &BuiltInFunction::function_imageStore_01g00D30D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGradOffset(00q20B10B10B10D"),
-                &BuiltInFunction::function_textureProjGradOffset_00q20B10B10B10D,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01S10D00D00E"),
-                &BuiltInFunction::function_imageAtomicExchange_01S10D00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atomicXor(00E00E"),
-                &BuiltInFunction::function_atomicXor_00E00E,
-                nullptr,
-                310,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mix(00C00C00F"),
-                &BuiltInFunction::function_mix_00C00C00F,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLodOffset(00g00B00B00D"),
-                &BuiltInFunction::function_textureLodOffset_00g00B00B00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("greaterThan(30B30B"),
-                &BuiltInFunction::function_greaterThan_30B30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxFragmentAtomicCounters"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxFragmentAtomicCounters,
-                310,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("faceforward(20B20B20B"),
-                &BuiltInFunction::function_faceforward_20B20B20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00x00D"),
-                &BuiltInFunction::function_textureSize_00x00D,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00S30B00B"),
-                &BuiltInFunction::function_textureProj_00S30B00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("fma(20B20B20B"),
-                &BuiltInFunction::function_fma_20B20B20B,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLod(00o10B00B"),
-                &BuiltInFunction::function_textureProjLod_00o10B00B,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01J20D00E"),
-                &BuiltInFunction::function_imageAtomicMin_01J20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("outerProduct(30B30B"),
-                &BuiltInFunction::function_outerProduct_30B30B,
-                nullptr,
-                300,
-                120,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("exp(30B"),
-                &BuiltInFunction::function_exp_30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitCount(10E"),
-                &BuiltInFunction::function_bitCount_10E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitCount(10D"),
-                &BuiltInFunction::function_bitCount_10D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("log(00B"),
-                &BuiltInFunction::function_log_00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mix(00F00F00F"),
-                &BuiltInFunction::function_mix_00F00F00F,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01M00D00D00D"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01M00D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01T20D00D00E"),
-                &BuiltInFunction::function_imageAtomicAnd_01T20D00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01T20D00D00D"),
-                &BuiltInFunction::function_imageAtomicAnd_01T20D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("subpassLoad(01l00D"),
-                &BuiltInFunction::function_subpassLoad_01l00D,
-                nullptr,
-                -1,
-                460,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageStore(01N10D30B"),
-                &BuiltInFunction::function_imageStore_01N10D30B,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("acosh(30B"),
-                &BuiltInFunction::function_acosh_30B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01Y10D00E"),
-                &BuiltInFunction::function_imageAtomicOr_01Y10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01Y10D00D"),
-                &BuiltInFunction::function_imageAtomicOr_01Y10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGradOffset(00X10B10B10B10D"),
-                &BuiltInFunction::function_textureGradOffset_00X10B10B10B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetchOffset(00X10D00D10D"),
-                &BuiltInFunction::function_texelFetchOffset_00X10D00D10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("packUnorm2x16(10B"),
-                &BuiltInFunction::function_packUnorm2x16_10B,
-                nullptr,
-                300,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00h20B00B"),
-                &BuiltInFunction::function_texture_00h20B00B,
-                nullptr,
-                -1,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("umulExtended(20E20E20E20E"),
-                &BuiltInFunction::function_umulExtended_20E20E20E20E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00m20B00B"),
-                &BuiltInFunction::function_texture_00m20B00B,
-                nullptr,
-                -1,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGradOffset(00g30B00B00B00D"),
-                &BuiltInFunction::function_textureProjGradOffset_00g30B00B00B00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00o30B00B"),
-                &BuiltInFunction::function_textureProj_00o30B00B,
-                nullptr,
-                -1,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureCubeLod(00K20B00B"),
-                &BuiltInFunction::function_textureCubeLod_00K20B00B,
-                nullptr,
-                100,
-                0,
-                Shader::VERTEX,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00L00D"),
-                &BuiltInFunction::function_textureSize_00L00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01L00D00E"),
-                &BuiltInFunction::function_imageAtomicXor_01L00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("max(20E00E"),
-                &BuiltInFunction::function_max_20E00E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00S30B"),
-                &BuiltInFunction::function_textureProj_00S30B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("dFdy(30B"),
-                &BuiltInFunction::function_dFdy_30B,
-                nullptr,
-                300,
-                0,
-                Shader::FRAGMENT,
-                &BuiltInFunction::function_dFdyExt_30B,
-                nullptr,
-                100,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::OES_standard_derivatives,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01W10D00D"),
-                &BuiltInFunction::function_imageAtomicMin_01W10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("isinf(10C"),
-                &BuiltInFunction::function_isinf_10C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("isinf(10B"),
-                &BuiltInFunction::function_isinf_10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffsets(00a20B70D"),
-                &BuiltInFunction::function_textureGatherOffsets_00a20B70D,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxVertexTextureImageUnits"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxVertexTextureImageUnits,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("greaterThanEqual(30B30B"),
-                &BuiltInFunction::function_greaterThanEqual_30B30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture2DProjLodEXT(00I20B00B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_texture2DProjLodEXT_00I20B00B,
-                nullptr,
-                100,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::EXT_shader_texture_lod,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_FrontFacing"),
-                &BuiltInVariable::kVar_gl_FrontFacing,
-                nullptr,
-                0,
-                0,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageStore(01C20D30D"),
-                &BuiltInFunction::function_imageStore_01C20D30D,
-                nullptr,
-                310,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00t10B00D00B"),
-                &BuiltInFunction::function_textureProjOffset_00t10B00D00B,
-                nullptr,
-                -1,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01Z20D00D00D"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01Z20D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("acos(10B"),
-                &BuiltInFunction::function_acos_10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureCube(00K20B00B"),
-                &BuiltInFunction::function_textureCube_00K20B00B,
-                nullptr,
-                100,
-                0,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("lessThan(10B10B"),
-                &BuiltInFunction::function_lessThan_10B10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxComputeAtomicCounterBuffers"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxComputeAtomicCounterBuffers,
-                310,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00f00D"),
-                &BuiltInFunction::function_textureSize_00f00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageLoad(01B20D"),
-                &BuiltInFunction::function_imageLoad_01B20D,
-                nullptr,
-                310,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetchOffset(00h10D00D00D"),
-                &BuiltInFunction::function_texelFetchOffset_00h10D00D00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mod(20C00C"),
-                &BuiltInFunction::function_mod_20C00C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01g00D00D"),
-                &BuiltInFunction::function_imageAtomicAnd_01g00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_LastFragColorARM"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInVariable::kVar_gl_LastFragColorARM,
-                nullptr,
-                100,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::ARM_shader_framebuffer_fetch,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("lessThanEqual(20D20D"),
-                &BuiltInFunction::function_lessThanEqual_20D20D,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLod(00k20B"),
-                &BuiltInFunction::function_textureQueryLod_00k20B,
-                nullptr,
-                -1,
-                400,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLod(00Y30B00B"),
-                &BuiltInFunction::function_textureProjLod_00Y30B00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_SecondaryFragColorEXT"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInVariable::kVar_gl_SecondaryFragColorEXT,
-                nullptr,
-                100,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::EXT_blend_func_extended,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01U20D00D00D"),
-                &BuiltInFunction::function_imageAtomicAnd_01U20D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01U20D00D00E"),
-                &BuiltInFunction::function_imageAtomicAnd_01U20D00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_BaseInstance"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInVariable::kVar_gl_BaseInstance,
-                nullptr,
-                300,
-                Shader::VERTEX,
-                &ShBuiltInResources::ANGLE_base_vertex_base_instance,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("transpose(B0B"),
-                &BuiltInFunction::function_transpose_B0B,
-                nullptr,
-                300,
-                120,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01b20D00E"),
-                &BuiltInFunction::function_imageAtomicXor_01b20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mix(20F20F20F"),
-                &BuiltInFunction::function_mix_20F20F20F,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("smoothstep(00B00B30B"),
-                &BuiltInFunction::function_smoothstep_00B00B30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01M00D00B"),
-                &BuiltInFunction::function_imageAtomicExchange_01M00D00B,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01F20D00E"),
-                &BuiltInFunction::function_imageAtomicExchange_01F20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01M00D00D"),
-                &BuiltInFunction::function_imageAtomicExchange_01M00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01M00D00E"),
-                &BuiltInFunction::function_imageAtomicExchange_01M00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01F20D00E00E"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01F20D00E00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetch(00N10D00D"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_texelFetch_00N10D00D,
-                nullptr,
-                300,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_YUV_target,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00a00D"),
-                &BuiltInFunction::function_textureSize_00a00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01T20D00D00D"),
-                &BuiltInFunction::function_imageAtomicXor_01T20D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00Y30B20D"),
-                &BuiltInFunction::function_textureProjOffset_00Y30B20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitCount(30E"),
-                &BuiltInFunction::function_bitCount_30E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atan(30B"),
-                &BuiltInFunction::function_atan_30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffsets(00R10B70D00D"),
-                &BuiltInFunction::function_textureGatherOffsets_00R10B70D00D,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01b20D00D"),
-                &BuiltInFunction::function_imageAtomicMax_01b20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("ceil(10B"),
-                &BuiltInFunction::function_ceil_10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00S00D"),
-                &BuiltInFunction::function_textureSize_00S00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01S10D00D00B"),
-                &BuiltInFunction::function_imageAtomicExchange_01S10D00D00B,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atomicCounterDecrement(00G"),
-                &BuiltInFunction::function_atomicCounterDecrement_00G,
-                nullptr,
-                310,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("ceil(30B"),
-                &BuiltInFunction::function_ceil_30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00t00D"),
-                &BuiltInFunction::function_textureSize_00t00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("memoryBarrier("),
-                &BuiltInFunction::function_memoryBarrier_,
-                nullptr,
-                310,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00f30B"),
-                &BuiltInFunction::function_texture_00f30B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSamples(01R"),
-                &BuiltInFunction::function_imageSamples_01R,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetch(00R10D00D"),
-                &BuiltInFunction::function_texelFetch_00R10D00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("sign(20B"),
-                &BuiltInFunction::function_sign_20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("smoothstep(30B30B30B"),
-                &BuiltInFunction::function_smoothstep_30B30B30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGrad(00R10B10B10B"),
-                &BuiltInFunction::function_textureGrad_00R10B10B10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("min(00D00D"),
-                &BuiltInFunction::function_min_00D00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00t10B00B"),
-                &BuiltInFunction::function_textureProj_00t10B00B,
-                nullptr,
-                -1,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01W10D00E00E"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01W10D00E00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01V20D00D00E"),
-                &BuiltInFunction::function_imageAtomicAdd_01V20D00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("ldexp(20B20D"),
-                &BuiltInFunction::function_ldexp_20B20D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("greaterThanEqual(30D30D"),
-                &BuiltInFunction::function_greaterThanEqual_30D30D,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageLoad(01D20D"),
-                &BuiltInFunction::function_imageLoad_01D20D,
-                nullptr,
-                310,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("findLSB(10E"),
-                &BuiltInFunction::function_findLSB_10E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00Z20B00B"),
-                &BuiltInFunction::function_texture_00Z20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01S10D00D00E"),
-                &BuiltInFunction::function_imageAtomicXor_01S10D00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01S10D00D00D"),
-                &BuiltInFunction::function_imageAtomicXor_01S10D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("cos(10B"),
-                &BuiltInFunction::function_cos_10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetch(00v10D"),
-                &BuiltInFunction::function_texelFetch_00v10D,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00e30B"),
-                &BuiltInFunction::function_texture_00e30B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageStore(01W10D30B"),
-                &BuiltInFunction::function_imageStore_01W10D30B,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00T00D"),
-                &BuiltInFunction::function_textureSize_00T00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01g00D00E"),
-                &BuiltInFunction::function_imageAtomicAnd_01g00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00u00D"),
-                &BuiltInFunction::function_textureSize_00u00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGradOffset(00Y30B20B20B20D"),
-                &BuiltInFunction::function_textureProjGradOffset_00Y30B20B20B20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("noise3(30B"),
-                &BuiltInFunction::function_noise3_30B,
-                nullptr,
-                -1,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGrad(00T20B20B20B"),
-                &BuiltInFunction::function_textureGrad_00T20B20B20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture1DProj(00g10B00B"),
-                &BuiltInFunction::function_texture1DProj_00g10B00B,
-                nullptr,
-                -1,
-                0,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00d30B10D00B"),
-                &BuiltInFunction::function_textureProjOffset_00d30B10D00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffsets(00X10B70D"),
-                &BuiltInFunction::function_textureGatherOffsets_00X10B70D,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01U20D00D00D"),
-                &BuiltInFunction::function_imageAtomicXor_01U20D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01U20D00D00E"),
-                &BuiltInFunction::function_imageAtomicXor_01U20D00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01h00D00D"),
-                &BuiltInFunction::function_imageAtomicAdd_01h00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01h00D00E"),
-                &BuiltInFunction::function_imageAtomicAdd_01h00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("matrixCompMult(50B50B"),
-                &BuiltInFunction::function_matrixCompMult_50B50B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("equal(30B30B"),
-                &BuiltInFunction::function_equal_30B30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01E20D00B"),
-                &BuiltInFunction::function_imageAtomicExchange_01E20D00B,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLod(00U20B00B"),
-                &BuiltInFunction::function_textureLod_00U20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01I20D00E"),
-                &BuiltInFunction::function_imageAtomicXor_01I20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01I20D00D"),
-                &BuiltInFunction::function_imageAtomicXor_01I20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00h10B00D"),
-                &BuiltInFunction::function_textureOffset_00h10B00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLod(00p10B00B"),
-                &BuiltInFunction::function_textureLod_00p10B00B,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("max(20C20C"),
-                &BuiltInFunction::function_max_20C20C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("max(10B10B"),
-                &BuiltInFunction::function_max_10B10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_PointSize"),
-                &BuiltInVariable::kVar_gl_PointSize,
-                nullptr,
-                0,
-                0,
-                Shader::VERTEX,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01B20D00E00E"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01B20D00E00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("asin(10B"),
-                &BuiltInFunction::function_asin_10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("sinh(00B"),
-                &BuiltInFunction::function_sinh_00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01g00D00D"),
-                &BuiltInFunction::function_imageAtomicAdd_01g00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01h00D00E00E"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01h00D00E00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00S20B20D"),
-                &BuiltInFunction::function_textureOffset_00S20B20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("fma(20C20C20C"),
-                &BuiltInFunction::function_fma_20C20C20C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01N10D00D00D"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01N10D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00R20B"),
-                &BuiltInFunction::function_textureProj_00R20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("greaterThan(10E10E"),
-                &BuiltInFunction::function_greaterThan_10E10E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01M00D00E"),
-                &BuiltInFunction::function_imageAtomicAnd_01M00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01M00D00D"),
-                &BuiltInFunction::function_imageAtomicAnd_01M00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("EmitVertex("),
-                &BuiltInFunction::function_EmitVertex_,
-                nullptr,
-                -1,
-                150,
-                Shader::GEOMETRY,
-                &BuiltInFunction::function_EmitVertex_,
-                nullptr,
-                310,
-                Shader::GEOMETRY_EXT,
-                &ShBuiltInResources::EXT_geometry_shader,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("smoothstep(20B20B20B"),
-                &BuiltInFunction::function_smoothstep_20B20B20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSamples(00b"),
-                &BuiltInFunction::function_textureSamples_00b,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00J20B20D"),
-                &BuiltInFunction::function_textureOffset_00J20B20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetch(00J20D00D"),
-                &BuiltInFunction::function_texelFetch_00J20D00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01V20D00D00E"),
-                &BuiltInFunction::function_imageAtomicExchange_01V20D00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01V20D00D00B"),
-                &BuiltInFunction::function_imageAtomicExchange_01V20D00D00B,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01Y10D00E00E"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01Y10D00E00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(00y10D00B"),
-                &BuiltInFunction::function_imageAtomicExchange_00y10D00B,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(00y10D00D"),
-                &BuiltInFunction::function_imageAtomicExchange_00y10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(00y10D00E"),
-                &BuiltInFunction::function_imageAtomicExchange_00y10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_ViewID_OVR"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInVariable::kVar_gl_ViewID_OVR,
-                nullptr,
-                300,
-                Shader::NOT_COMPUTE,
-                &ShBuiltInResources::OVR_multiview,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("radians(30B"),
-                &BuiltInFunction::function_radians_30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("fract(30B"),
-                &BuiltInFunction::function_fract_30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01B20D00D"),
-                &BuiltInFunction::function_imageAtomicAdd_01B20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01B20D00E"),
-                &BuiltInFunction::function_imageAtomicAdd_01B20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01H20D00E"),
-                &BuiltInFunction::function_imageAtomicMin_01H20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("uaddCarry(20E20E20E"),
-                &BuiltInFunction::function_uaddCarry_20E20E20E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGrad(00X30B10B10B"),
-                &BuiltInFunction::function_textureProjGrad_00X30B10B10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSamples(00P"),
-                &BuiltInFunction::function_textureSamples_00P,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00v20B10D"),
-                &BuiltInFunction::function_textureProjOffset_00v20B10D,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("shadow2D(00d20B00B"),
-                &BuiltInFunction::function_shadow2D_00d20B00B,
-                nullptr,
-                -1,
-                0,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetchOffset(00o00D00D00D"),
-                &BuiltInFunction::function_texelFetchOffset_00o00D00D00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSamples(00V"),
-                &BuiltInFunction::function_textureSamples_00V,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSamples(00W"),
-                &BuiltInFunction::function_textureSamples_00W,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGrad(00q30B10B10B"),
-                &BuiltInFunction::function_textureProjGrad_00q30B10B10B,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffset(00O10B10D"),
-                &BuiltInFunction::function_textureGatherOffset_00O10B10D,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("clamp(10D00D00D"),
-                &BuiltInFunction::function_clamp_10D00D00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxComputeImageUniforms"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxComputeImageUniforms,
-                310,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLod(00L20B00B"),
-                &BuiltInFunction::function_textureLod_00L20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01A10D00B"),
-                &BuiltInFunction::function_imageAtomicExchange_01A10D00B,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01V20D00D00D00D"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01V20D00D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01A10D00E"),
-                &BuiltInFunction::function_imageAtomicExchange_01A10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01A10D00D"),
-                &BuiltInFunction::function_imageAtomicExchange_01A10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01b20D00D"),
-                &BuiltInFunction::function_imageAtomicXor_01b20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00n20B"),
-                &BuiltInFunction::function_texture_00n20B,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("ldexp(20C20D"),
-                &BuiltInFunction::function_ldexp_20C20D,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("clamp(00E00E00E"),
-                &BuiltInFunction::function_clamp_00E00E00E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("length(20B"),
-                &BuiltInFunction::function_length_20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("ldexp(00B00D"),
-                &BuiltInFunction::function_ldexp_00B00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01N10D00E"),
-                &BuiltInFunction::function_imageAtomicExchange_01N10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitfieldInsert(00D00D00D00D"),
-                &BuiltInFunction::function_bitfieldInsert_00D00D00D00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGrad(00Y30B20B20B"),
-                &BuiltInFunction::function_textureProjGrad_00Y30B20B20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("roundEven(30B"),
-                &BuiltInFunction::function_roundEven_30B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("roundEven(30C"),
-                &BuiltInFunction::function_roundEven_30C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("acosh(20B"),
-                &BuiltInFunction::function_acosh_20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atanh(10B"),
-                &BuiltInFunction::function_atanh_10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("length(20C"),
-                &BuiltInFunction::function_length_20C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("clamp(10B10B10B"),
-                &BuiltInFunction::function_clamp_10B10B10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffset(00L20B10D00D"),
-                &BuiltInFunction::function_textureGatherOffset_00L20B10D00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitCount(00D"),
-                &BuiltInFunction::function_bitCount_00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitCount(00E"),
-                &BuiltInFunction::function_bitCount_00E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01N10D00B"),
-                &BuiltInFunction::function_imageAtomicExchange_01N10D00B,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("floatBitsToInt(30B"),
-                &BuiltInFunction::function_floatBitsToInt_30B,
-                nullptr,
-                300,
-                330,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("max(20B00B"),
-                &BuiltInFunction::function_max_20B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(00z10D00D"),
-                &BuiltInFunction::function_imageAtomicAdd_00z10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetchOffset(00Y20D00D20D"),
-                &BuiltInFunction::function_texelFetchOffset_00Y20D00D20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atomicExchange(00E00E"),
-                &BuiltInFunction::function_atomicExchange_00E00E,
-                nullptr,
-                310,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01h00D00D"),
-                &BuiltInFunction::function_imageAtomicXor_01h00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01h00D00E"),
-                &BuiltInFunction::function_imageAtomicXor_01h00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("ldexp(30C30D"),
-                &BuiltInFunction::function_ldexp_30C30D,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00o00B"),
-                &BuiltInFunction::function_texture_00o00B,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffsets(00X10B70D00D"),
-                &BuiltInFunction::function_textureGatherOffsets_00X10B70D00D,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("lessThanEqual(20B20B"),
-                &BuiltInFunction::function_lessThanEqual_20B20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("min(10B00B"),
-                &BuiltInFunction::function_min_10B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLod(00f10B"),
-                &BuiltInFunction::function_textureQueryLod_00f10B,
-                nullptr,
-                -1,
-                400,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("smoothstep(10C10C10C"),
-                &BuiltInFunction::function_smoothstep_10C10C10C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffsets(00U20B70D"),
-                &BuiltInFunction::function_textureGatherOffsets_00U20B70D,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01L00D00D"),
-                &BuiltInFunction::function_imageAtomicAnd_01L00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01L00D00E"),
-                &BuiltInFunction::function_imageAtomicAnd_01L00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mix(30F30F30F"),
-                &BuiltInFunction::function_mix_30F30F30F,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("abs(20D"),
-                &BuiltInFunction::function_abs_20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("abs(20C"),
-                &BuiltInFunction::function_abs_20C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("abs(20B"),
-                &BuiltInFunction::function_abs_20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("lessThanEqual(10B10B"),
-                &BuiltInFunction::function_lessThanEqual_10B10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01f00D00E"),
-                &BuiltInFunction::function_imageAtomicOr_01f00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01f00D00D"),
-                &BuiltInFunction::function_imageAtomicOr_01f00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01a20D00D"),
-                &BuiltInFunction::function_imageAtomicOr_01a20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mix(00B00B00B"),
-                &BuiltInFunction::function_mix_00B00B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mix(00B00B00F"),
-                &BuiltInFunction::function_mix_00B00B00F,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00s30B00D"),
-                &BuiltInFunction::function_textureGather_00s30B00D,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00I20B"),
-                &BuiltInFunction::function_textureProj_00I20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01B20D00B"),
-                &BuiltInFunction::function_imageAtomicExchange_01B20D00B,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLodOffset(00p10B00B00D"),
-                &BuiltInFunction::function_textureLodOffset_00p10B00B00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxVertexAtomicCounterBuffers"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxVertexAtomicCounterBuffers,
-                310,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("unpackDouble2x32(00C"),
-                &BuiltInFunction::function_unpackDouble2x32_00C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("acos(00B"),
-                &BuiltInFunction::function_acos_00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGradOffset(00J20B20B20B20D"),
-                &BuiltInFunction::function_textureGradOffset_00J20B20B20B20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("fma(00C00C00C"),
-                &BuiltInFunction::function_fma_00C00C00C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture2DGradEXT(00I10B10B10B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_texture2DGradEXT_00I10B10B10B,
-                nullptr,
-                100,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_shader_texture_lod,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01G20D00D00D"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01G20D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01I20D00D"),
-                &BuiltInFunction::function_imageAtomicAnd_01I20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture2DProjGradEXT(00I30B10B10B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_texture2DProjGradEXT_00I30B10B10B,
-                nullptr,
-                100,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_shader_texture_lod,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("fma(30B30B30B"),
-                &BuiltInFunction::function_fma_30B30B30B,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01L00D00D"),
-                &BuiltInFunction::function_imageAtomicAdd_01L00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00i20B00B"),
-                &BuiltInFunction::function_texture_00i20B00B,
-                nullptr,
-                -1,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxComputeWorkGroupCount"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxComputeWorkGroupCount,
-                310,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("clamp(20C00C00C"),
-                &BuiltInFunction::function_clamp_20C00C00C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01X10D00E"),
-                &BuiltInFunction::function_imageAtomicMax_01X10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(00y10D00E00E"),
-                &BuiltInFunction::function_imageAtomicCompSwap_00y10D00E00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mix(30E30E30F"),
-                &BuiltInFunction::function_mix_30E30E30F,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01b20D00E"),
-                &BuiltInFunction::function_imageAtomicMax_01b20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01G20D00D"),
-                &BuiltInFunction::function_imageAtomicMin_01G20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01G20D00E"),
-                &BuiltInFunction::function_imageAtomicMin_01G20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffsets(00I10B70D"),
-                &BuiltInFunction::function_textureGatherOffsets_00I10B70D,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01S10D00D00D"),
-                &BuiltInFunction::function_imageAtomicExchange_01S10D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atan(20B"),
-                &BuiltInFunction::function_atan_20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01Z20D00E00E"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01Z20D00E00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("interpolateAtSample(30B00D"),
-                &BuiltInFunction::function_interpolateAtSample_30B00D,
-                nullptr,
-                -1,
-                400,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("dFdxCoarse(30B"),
-                &BuiltInFunction::function_dFdxCoarse_30B,
-                nullptr,
-                -1,
-                450,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00M10B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_texture_00M10B,
-                nullptr,
-                300,
-                Shader::ALL,
-                &ShBuiltInResources::OES_EGL_image_external_essl3,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("min(10B10B"),
-                &BuiltInFunction::function_min_10B10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLodOffset(00h10B00B00D"),
-                &BuiltInFunction::function_textureLodOffset_00h10B00B00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("EndStreamPrimitive(00D"),
-                &BuiltInFunction::function_EndStreamPrimitive_00D,
-                nullptr,
-                -1,
-                400,
-                Shader::GEOMETRY,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("pow(10B10B"),
-                &BuiltInFunction::function_pow_10B10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00Y20B"),
-                &BuiltInFunction::function_texture_00Y20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01P10D00D"),
-                &BuiltInFunction::function_imageAtomicXor_01P10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00X10B00B"),
-                &BuiltInFunction::function_texture_00X10B00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("frexp(00B00D"),
-                &BuiltInFunction::function_frexp_00B00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture2D(00I10B"),
-                &BuiltInFunction::function_texture2D_00I10B,
-                nullptr,
-                100,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageLoad(01O10D"),
-                &BuiltInFunction::function_imageLoad_01O10D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("ceil(20C"),
-                &BuiltInFunction::function_ceil_20C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("ceil(20B"),
-                &BuiltInFunction::function_ceil_20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01b20D00E"),
-                &BuiltInFunction::function_imageAtomicMin_01b20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01b20D00D"),
-                &BuiltInFunction::function_imageAtomicMin_01b20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01P10D00D"),
-                &BuiltInFunction::function_imageAtomicMax_01P10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01P10D00E"),
-                &BuiltInFunction::function_imageAtomicMax_01P10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01P10D00B"),
-                &BuiltInFunction::function_imageAtomicExchange_01P10D00B,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00R20B10D"),
-                &BuiltInFunction::function_textureProjOffset_00R20B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageStore(01V20D00D30E"),
-                &BuiltInFunction::function_imageStore_01V20D00D30E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01T20D00D00E00E"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01T20D00D00E00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("subpassLoad(01m00D"),
-                &BuiltInFunction::function_subpassLoad_01m00D,
-                nullptr,
-                -1,
-                460,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00I10B10D"),
-                &BuiltInFunction::function_textureOffset_00I10B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("min(20B00B"),
-                &BuiltInFunction::function_min_20B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("reflect(00B00B"),
-                &BuiltInFunction::function_reflect_00B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("noise4(10B"),
-                &BuiltInFunction::function_noise4_10B,
-                nullptr,
-                -1,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("sqrt(10C"),
-                &BuiltInFunction::function_sqrt_10C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("sqrt(10B"),
-                &BuiltInFunction::function_sqrt_10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01Z20D00D"),
-                &BuiltInFunction::function_imageAtomicXor_01Z20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01Z20D00E"),
-                &BuiltInFunction::function_imageAtomicXor_01Z20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("clamp(20E20E20E"),
-                &BuiltInFunction::function_clamp_20E20E20E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGradOffset(00g00B00B00B00D"),
-                &BuiltInFunction::function_textureGradOffset_00g00B00B00B00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00q20B"),
-                &BuiltInFunction::function_textureGather_00q20B,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("noise3(00B"),
-                &BuiltInFunction::function_noise3_00B,
-                nullptr,
-                -1,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01G20D00D"),
-                &BuiltInFunction::function_imageAtomicOr_01G20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01G20D00E"),
-                &BuiltInFunction::function_imageAtomicOr_01G20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01C20D00D"),
-                &BuiltInFunction::function_imageAtomicMin_01C20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01C20D00E"),
-                &BuiltInFunction::function_imageAtomicMin_01C20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01F20D00E"),
-                &BuiltInFunction::function_imageAtomicAnd_01F20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLod(00d30B00B"),
-                &BuiltInFunction::function_textureProjLod_00d30B00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageStore(01a20D30D"),
-                &BuiltInFunction::function_imageStore_01a20D30D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageLoad(01H20D"),
-                &BuiltInFunction::function_imageLoad_01H20D,
-                nullptr,
-                310,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGradOffset(00I20B10B10B10D"),
-                &BuiltInFunction::function_textureProjGradOffset_00I20B10B10B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("interpolateAtSample(20B00D"),
-                &BuiltInFunction::function_interpolateAtSample_20B00D,
-                nullptr,
-                -1,
-                400,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("reflect(10B10B"),
-                &BuiltInFunction::function_reflect_10B10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("refract(10B10B00B"),
-                &BuiltInFunction::function_refract_10B10B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01h00D00D"),
-                &BuiltInFunction::function_imageAtomicMax_01h00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mix(20C20C20F"),
-                &BuiltInFunction::function_mix_20C20C20F,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01X10D00D"),
-                &BuiltInFunction::function_imageAtomicExchange_01X10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01X10D00E"),
-                &BuiltInFunction::function_imageAtomicExchange_01X10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mix(20C20C20C"),
-                &BuiltInFunction::function_mix_20C20C20C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00v10B10D"),
-                &BuiltInFunction::function_textureOffset_00v10B10D,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01P10D00D"),
-                &BuiltInFunction::function_imageAtomicMin_01P10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("sinh(30B"),
-                &BuiltInFunction::function_sinh_30B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00m00D"),
-                &BuiltInFunction::function_textureSize_00m00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLod(00e20B"),
-                &BuiltInFunction::function_textureQueryLod_00e20B,
-                nullptr,
-                -1,
-                400,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("asinh(20B"),
-                &BuiltInFunction::function_asinh_20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01C20D00D"),
-                &BuiltInFunction::function_imageAtomicAdd_01C20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01I20D00D00D"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01I20D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00O20B"),
-                &BuiltInFunction::function_textureProj_00O20B,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                &BuiltInFunction::function_textureProj_00O20B,
-                nullptr,
-                300,
-                Shader::ALL,
-                &ShBuiltInResources::ARB_texture_rectangle,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01M00D00E00E"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01M00D00E00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("frexp(10B10D"),
-                &BuiltInFunction::function_frexp_10B10D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("inverse(50B"),
-                &BuiltInFunction::function_inverse_50B,
-                nullptr,
-                300,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("dot(10B10B"),
-                &BuiltInFunction::function_dot_10B10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01T20D00D00D"),
-                &BuiltInFunction::function_imageAtomicExchange_01T20D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01T20D00D00E"),
-                &BuiltInFunction::function_imageAtomicExchange_01T20D00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("noise2(00B"),
-                &BuiltInFunction::function_noise2_00B,
-                nullptr,
-                -1,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGradOffset(00o10B00B00B00D"),
-                &BuiltInFunction::function_textureProjGradOffset_00o10B00B00B00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("radians(20B"),
-                &BuiltInFunction::function_radians_20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atomicCompSwap(00E00E00E"),
-                &BuiltInFunction::function_atomicCompSwap_00E00E00E,
-                nullptr,
-                310,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGrad(00I00B00B00B"),
-                &BuiltInFunction::function_textureGrad_00I00B00B00B,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGrad(00Y20B20B20B"),
-                &BuiltInFunction::function_textureGrad_00Y20B20B20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxVertexUniformVectors"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxVertexUniformVectors,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00o00B00D00B"),
-                &BuiltInFunction::function_textureOffset_00o00B00D00B,
-                nullptr,
-                -1,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("ftransform("),
-                &BuiltInFunction::function_ftransform_,
-                nullptr,
-                -1,
-                0,
-                Shader::VERTEX,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00X20B"),
-                &BuiltInFunction::function_textureProj_00X20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00n30B10D"),
-                &BuiltInFunction::function_textureProjOffset_00n30B10D,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxGeometryUniformComponents"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxGeometryUniformComponents,
-                310,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_geometry_shader,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("greaterThanEqual(20E20E"),
-                &BuiltInFunction::function_greaterThanEqual_20E20E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00M20B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_textureProj_00M20B,
-                nullptr,
-                300,
-                Shader::ALL,
-                &ShBuiltInResources::OES_EGL_image_external_essl3,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture3DProjLod(00J30B00B"),
-                &BuiltInFunction::function_texture3DProjLod_00J30B00B,
-                nullptr,
-                -1,
-                0,
-                Shader::FRAGMENT,
-                &BuiltInFunction::function_texture3DProjLod_00J30B00B,
-                nullptr,
-                100,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::OES_texture_3D,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("isinf(30C"),
-                &BuiltInFunction::function_isinf_30C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01S10D00D00D"),
-                &BuiltInFunction::function_imageAtomicAdd_01S10D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mix(10D10D10F"),
-                &BuiltInFunction::function_mix_10D10D10F,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGrad(00g10B00B00B"),
-                &BuiltInFunction::function_textureProjGrad_00g10B00B00B,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("log(20B"),
-                &BuiltInFunction::function_log_20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01D20D00E"),
-                &BuiltInFunction::function_imageAtomicMax_01D20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01D20D00D"),
-                &BuiltInFunction::function_imageAtomicMax_01D20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00h10B00D00B"),
-                &BuiltInFunction::function_textureOffset_00h10B00D00B,
-                nullptr,
-                -1,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("modf(30B30B"),
-                &BuiltInFunction::function_modf_30B30B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("roundEven(20C"),
-                &BuiltInFunction::function_roundEven_20C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("roundEven(20B"),
-                &BuiltInFunction::function_roundEven_20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("outerProduct(30B10B"),
-                &BuiltInFunction::function_outerProduct_30B10B,
-                nullptr,
-                300,
-                120,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00J30B"),
-                &BuiltInFunction::function_textureProj_00J30B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(00y10D00D"),
-                &BuiltInFunction::function_imageAtomicOr_00y10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(00y10D00E"),
-                &BuiltInFunction::function_imageAtomicOr_00y10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01F20D00E"),
-                &BuiltInFunction::function_imageAtomicOr_01F20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01F20D00D"),
-                &BuiltInFunction::function_imageAtomicOr_01F20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLodOffset(00t00B00B00D"),
-                &BuiltInFunction::function_textureLodOffset_00t00B00B00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("floatBitsToInt(20B"),
-                &BuiltInFunction::function_floatBitsToInt_20B,
-                nullptr,
-                300,
-                330,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetch(00U20D00D"),
-                &BuiltInFunction::function_texelFetch_00U20D00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("max(00D00D"),
-                &BuiltInFunction::function_max_00D00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atomicMin(00E00E"),
-                &BuiltInFunction::function_atomicMin_00E00E,
-                nullptr,
-                310,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01Q10D00D00D"),
-                &BuiltInFunction::function_imageAtomicMin_01Q10D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01Q10D00D00E"),
-                &BuiltInFunction::function_imageAtomicMin_01Q10D00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGradOffset(00v10B10B10B10D"),
-                &BuiltInFunction::function_textureGradOffset_00v10B10B10B10D,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGrad(00n20B10B10B"),
-                &BuiltInFunction::function_textureGrad_00n20B10B10B,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageLoad(01S10D00D"),
-                &BuiltInFunction::function_imageLoad_01S10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("max(20E20E"),
-                &BuiltInFunction::function_max_20E20E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01F20D00D00D"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01F20D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("abs(10D"),
-                &BuiltInFunction::function_abs_10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("abs(10B"),
-                &BuiltInFunction::function_abs_10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("abs(10C"),
-                &BuiltInFunction::function_abs_10C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_FragDepthEXT"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                nullptr,
-                &TSymbolTableBase::mVar_gl_FragDepthEXT,
-                100,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_frag_depth,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01V20D00D00D"),
-                &BuiltInFunction::function_imageAtomicAdd_01V20D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("modf(30C30C"),
-                &BuiltInFunction::function_modf_30C30C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01g00D00E"),
-                &BuiltInFunction::function_imageAtomicExchange_01g00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGrad(00i20B00B00B"),
-                &BuiltInFunction::function_textureGrad_00i20B00B00B,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00g10B"),
-                &BuiltInFunction::function_textureProj_00g10B,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("equal(20B20B"),
-                &BuiltInFunction::function_equal_20B20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLodOffset(00X20B00B10D"),
-                &BuiltInFunction::function_textureProjLodOffset_00X20B00B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("max(30C00C"),
-                &BuiltInFunction::function_max_30C00C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01W10D00D"),
-                &BuiltInFunction::function_imageAtomicMax_01W10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffsets(00a20B70D00D"),
-                &BuiltInFunction::function_textureGatherOffsets_00a20B70D00D,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00U20B00B"),
-                &BuiltInFunction::function_texture_00U20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00I30B"),
-                &BuiltInFunction::function_textureProj_00I30B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mix(00E00E00F"),
-                &BuiltInFunction::function_mix_00E00E00F,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01h00D00D00D"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01h00D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mix(00D00D00F"),
-                &BuiltInFunction::function_mix_00D00D00F,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("fwidthFine(00B"),
-                &BuiltInFunction::function_fwidthFine_00B,
-                nullptr,
-                -1,
-                450,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00i20B"),
-                &BuiltInFunction::function_texture_00i20B,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGradOffset(00a20B10B10B10D"),
-                &BuiltInFunction::function_textureGradOffset_00a20B10B10B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("smoothstep(00B00B20B"),
-                &BuiltInFunction::function_smoothstep_00B00B20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLod(00s30B00B"),
-                &BuiltInFunction::function_textureLod_00s30B00B,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01C20D00D"),
-                &BuiltInFunction::function_imageAtomicOr_01C20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01C20D00E"),
-                &BuiltInFunction::function_imageAtomicOr_01C20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01g00D00E"),
-                &BuiltInFunction::function_imageAtomicXor_01g00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("notEqual(30B30B"),
-                &BuiltInFunction::function_notEqual_30B30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01W10D00D00D"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01W10D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffset(00f20B00B10D"),
-                &BuiltInFunction::function_textureGatherOffset_00f20B00B10D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageLoad(01T20D00D"),
-                &BuiltInFunction::function_imageLoad_01T20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSize(00y"),
-                &BuiltInFunction::function_imageSize_00y,
-                nullptr,
-                310,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01W10D00E"),
-                &BuiltInFunction::function_imageAtomicMin_01W10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSize(00z"),
-                &BuiltInFunction::function_imageSize_00z,
-                nullptr,
-                310,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mod(10C10C"),
-                &BuiltInFunction::function_mod_10C10C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01g00D00D"),
-                &BuiltInFunction::function_imageAtomicXor_01g00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("faceforward(00C00C00C"),
-                &BuiltInFunction::function_faceforward_00C00C00C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGrad(00a20B10B10B"),
-                &BuiltInFunction::function_textureGrad_00a20B10B10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01R10D00D00D"),
-                &BuiltInFunction::function_imageAtomicXor_01R10D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01T20D00D00E"),
-                &BuiltInFunction::function_imageAtomicXor_01T20D00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("dFdxCoarse(00B"),
-                &BuiltInFunction::function_dFdxCoarse_00B,
-                nullptr,
-                -1,
-                450,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01a20D00D"),
-                &BuiltInFunction::function_imageAtomicMin_01a20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00J20B00B"),
-                &BuiltInFunction::function_texture_00J20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("refract(20B20B00B"),
-                &BuiltInFunction::function_refract_20B20B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("ceil(30C"),
-                &BuiltInFunction::function_ceil_30C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxGeometryOutputComponents"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxGeometryOutputComponents,
-                310,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_geometry_shader,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("noise1(30B"),
-                &BuiltInFunction::function_noise1_30B,
-                nullptr,
-                -1,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("log2(30B"),
-                &BuiltInFunction::function_log2_30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGrad(00d30B10B10B"),
-                &BuiltInFunction::function_textureProjGrad_00d30B10B10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mod(20C20C"),
-                &BuiltInFunction::function_mod_20C20C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("fract(30C"),
-                &BuiltInFunction::function_fract_30C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetch(00t00D00D"),
-                &BuiltInFunction::function_texelFetch_00t00D00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01L00D00D"),
-                &BuiltInFunction::function_imageAtomicXor_01L00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("max(30E30E"),
-                &BuiltInFunction::function_max_30E30E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxFragmentAtomicCounterBuffers"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxFragmentAtomicCounterBuffers,
-                310,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_in"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                nullptr,
-                &TSymbolTableBase::mVar_gl_in,
-                310,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_geometry_shader,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("noise4(00B"),
-                &BuiltInFunction::function_noise4_00B,
-                nullptr,
-                -1,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("distance(10C10C"),
-                &BuiltInFunction::function_distance_10C10C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLodOffset(00J30B00B20D"),
-                &BuiltInFunction::function_textureProjLodOffset_00J30B00B20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01H20D00E"),
-                &BuiltInFunction::function_imageAtomicMax_01H20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01H20D00D"),
-                &BuiltInFunction::function_imageAtomicMax_01H20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageStore(01h00D30E"),
-                &BuiltInFunction::function_imageStore_01h00D30E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffsets(00d10B00B70D"),
-                &BuiltInFunction::function_textureGatherOffsets_00d10B00B70D,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetch(00c20D00D"),
-                &BuiltInFunction::function_texelFetch_00c20D00D,
-                nullptr,
-                -1,
-                150,
-                Shader::ALL,
-                &BuiltInFunction::function_texelFetchExt_00c20D00D,
-                nullptr,
-                310,
-                Shader::ALL,
-                &ShBuiltInResources::OES_texture_storage_multisample_2d_array,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("sqrt(00B"),
-                &BuiltInFunction::function_sqrt_00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("sqrt(00C"),
-                &BuiltInFunction::function_sqrt_00C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLod(00R30B00B"),
-                &BuiltInFunction::function_textureProjLod_00R30B00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("noise3(10B"),
-                &BuiltInFunction::function_noise3_10B,
-                nullptr,
-                -1,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetch(00q10D"),
-                &BuiltInFunction::function_texelFetch_00q10D,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01F20D00D"),
-                &BuiltInFunction::function_imageAtomicAnd_01F20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLod(00m20B00B"),
-                &BuiltInFunction::function_textureLod_00m20B00B,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00m30B00D00B"),
-                &BuiltInFunction::function_textureProjOffset_00m30B00D00B,
-                nullptr,
-                -1,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGrad(00v30B10B10B"),
-                &BuiltInFunction::function_textureProjGrad_00v30B10B10B,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("clamp(20D20D20D"),
-                &BuiltInFunction::function_clamp_20D20D20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01P10D00E"),
-                &BuiltInFunction::function_imageAtomicMin_01P10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01C20D00E"),
-                &BuiltInFunction::function_imageAtomicAdd_01C20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("clamp(00C00C00C"),
-                &BuiltInFunction::function_clamp_00C00C00C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01b20D00E00E"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01b20D00E00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("max(10E00E"),
-                &BuiltInFunction::function_max_10E00E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGrad(00U20B10B10B"),
-                &BuiltInFunction::function_textureGrad_00U20B10B10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01B20D00D00D"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01B20D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageLoad(00z10D"),
-                &BuiltInFunction::function_imageLoad_00z10D,
-                nullptr,
-                310,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("clamp(30C00C00C"),
-                &BuiltInFunction::function_clamp_30C00C00C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("sinh(20B"),
-                &BuiltInFunction::function_sinh_20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("matrixCompMult(E0BE0B"),
-                &BuiltInFunction::function_matrixCompMult_E0BE0B,
-                nullptr,
-                300,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00q20B10D"),
-                &BuiltInFunction::function_textureProjOffset_00q20B10D,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_PerVertex"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                nullptr,
-                &TSymbolTableBase::mVar_gl_PerVertex,
-                310,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_geometry_shader,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGradOffset(00m20B00B00B00D"),
-                &BuiltInFunction::function_textureGradOffset_00m20B00B00B00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLevels(00p"),
-                &BuiltInFunction::function_textureQueryLevels_00p,
-                nullptr,
-                -1,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_WorkGroupSize"),
-                &BuiltInVariable::kVar_gl_WorkGroupSize,
-                nullptr,
-                310,
-                0,
-                Shader::COMPUTE,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("asinh(30B"),
-                &BuiltInFunction::function_asinh_30B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("cross(20C20C"),
-                &BuiltInFunction::function_cross_20C20C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00a20B"),
-                &BuiltInFunction::function_textureGather_00a20B,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGradOffset(00O20B10B10B10D"),
-                &BuiltInFunction::function_textureProjGradOffset_00O20B10B10B10D,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("pow(30B30B"),
-                &BuiltInFunction::function_pow_30B30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01G20D00E00E"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01G20D00E00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("smoothstep(10B10B10B"),
-                &BuiltInFunction::function_smoothstep_10B10B10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00O30B"),
-                &BuiltInFunction::function_textureProj_00O30B,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                &BuiltInFunction::function_textureProj_00O30B,
-                nullptr,
-                300,
-                Shader::ALL,
-                &ShBuiltInResources::ARB_texture_rectangle,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01Q10D00D00E"),
-                &BuiltInFunction::function_imageAtomicAdd_01Q10D00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLod(00R10B"),
-                &BuiltInFunction::function_textureQueryLod_00R10B,
-                nullptr,
-                -1,
-                400,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01T20D00D00D00D"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01T20D00D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01R10D00D00D"),
-                &BuiltInFunction::function_imageAtomicAdd_01R10D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01R10D00D00E"),
-                &BuiltInFunction::function_imageAtomicAdd_01R10D00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01E20D00D"),
-                &BuiltInFunction::function_imageAtomicExchange_01E20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01E20D00E"),
-                &BuiltInFunction::function_imageAtomicExchange_01E20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("isnan(00B"),
-                &BuiltInFunction::function_isnan_00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("isnan(00C"),
-                &BuiltInFunction::function_isnan_00C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imulExtended(10D10D10D10D"),
-                &BuiltInFunction::function_imulExtended_10D10D10D10D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGrad(00o10B00B00B"),
-                &BuiltInFunction::function_textureProjGrad_00o10B00B00B,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("refract(10C10C00B"),
-                &BuiltInFunction::function_refract_10C10C00B,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("min(00E00E"),
-                &BuiltInFunction::function_min_00E00E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture2DProj(00I30B"),
-                &BuiltInFunction::function_texture2DProj_00I30B,
-                nullptr,
-                100,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGradOffset(00I10B10B10B10D"),
-                &BuiltInFunction::function_textureGradOffset_00I10B10B10B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLodOffset(00J20B00B20D"),
-                &BuiltInFunction::function_textureLodOffset_00J20B00B20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("notEqual(20B20B"),
-                &BuiltInFunction::function_notEqual_20B20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atomicCompSwap(00D00D00D"),
-                &BuiltInFunction::function_atomicCompSwap_00D00D00D,
-                nullptr,
-                310,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01W10D00E"),
-                &BuiltInFunction::function_imageAtomicOr_01W10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01W10D00D"),
-                &BuiltInFunction::function_imageAtomicOr_01W10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00i20B00D"),
-                &BuiltInFunction::function_textureOffset_00i20B00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("dFdyFine(00B"),
-                &BuiltInFunction::function_dFdyFine_00B,
-                nullptr,
-                -1,
-                450,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLod(00a20B00B"),
-                &BuiltInFunction::function_textureLod_00a20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00N30B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_textureProj_00N30B,
-                nullptr,
-                300,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_YUV_target,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("refract(30C30C00B"),
-                &BuiltInFunction::function_refract_30C30C00B,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("equal(30D30D"),
-                &BuiltInFunction::function_equal_30D30D,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("packSnorm2x16(10B"),
-                &BuiltInFunction::function_packSnorm2x16_10B,
-                nullptr,
-                300,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("floatBitsToUint(30B"),
-                &BuiltInFunction::function_floatBitsToUint_30B,
-                nullptr,
-                300,
-                330,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageLoad(00y10D"),
-                &BuiltInFunction::function_imageLoad_00y10D,
-                nullptr,
-                310,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00R10B10D"),
-                &BuiltInFunction::function_textureOffset_00R10B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGrad(00q20B10B10B"),
-                &BuiltInFunction::function_textureProjGrad_00q20B10B10B,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGradOffset(00R20B10B10B10D"),
-                &BuiltInFunction::function_textureProjGradOffset_00R20B10B10B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("ldexp(30B30D"),
-                &BuiltInFunction::function_ldexp_30B30D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("max(30B00B"),
-                &BuiltInFunction::function_max_30B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01Q10D00D00D"),
-                &BuiltInFunction::function_imageAtomicAdd_01Q10D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atomicCounterOr(00G00E"),
-                &BuiltInFunction::function_atomicCounterOr_00G00E,
-                nullptr,
-                -1,
-                460,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("step(30B30B"),
-                &BuiltInFunction::function_step_30B30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01T20D00D00D"),
-                &BuiltInFunction::function_imageAtomicOr_01T20D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01T20D00D00E"),
-                &BuiltInFunction::function_imageAtomicOr_01T20D00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00I30B00B"),
-                &BuiltInFunction::function_textureProj_00I30B00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01D20D00E"),
-                &BuiltInFunction::function_imageAtomicExchange_01D20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00g00B00D00B"),
-                &BuiltInFunction::function_textureOffset_00g00B00D00B,
-                nullptr,
-                -1,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01D20D00B"),
-                &BuiltInFunction::function_imageAtomicExchange_01D20D00B,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01g00D00E"),
-                &BuiltInFunction::function_imageAtomicMin_01g00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("abs(00D"),
-                &BuiltInFunction::function_abs_00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("abs(00C"),
-                &BuiltInFunction::function_abs_00C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("abs(00B"),
-                &BuiltInFunction::function_abs_00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLod(00R10B00B"),
-                &BuiltInFunction::function_textureLod_00R10B00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("dFdxCoarse(10B"),
-                &BuiltInFunction::function_dFdxCoarse_10B,
-                nullptr,
-                -1,
-                450,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture1D(00g00B"),
-                &BuiltInFunction::function_texture1D_00g00B,
-                nullptr,
-                -1,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("frexp(10C10D"),
-                &BuiltInFunction::function_frexp_10C10D,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01B20D00D"),
-                &BuiltInFunction::function_imageAtomicMax_01B20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01g00D00E"),
-                &BuiltInFunction::function_imageAtomicAdd_01g00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture2DLod(00I10B00B"),
-                &BuiltInFunction::function_texture2DLod_00I10B00B,
-                nullptr,
-                100,
-                0,
-                Shader::VERTEX,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGradOffset(00X20B10B10B10D"),
-                &BuiltInFunction::function_textureProjGradOffset_00X20B10B10B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("round(20C"),
-                &BuiltInFunction::function_round_20C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("EndPrimitive("),
-                &BuiltInFunction::function_EndPrimitive_,
-                nullptr,
-                -1,
-                150,
-                Shader::GEOMETRY,
-                &BuiltInFunction::function_EndPrimitive_,
-                nullptr,
-                310,
-                Shader::GEOMETRY_EXT,
-                &ShBuiltInResources::EXT_geometry_shader,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("step(00B30B"),
-                &BuiltInFunction::function_step_00B30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("round(20B"),
-                &BuiltInFunction::function_round_20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("equal(30E30E"),
-                &BuiltInFunction::function_equal_30E30E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01R10D00D00E00E"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01R10D00D00E00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("step(00C20C"),
-                &BuiltInFunction::function_step_00C20C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("dot(00C00C"),
-                &BuiltInFunction::function_dot_00C00C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("max(30C30C"),
-                &BuiltInFunction::function_max_30C30C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atomicOr(00D00D"),
-                &BuiltInFunction::function_atomicOr_00D00D,
-                nullptr,
-                310,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture2DProj(00M20B"),
-                &BuiltInFunction::function_texture2DProj_00M20B,
-                nullptr,
-                100,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("notEqual(10D10D"),
-                &BuiltInFunction::function_notEqual_10D10D,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00V"),
-                &BuiltInFunction::function_textureSize_00V,
-                nullptr,
-                310,
-                150,
-                Shader::ALL,
-                &BuiltInFunction::function_textureSizeExt_00V,
-                nullptr,
-                300,
-                Shader::ALL,
-                &ShBuiltInResources::ANGLE_texture_multisample,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01h00D00D"),
-                &BuiltInFunction::function_imageAtomicAnd_01h00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("min(20C00C"),
-                &BuiltInFunction::function_min_20C00C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01G20D00E"),
-                &BuiltInFunction::function_imageAtomicAdd_01G20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01G20D00D"),
-                &BuiltInFunction::function_imageAtomicAdd_01G20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("findLSB(30D"),
-                &BuiltInFunction::function_findLSB_30D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("findLSB(30E"),
-                &BuiltInFunction::function_findLSB_30E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00X20B00B"),
-                &BuiltInFunction::function_textureProj_00X20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("shadow2D(00d20B"),
-                &BuiltInFunction::function_shadow2D_00d20B,
-                nullptr,
-                -1,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01N10D00E"),
-                &BuiltInFunction::function_imageAtomicAdd_01N10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01N10D00D"),
-                &BuiltInFunction::function_imageAtomicAdd_01N10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffset(00U20B10D"),
-                &BuiltInFunction::function_textureGatherOffset_00U20B10D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("faceforward(10B10B10B"),
-                &BuiltInFunction::function_faceforward_10B10B10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01h00D00E"),
-                &BuiltInFunction::function_imageAtomicAnd_01h00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("min(10D00D"),
-                &BuiltInFunction::function_min_10D00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01B20D00E"),
-                &BuiltInFunction::function_imageAtomicOr_01B20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01B20D00D"),
-                &BuiltInFunction::function_imageAtomicOr_01B20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("EmitStreamVertex(00D"),
-                &BuiltInFunction::function_EmitStreamVertex_00D,
-                nullptr,
-                -1,
-                400,
-                Shader::GEOMETRY,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01J20D00D00D"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01J20D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("all(20F"),
-                &BuiltInFunction::function_all_20F,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSize(01J"),
-                &BuiltInFunction::function_imageSize_01J,
-                nullptr,
-                310,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSize(01K"),
-                &BuiltInFunction::function_imageSize_01K,
-                nullptr,
-                -1,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSize(01H"),
-                &BuiltInFunction::function_imageSize_01H,
-                nullptr,
-                310,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSize(01I"),
-                &BuiltInFunction::function_imageSize_01I,
-                nullptr,
-                310,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("packHalf2x16(10B"),
-                &BuiltInFunction::function_packHalf2x16_10B,
-                nullptr,
-                300,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00I20B00B"),
-                &BuiltInFunction::function_textureProj_00I20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSize(01L"),
-                &BuiltInFunction::function_imageSize_01L,
-                nullptr,
-                -1,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSize(01M"),
-                &BuiltInFunction::function_imageSize_01M,
-                nullptr,
-                -1,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSize(01B"),
-                &BuiltInFunction::function_imageSize_01B,
-                nullptr,
-                310,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSize(01C"),
-                &BuiltInFunction::function_imageSize_01C,
-                nullptr,
-                310,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetch(00r00D"),
-                &BuiltInFunction::function_texelFetch_00r00D,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSize(01F"),
-                &BuiltInFunction::function_imageSize_01F,
-                nullptr,
-                310,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSize(01G"),
-                &BuiltInFunction::function_imageSize_01G,
-                nullptr,
-                310,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSize(01D"),
-                &BuiltInFunction::function_imageSize_01D,
-                nullptr,
-                310,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSize(01E"),
-                &BuiltInFunction::function_imageSize_01E,
-                nullptr,
-                310,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSize(01Z"),
-                &BuiltInFunction::function_imageSize_01Z,
-                nullptr,
-                -1,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01L00D00B"),
-                &BuiltInFunction::function_imageAtomicExchange_01L00D00B,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01Z20D00E"),
-                &BuiltInFunction::function_imageAtomicMax_01Z20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetch(00X10D00D"),
-                &BuiltInFunction::function_texelFetch_00X10D00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("notEqual(30F30F"),
-                &BuiltInFunction::function_notEqual_30F30F,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSize(01R"),
-                &BuiltInFunction::function_imageSize_01R,
-                nullptr,
-                -1,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSize(01S"),
-                &BuiltInFunction::function_imageSize_01S,
-                nullptr,
-                -1,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSize(01P"),
-                &BuiltInFunction::function_imageSize_01P,
-                nullptr,
-                -1,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSize(01Q"),
-                &BuiltInFunction::function_imageSize_01Q,
-                nullptr,
-                -1,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSize(01V"),
-                &BuiltInFunction::function_imageSize_01V,
-                nullptr,
-                -1,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLod(00g00B"),
-                &BuiltInFunction::function_textureQueryLod_00g00B,
-                nullptr,
-                -1,
-                400,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSize(01T"),
-                &BuiltInFunction::function_imageSize_01T,
-                nullptr,
-                -1,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSize(01U"),
-                &BuiltInFunction::function_imageSize_01U,
-                nullptr,
-                -1,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSize(01h"),
-                &BuiltInFunction::function_imageSize_01h,
-                nullptr,
-                -1,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("fract(20C"),
-                &BuiltInFunction::function_fract_20C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("fract(20B"),
-                &BuiltInFunction::function_fract_20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffset(00X10B10D"),
-                &BuiltInFunction::function_textureGatherOffset_00X10B10D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSize(01c"),
-                &BuiltInFunction::function_imageSize_01c,
-                nullptr,
-                -1,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSize(01a"),
-                &BuiltInFunction::function_imageSize_01a,
-                nullptr,
-                -1,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSize(01f"),
-                &BuiltInFunction::function_imageSize_01f,
-                nullptr,
-                -1,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture2DProjGradEXT(00I20B10B10B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_texture2DProjGradEXT_00I20B10B10B,
-                nullptr,
-                100,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_shader_texture_lod,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSize(01d"),
-                &BuiltInFunction::function_imageSize_01d,
-                nullptr,
-                -1,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLod(00S20B00B"),
-                &BuiltInFunction::function_textureLod_00S20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("step(30C30C"),
-                &BuiltInFunction::function_step_30C30C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01J20D00D"),
-                &BuiltInFunction::function_imageAtomicMin_01J20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_FragDepth"),
-                &BuiltInVariable::kVar_gl_FragDepth,
-                nullptr,
-                300,
-                0,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00x30B"),
-                &BuiltInFunction::function_textureGather_00x30B,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mix(30B30B30F"),
-                &BuiltInFunction::function_mix_30B30B30F,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mix(30B30B30B"),
-                &BuiltInFunction::function_mix_30B30B30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00Z20B00D"),
-                &BuiltInFunction::function_textureGather_00Z20B00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("noise4(30B"),
-                &BuiltInFunction::function_noise4_30B,
-                nullptr,
-                -1,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("sqrt(30C"),
-                &BuiltInFunction::function_sqrt_30C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("sqrt(30B"),
-                &BuiltInFunction::function_sqrt_30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageStore(01E20D30B"),
-                &BuiltInFunction::function_imageStore_01E20D30B,
-                nullptr,
-                310,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("exp(00B"),
-                &BuiltInFunction::function_exp_00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("max(30D30D"),
-                &BuiltInFunction::function_max_30D30D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxGeometryTextureImageUnits"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxGeometryTextureImageUnits,
-                310,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_geometry_shader,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("interpolateAtCentroid(10B"),
-                &BuiltInFunction::function_interpolateAtCentroid_10B,
-                nullptr,
-                -1,
-                400,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00q10B"),
-                &BuiltInFunction::function_texture_00q10B,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00M00D"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_textureSize_00M00D,
-                nullptr,
-                300,
-                Shader::ALL,
-                &ShBuiltInResources::OES_EGL_image_external_essl3,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSamples(00c"),
-                &BuiltInFunction::function_textureSamples_00c,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("angle_BaseInstance"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInVariable::kVar_angle_BaseInstance,
-                nullptr,
-                0,
-                Shader::VERTEX,
-                &ShBuiltInResources::ANGLE_base_vertex_base_instance,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mix(10F10F10F"),
-                &BuiltInFunction::function_mix_10F10F10F,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGradOffset(00U20B10B10B10D"),
-                &BuiltInFunction::function_textureGradOffset_00U20B10B10B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_Position"),
-                &BuiltInVariable::kVar_gl_Position,
-                nullptr,
-                0,
-                0,
-                Shader::VERTEX,
-                nullptr,
-                &TSymbolTableBase::mVar_gl_PositionGS,
-                310,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_geometry_shader,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGradOffset(00O10B10B10B10D"),
-                &BuiltInFunction::function_textureGradOffset_00O10B10B10B10D,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00M30B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_textureProj_00M30B,
-                nullptr,
-                300,
-                Shader::ALL,
-                &ShBuiltInResources::OES_EGL_image_external_essl3,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGradOffset(00L20B10B10B10D"),
-                &BuiltInFunction::function_textureGradOffset_00L20B10B10B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01V20D00D00D"),
-                &BuiltInFunction::function_imageAtomicExchange_01V20D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01J20D00B"),
-                &BuiltInFunction::function_imageAtomicExchange_01J20D00B,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01J20D00E"),
-                &BuiltInFunction::function_imageAtomicExchange_01J20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01J20D00D"),
-                &BuiltInFunction::function_imageAtomicExchange_01J20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLod(00l20B"),
-                &BuiltInFunction::function_textureQueryLod_00l20B,
-                nullptr,
-                -1,
-                400,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01M00D00E"),
-                &BuiltInFunction::function_imageAtomicOr_01M00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("dot(20B20B"),
-                &BuiltInFunction::function_dot_20B20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGrad(00v20B10B10B"),
-                &BuiltInFunction::function_textureProjGrad_00v20B10B10B,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLod(00S30B00B"),
-                &BuiltInFunction::function_textureProjLod_00S30B00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGrad(00R20B10B10B"),
-                &BuiltInFunction::function_textureProjGrad_00R20B10B10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(00z10D00E"),
-                &BuiltInFunction::function_imageAtomicMax_00z10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(00z10D00D"),
-                &BuiltInFunction::function_imageAtomicMax_00z10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("normalize(30C"),
-                &BuiltInFunction::function_normalize_30C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("normalize(30B"),
-                &BuiltInFunction::function_normalize_30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00O10B10D"),
-                &BuiltInFunction::function_textureOffset_00O10B10D,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGrad(00I20B10B10B"),
-                &BuiltInFunction::function_textureProjGrad_00I20B10B10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00e20B"),
-                &BuiltInFunction::function_textureGather_00e20B,
-                nullptr,
-                310,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01V20D00D00E"),
-                &BuiltInFunction::function_imageAtomicMax_01V20D00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture2D(00M10B"),
-                &BuiltInFunction::function_texture2D_00M10B,
-                nullptr,
-                100,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01a20D00E"),
-                &BuiltInFunction::function_imageAtomicAdd_01a20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("fwidthFine(30B"),
-                &BuiltInFunction::function_fwidthFine_30B,
-                nullptr,
-                -1,
-                450,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00K20B00D"),
-                &BuiltInFunction::function_textureGather_00K20B00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureCubeLodEXT(00K20B00B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_textureCubeLodEXT_00K20B00B,
-                nullptr,
-                100,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::EXT_shader_texture_lod,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00T20B00D"),
-                &BuiltInFunction::function_textureGather_00T20B00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00N20B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_textureProj_00N20B,
-                nullptr,
-                300,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_YUV_target,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLod(00I10B"),
-                &BuiltInFunction::function_textureQueryLod_00I10B,
-                nullptr,
-                -1,
-                400,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01A10D00E00E"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01A10D00E00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("dFdyFine(10B"),
-                &BuiltInFunction::function_dFdyFine_10B,
-                nullptr,
-                -1,
-                450,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("modf(10C10C"),
-                &BuiltInFunction::function_modf_10C10C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01E20D00D"),
-                &BuiltInFunction::function_imageAtomicMax_01E20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01E20D00E"),
-                &BuiltInFunction::function_imageAtomicMax_01E20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLodOffset(00X30B00B10D"),
-                &BuiltInFunction::function_textureProjLodOffset_00X30B00B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLod(00m30B00B"),
-                &BuiltInFunction::function_textureProjLod_00m30B00B,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00g30B00D00B"),
-                &BuiltInFunction::function_textureProjOffset_00g30B00D00B,
-                nullptr,
-                -1,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetchOffset(00U20D00D10D"),
-                &BuiltInFunction::function_texelFetchOffset_00U20D00D10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(00z10D00E00E"),
-                &BuiltInFunction::function_imageAtomicCompSwap_00z10D00E00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01D20D00E"),
-                &BuiltInFunction::function_imageAtomicMin_01D20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGradOffset(00q30B10B10B10D"),
-                &BuiltInFunction::function_textureProjGradOffset_00q30B10B10B10D,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGradOffset(00d20B10B10B10D"),
-                &BuiltInFunction::function_textureGradOffset_00d20B10B10B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("fwidthCoarse(20B"),
-                &BuiltInFunction::function_fwidthCoarse_20B,
-                nullptr,
-                -1,
-                450,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00d30B10D"),
-                &BuiltInFunction::function_textureProjOffset_00d30B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("equal(20F20F"),
-                &BuiltInFunction::function_equal_20F20F,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString(""),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mix(20C20C00C"),
-                &BuiltInFunction::function_mix_20C20C00C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("usubBorrow(10E10E10E"),
-                &BuiltInFunction::function_usubBorrow_10E10E10E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageStore(01S10D00D30E"),
-                &BuiltInFunction::function_imageStore_01S10D00D30E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("equal(10B10B"),
-                &BuiltInFunction::function_equal_10B10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01Q10D00D00D"),
-                &BuiltInFunction::function_imageAtomicExchange_01Q10D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01Q10D00D00E"),
-                &BuiltInFunction::function_imageAtomicExchange_01Q10D00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01Q10D00D00B"),
-                &BuiltInFunction::function_imageAtomicExchange_01Q10D00D00B,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLodOffset(00U20B00B10D"),
-                &BuiltInFunction::function_textureLodOffset_00U20B00B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("isnan(10C"),
-                &BuiltInFunction::function_isnan_10C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("isnan(10B"),
-                &BuiltInFunction::function_isnan_10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01H20D00D"),
-                &BuiltInFunction::function_imageAtomicMin_01H20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01A10D00D"),
-                &BuiltInFunction::function_imageAtomicXor_01A10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01A10D00E"),
-                &BuiltInFunction::function_imageAtomicXor_01A10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01C20D00D00D"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01C20D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGrad(00R00B00B00B"),
-                &BuiltInFunction::function_textureGrad_00R00B00B00B,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01W10D00D"),
-                &BuiltInFunction::function_imageAtomicXor_01W10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01W10D00E"),
-                &BuiltInFunction::function_imageAtomicXor_01W10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atomicMin(00D00D"),
-                &BuiltInFunction::function_atomicMin_00D00D,
-                nullptr,
-                310,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00X00D"),
-                &BuiltInFunction::function_textureSize_00X00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("greaterThan(10B10B"),
-                &BuiltInFunction::function_greaterThan_10B10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mix(00C00C00C"),
-                &BuiltInFunction::function_mix_00C00C00C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("clamp(30D00D00D"),
-                &BuiltInFunction::function_clamp_30D00D00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mix(20E20E20F"),
-                &BuiltInFunction::function_mix_20E20E20F,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("floatBitsToInt(10B"),
-                &BuiltInFunction::function_floatBitsToInt_10B,
-                nullptr,
-                300,
-                330,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00R30B10D00B"),
-                &BuiltInFunction::function_textureProjOffset_00R30B10D00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00U20B00D"),
-                &BuiltInFunction::function_textureGather_00U20B00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("floatBitsToInt(00B"),
-                &BuiltInFunction::function_floatBitsToInt_00B,
-                nullptr,
-                300,
-                330,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageLoad(01a20D"),
-                &BuiltInFunction::function_imageLoad_01a20D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("floatBitsToUint(00B"),
-                &BuiltInFunction::function_floatBitsToUint_00B,
-                nullptr,
-                300,
-                330,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("min(30C30C"),
-                &BuiltInFunction::function_min_30C30C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSamples(00Q"),
-                &BuiltInFunction::function_textureSamples_00Q,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGradOffset(00i20B00B00B00D"),
-                &BuiltInFunction::function_textureGradOffset_00i20B00B00B00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(00z10D00D"),
-                &BuiltInFunction::function_imageAtomicXor_00z10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture2DRectProj(00O20B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_texture2DRectProj_00O20B,
-                nullptr,
-                100,
-                Shader::ALL,
-                &ShBuiltInResources::ARB_texture_rectangle,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("modf(20C20C"),
-                &BuiltInFunction::function_modf_20C20C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("tan(20B"),
-                &BuiltInFunction::function_tan_20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("floor(00C"),
-                &BuiltInFunction::function_floor_00C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("floor(00B"),
-                &BuiltInFunction::function_floor_00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01O10D00E"),
-                &BuiltInFunction::function_imageAtomicMax_01O10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01O10D00D"),
-                &BuiltInFunction::function_imageAtomicMax_01O10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mod(30C30C"),
-                &BuiltInFunction::function_mod_30C30C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_DrawID"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInVariable::kVar_gl_DrawID,
-                nullptr,
-                0,
-                Shader::VERTEX,
-                &ShBuiltInResources::ANGLE_multi_draw,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00t00B00D"),
-                &BuiltInFunction::function_textureOffset_00t00B00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture3DLod(00J20B00B"),
-                &BuiltInFunction::function_texture3DLod_00J20B00B,
-                nullptr,
-                -1,
-                0,
-                Shader::FRAGMENT,
-                &BuiltInFunction::function_texture3DLod_00J20B00B,
-                nullptr,
-                100,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::OES_texture_3D,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00R10B00B"),
-                &BuiltInFunction::function_texture_00R10B00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("modf(00B00B"),
-                &BuiltInFunction::function_modf_00B00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("notEqual(20D20D"),
-                &BuiltInFunction::function_notEqual_20D20D,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01R10D00D00E"),
-                &BuiltInFunction::function_imageAtomicExchange_01R10D00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01R10D00D00D"),
-                &BuiltInFunction::function_imageAtomicExchange_01R10D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("ldexp(10C10D"),
-                &BuiltInFunction::function_ldexp_10C10D,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(00y10D00E"),
-                &BuiltInFunction::function_imageAtomicXor_00y10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(00y10D00D"),
-                &BuiltInFunction::function_imageAtomicXor_00y10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("determinant(A0B"),
-                &BuiltInFunction::function_determinant_A0B,
-                nullptr,
-                300,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLodOffset(00i20B00B00D"),
-                &BuiltInFunction::function_textureLodOffset_00i20B00B00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageStore(01D20D30E"),
-                &BuiltInFunction::function_imageStore_01D20D30E,
-                nullptr,
-                310,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("shadow1DLod(00m20B00B"),
-                &BuiltInFunction::function_shadow1DLod_00m20B00B,
-                nullptr,
-                -1,
-                0,
-                Shader::VERTEX,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01I20D00E"),
-                &BuiltInFunction::function_imageAtomicOr_01I20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("distance(00C00C"),
-                &BuiltInFunction::function_distance_00C00C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("isnan(30B"),
-                &BuiltInFunction::function_isnan_30B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00o30B00D"),
-                &BuiltInFunction::function_textureProjOffset_00o30B00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("lessThanEqual(30D30D"),
-                &BuiltInFunction::function_lessThanEqual_30D30D,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00M30B00B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_textureProj_00M30B00B,
-                nullptr,
-                300,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::OES_EGL_image_external_essl3,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture2DProj(00M30B"),
-                &BuiltInFunction::function_texture2DProj_00M30B,
-                nullptr,
-                100,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atomicCounterMax(00G00E"),
-                &BuiltInFunction::function_atomicCounterMax_00G00E,
-                nullptr,
-                -1,
-                460,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atomicCounterExchange(00G00E"),
-                &BuiltInFunction::function_atomicCounterExchange_00G00E,
-                nullptr,
-                -1,
-                460,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGrad(00I10B10B10B"),
-                &BuiltInFunction::function_textureGrad_00I10B10B10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("step(00B20B"),
-                &BuiltInFunction::function_step_00B20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture2DProjLod(00I20B00B"),
-                &BuiltInFunction::function_texture2DProjLod_00I20B00B,
-                nullptr,
-                100,
-                0,
-                Shader::VERTEX,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("step(00C30C"),
-                &BuiltInFunction::function_step_00C30C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("yuv_2_rgb(20B00H"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_yuv_2_rgb_20B00H,
-                nullptr,
-                300,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_YUV_target,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetch(00b10D00D"),
-                &BuiltInFunction::function_texelFetch_00b10D00D,
-                nullptr,
-                310,
-                150,
-                Shader::ALL,
-                &BuiltInFunction::function_texelFetchExt_00b10D00D,
-                nullptr,
-                300,
-                Shader::ALL,
-                &ShBuiltInResources::ANGLE_texture_multisample,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00J30B00B"),
-                &BuiltInFunction::function_textureProj_00J30B00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00R10B"),
-                &BuiltInFunction::function_textureGather_00R10B,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01K00D00E00E"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01K00D00E00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01V20D00D00D"),
-                &BuiltInFunction::function_imageAtomicOr_01V20D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01V20D00D00E"),
-                &BuiltInFunction::function_imageAtomicOr_01V20D00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01P10D00D"),
-                &BuiltInFunction::function_imageAtomicExchange_01P10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageLoad(01L00D"),
-                &BuiltInFunction::function_imageLoad_01L00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("min(10D10D"),
-                &BuiltInFunction::function_min_10D10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("all(30F"),
-                &BuiltInFunction::function_all_30F,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01P10D00E"),
-                &BuiltInFunction::function_imageAtomicExchange_01P10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01a20D00D"),
-                &BuiltInFunction::function_imageAtomicMax_01a20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01S10D00D00E"),
-                &BuiltInFunction::function_imageAtomicAnd_01S10D00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01S10D00D00D"),
-                &BuiltInFunction::function_imageAtomicAnd_01S10D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("angle_BaseVertex"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInVariable::kVar_angle_BaseVertex,
-                nullptr,
-                0,
-                Shader::VERTEX,
-                &ShBuiltInResources::ANGLE_base_vertex_base_instance,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitfieldReverse(20D"),
-                &BuiltInFunction::function_bitfieldReverse_20D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitfieldReverse(20E"),
-                &BuiltInFunction::function_bitfieldReverse_20E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01I20D00D"),
-                &BuiltInFunction::function_imageAtomicExchange_01I20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01I20D00E"),
-                &BuiltInFunction::function_imageAtomicExchange_01I20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01I20D00B"),
-                &BuiltInFunction::function_imageAtomicExchange_01I20D00B,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxGeometryInputComponents"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxGeometryInputComponents,
-                310,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_geometry_shader,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00u20B"),
-                &BuiltInFunction::function_texture_00u20B,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00v20B"),
-                &BuiltInFunction::function_textureGather_00v20B,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("fract(10B"),
-                &BuiltInFunction::function_fract_10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("fract(10C"),
-                &BuiltInFunction::function_fract_10C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffset(00O10B10D00D"),
-                &BuiltInFunction::function_textureGatherOffset_00O10B10D00D,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLod(00K20B"),
-                &BuiltInFunction::function_textureQueryLod_00K20B,
-                nullptr,
-                -1,
-                400,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLodOffset(00I10B00B10D"),
-                &BuiltInFunction::function_textureLodOffset_00I10B00B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01S10D00D00E00E"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01S10D00D00E00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("noise4(20B"),
-                &BuiltInFunction::function_noise4_20B,
-                nullptr,
-                -1,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00U20B10D"),
-                &BuiltInFunction::function_textureOffset_00U20B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("min(30B00B"),
-                &BuiltInFunction::function_min_30B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(00y10D00D"),
-                &BuiltInFunction::function_imageAtomicMax_00y10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(00y10D00E"),
-                &BuiltInFunction::function_imageAtomicMax_00y10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atomicAnd(00D00D"),
-                &BuiltInFunction::function_atomicAnd_00D00D,
-                nullptr,
-                310,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_FragColor"),
-                &BuiltInVariable::kVar_gl_FragColor,
-                nullptr,
-                100,
-                0,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("exp(10B"),
-                &BuiltInFunction::function_exp_10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00n20B10D"),
-                &BuiltInFunction::function_textureOffset_00n20B10D,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitCount(30D"),
-                &BuiltInFunction::function_bitCount_30D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("unpackUnorm2x16(00E"),
-                &BuiltInFunction::function_unpackUnorm2x16_00E,
-                nullptr,
-                300,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("sqrt(20B"),
-                &BuiltInFunction::function_sqrt_20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("sqrt(20C"),
-                &BuiltInFunction::function_sqrt_20C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGrad(00L20B10B10B"),
-                &BuiltInFunction::function_textureGrad_00L20B10B10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("interpolateAtCentroid(00B"),
-                &BuiltInFunction::function_interpolateAtCentroid_00B,
-                nullptr,
-                -1,
-                400,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00o00D"),
-                &BuiltInFunction::function_textureSize_00o00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxImageUnits"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxImageUnits,
-                310,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGrad(00o30B00B00B"),
-                &BuiltInFunction::function_textureProjGrad_00o30B00B00B,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("packUnorm4x8(30B"),
-                &BuiltInFunction::function_packUnorm4x8_30B,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetch(00P10D00D"),
-                &BuiltInFunction::function_texelFetch_00P10D00D,
-                nullptr,
-                310,
-                150,
-                Shader::ALL,
-                &BuiltInFunction::function_texelFetchExt_00P10D00D,
-                nullptr,
-                300,
-                Shader::ALL,
-                &ShBuiltInResources::ANGLE_texture_multisample,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00O10B"),
-                &BuiltInFunction::function_texture_00O10B,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                &BuiltInFunction::function_texture_00O10B,
-                nullptr,
-                300,
-                Shader::ALL,
-                &ShBuiltInResources::ARB_texture_rectangle,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01M00D00D"),
-                &BuiltInFunction::function_imageAtomicMin_01M00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01M00D00E"),
-                &BuiltInFunction::function_imageAtomicMin_01M00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00e30B00B"),
-                &BuiltInFunction::function_texture_00e30B00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01O10D00E"),
-                &BuiltInFunction::function_imageAtomicMin_01O10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01O10D00D"),
-                &BuiltInFunction::function_imageAtomicMin_01O10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01B20D00E"),
-                &BuiltInFunction::function_imageAtomicExchange_01B20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01B20D00D"),
-                &BuiltInFunction::function_imageAtomicExchange_01B20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_FragCoord"),
-                &BuiltInVariable::kVar_gl_FragCoord,
-                nullptr,
-                0,
-                0,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01X10D00D"),
-                &BuiltInFunction::function_imageAtomicMax_01X10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGrad(00u10B00B00B"),
-                &BuiltInFunction::function_textureGrad_00u10B00B00B,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("fwidthFine(20B"),
-                &BuiltInFunction::function_fwidthFine_20B,
-                nullptr,
-                -1,
-                450,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLod(00o00B"),
-                &BuiltInFunction::function_textureQueryLod_00o00B,
-                nullptr,
-                -1,
-                400,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01E20D00E"),
-                &BuiltInFunction::function_imageAtomicAnd_01E20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01E20D00D"),
-                &BuiltInFunction::function_imageAtomicAnd_01E20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("normalize(00B"),
-                &BuiltInFunction::function_normalize_00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("normalize(00C"),
-                &BuiltInFunction::function_normalize_00C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("clamp(10C00C00C"),
-                &BuiltInFunction::function_clamp_10C00C00C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01f00D00E00E"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01f00D00E00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01A10D00E"),
-                &BuiltInFunction::function_imageAtomicOr_01A10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01A10D00D"),
-                &BuiltInFunction::function_imageAtomicOr_01A10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01K00D00D"),
-                &BuiltInFunction::function_imageAtomicOr_01K00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01K00D00E"),
-                &BuiltInFunction::function_imageAtomicOr_01K00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atomicMax(00D00D"),
-                &BuiltInFunction::function_atomicMax_00D00D,
-                nullptr,
-                310,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGrad(00m30B00B00B"),
-                &BuiltInFunction::function_textureProjGrad_00m30B00B00B,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01R10D00D00E"),
-                &BuiltInFunction::function_imageAtomicAnd_01R10D00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("floatBitsToUint(10B"),
-                &BuiltInFunction::function_floatBitsToUint_10B,
-                nullptr,
-                300,
-                330,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLod(00J20B00B"),
-                &BuiltInFunction::function_textureLod_00J20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01D20D00D"),
-                &BuiltInFunction::function_imageAtomicExchange_01D20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGrad(00O10B10B10B"),
-                &BuiltInFunction::function_textureGrad_00O10B10B10B,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("dFdyFine(20B"),
-                &BuiltInFunction::function_dFdyFine_20B,
-                nullptr,
-                -1,
-                450,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00I00D"),
-                &BuiltInFunction::function_textureSize_00I00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxComputeWorkGroupSize"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxComputeWorkGroupSize,
-                310,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetchOffset(00R10D00D10D"),
-                &BuiltInFunction::function_texelFetchOffset_00R10D00D10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("dFdxFine(10B"),
-                &BuiltInFunction::function_dFdxFine_10B,
-                nullptr,
-                -1,
-                450,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01K00D00E"),
-                &BuiltInFunction::function_imageAtomicAnd_01K00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01K00D00D"),
-                &BuiltInFunction::function_imageAtomicAnd_01K00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLodOffset(00X10B00B10D"),
-                &BuiltInFunction::function_textureLodOffset_00X10B00B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00T20B00B"),
-                &BuiltInFunction::function_texture_00T20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00q20B"),
-                &BuiltInFunction::function_textureProj_00q20B,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01K00D00D"),
-                &BuiltInFunction::function_imageAtomicExchange_01K00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(00y10D00D00D"),
-                &BuiltInFunction::function_imageAtomicCompSwap_00y10D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("log(30B"),
-                &BuiltInFunction::function_log_30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("notEqual(20F20F"),
-                &BuiltInFunction::function_notEqual_20F20F,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("allInvocationsEqual(00F"),
-                &BuiltInFunction::function_allInvocationsEqual_00F,
-                nullptr,
-                -1,
-                460,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageStore(01G20D30E"),
-                &BuiltInFunction::function_imageStore_01G20D30E,
-                nullptr,
-                310,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("dFdyCoarse(30B"),
-                &BuiltInFunction::function_dFdyCoarse_30B,
-                nullptr,
-                -1,
-                450,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLod(00R20B00B"),
-                &BuiltInFunction::function_textureProjLod_00R20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("notEqual(30D30D"),
-                &BuiltInFunction::function_notEqual_30D30D,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("fwidthCoarse(30B"),
-                &BuiltInFunction::function_fwidthCoarse_30B,
-                nullptr,
-                -1,
-                450,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00I20B10D"),
-                &BuiltInFunction::function_textureProjOffset_00I20B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageStore(01X10D30D"),
-                &BuiltInFunction::function_imageStore_01X10D30D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLevels(00l"),
-                &BuiltInFunction::function_textureQueryLevels_00l,
-                nullptr,
-                -1,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLevels(00m"),
-                &BuiltInFunction::function_textureQueryLevels_00m,
-                nullptr,
-                -1,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLevels(00o"),
-                &BuiltInFunction::function_textureQueryLevels_00o,
-                nullptr,
-                -1,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLevels(00h"),
-                &BuiltInFunction::function_textureQueryLevels_00h,
-                nullptr,
-                -1,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLevels(00i"),
-                &BuiltInFunction::function_textureQueryLevels_00i,
-                nullptr,
-                -1,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLevels(00k"),
-                &BuiltInFunction::function_textureQueryLevels_00k,
-                nullptr,
-                -1,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLevels(00d"),
-                &BuiltInFunction::function_textureQueryLevels_00d,
-                nullptr,
-                -1,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLevels(00e"),
-                &BuiltInFunction::function_textureQueryLevels_00e,
-                nullptr,
-                -1,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLevels(00f"),
-                &BuiltInFunction::function_textureQueryLevels_00f,
-                nullptr,
-                -1,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLevels(00g"),
-                &BuiltInFunction::function_textureQueryLevels_00g,
-                nullptr,
-                -1,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxDrawBuffers"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxDrawBuffers,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLevels(00a"),
-                &BuiltInFunction::function_textureQueryLevels_00a,
-                nullptr,
-                -1,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atomicCounterMin(00G00E"),
-                &BuiltInFunction::function_atomicCounterMin_00G00E,
-                nullptr,
-                -1,
-                460,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGradOffset(00u10B00B00B00D"),
-                &BuiltInFunction::function_textureGradOffset_00u10B00B00B00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLevels(00x"),
-                &BuiltInFunction::function_textureQueryLevels_00x,
-                nullptr,
-                -1,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLevels(00t"),
-                &BuiltInFunction::function_textureQueryLevels_00t,
-                nullptr,
-                -1,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLevels(00u"),
-                &BuiltInFunction::function_textureQueryLevels_00u,
-                nullptr,
-                -1,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imulExtended(20D20D20D20D"),
-                &BuiltInFunction::function_imulExtended_20D20D20D20D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("any(30F"),
-                &BuiltInFunction::function_any_30F,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("distance(30B30B"),
-                &BuiltInFunction::function_distance_30B30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLevels(00s"),
-                &BuiltInFunction::function_textureQueryLevels_00s,
-                nullptr,
-                -1,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLevels(00L"),
-                &BuiltInFunction::function_textureQueryLevels_00L,
-                nullptr,
-                -1,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLevels(00I"),
-                &BuiltInFunction::function_textureQueryLevels_00I,
-                nullptr,
-                -1,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLevels(00J"),
-                &BuiltInFunction::function_textureQueryLevels_00J,
-                nullptr,
-                -1,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLevels(00K"),
-                &BuiltInFunction::function_textureQueryLevels_00K,
-                nullptr,
-                -1,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01L00D00D"),
-                &BuiltInFunction::function_imageAtomicExchange_01L00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01W10D00D"),
-                &BuiltInFunction::function_imageAtomicAnd_01W10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01W10D00E"),
-                &BuiltInFunction::function_imageAtomicAnd_01W10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture3D(00J20B00B"),
-                &BuiltInFunction::function_texture3D_00J20B00B,
-                nullptr,
-                -1,
-                0,
-                Shader::FRAGMENT,
-                &BuiltInFunction::function_texture3D_00J20B00B,
-                nullptr,
-                100,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::OES_texture_3D,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture1DLod(00g00B00B"),
-                &BuiltInFunction::function_texture1DLod_00g00B00B,
-                nullptr,
-                -1,
-                0,
-                Shader::VERTEX,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLevels(00X"),
-                &BuiltInFunction::function_textureQueryLevels_00X,
-                nullptr,
-                -1,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLevels(00Y"),
-                &BuiltInFunction::function_textureQueryLevels_00Y,
-                nullptr,
-                -1,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLevels(00Z"),
-                &BuiltInFunction::function_textureQueryLevels_00Z,
-                nullptr,
-                -1,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("dot(30B30B"),
-                &BuiltInFunction::function_dot_30B30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLevels(00T"),
-                &BuiltInFunction::function_textureQueryLevels_00T,
-                nullptr,
-                -1,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLevels(00U"),
-                &BuiltInFunction::function_textureQueryLevels_00U,
-                nullptr,
-                -1,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLevels(00R"),
-                &BuiltInFunction::function_textureQueryLevels_00R,
-                nullptr,
-                -1,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLevels(00S"),
-                &BuiltInFunction::function_textureQueryLevels_00S,
-                nullptr,
-                -1,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxTextureImageUnits"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxTextureImageUnits,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("usubBorrow(20E20E20E"),
-                &BuiltInFunction::function_usubBorrow_20E20E20E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00t30B00B"),
-                &BuiltInFunction::function_textureProj_00t30B00B,
-                nullptr,
-                -1,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("shadow1DProj(00m30B00B"),
-                &BuiltInFunction::function_shadow1DProj_00m30B00B,
-                nullptr,
-                -1,
-                0,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("clamp(30B00B00B"),
-                &BuiltInFunction::function_clamp_30B00B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture2DRectProj(00O30B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_texture2DRectProj_00O30B,
-                nullptr,
-                100,
-                Shader::ALL,
-                &ShBuiltInResources::ARB_texture_rectangle,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01B20D00E"),
-                &BuiltInFunction::function_imageAtomicMax_01B20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("max(10D00D"),
-                &BuiltInFunction::function_max_10D00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGradOffset(00n20B10B10B10D"),
-                &BuiltInFunction::function_textureGradOffset_00n20B10B10B10D,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("clamp(00D00D00D"),
-                &BuiltInFunction::function_clamp_00D00D00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("floor(30B"),
-                &BuiltInFunction::function_floor_30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("floor(30C"),
-                &BuiltInFunction::function_floor_30C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageStore(01P10D30E"),
-                &BuiltInFunction::function_imageStore_01P10D30E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGradOffset(00S30B20B20B20D"),
-                &BuiltInFunction::function_textureProjGradOffset_00S30B20B20B20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("reflect(30C30C"),
-                &BuiltInFunction::function_reflect_30C30C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_PointCoord"),
-                &BuiltInVariable::kVar_gl_PointCoord,
-                nullptr,
-                0,
-                0,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01D20D00E"),
-                &BuiltInFunction::function_imageAtomicOr_01D20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffset(00v10B10D"),
-                &BuiltInFunction::function_textureGatherOffset_00v10B10D,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01D20D00D"),
-                &BuiltInFunction::function_imageAtomicOr_01D20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("packDouble2x32(10E"),
-                &BuiltInFunction::function_packDouble2x32_10E,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("clamp(10B00B00B"),
-                &BuiltInFunction::function_clamp_10B00B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageStore(01F20D30D"),
-                &BuiltInFunction::function_imageStore_01F20D30D,
-                nullptr,
-                310,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetchOffset(00S20D00D20D"),
-                &BuiltInFunction::function_texelFetchOffset_00S20D00D20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("lessThan(10D10D"),
-                &BuiltInFunction::function_lessThan_10D10D,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00g00D"),
-                &BuiltInFunction::function_textureSize_00g00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffset(00U20B10D00D"),
-                &BuiltInFunction::function_textureGatherOffset_00U20B10D00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffset(00q10B10D00D"),
-                &BuiltInFunction::function_textureGatherOffset_00q10B10D00D,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00I10B00D"),
-                &BuiltInFunction::function_textureGather_00I10B00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture1DProjLod(00g30B00B"),
-                &BuiltInFunction::function_texture1DProjLod_00g30B00B,
-                nullptr,
-                -1,
-                0,
-                Shader::VERTEX,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetch(00V10D00D"),
-                &BuiltInFunction::function_texelFetch_00V10D00D,
-                nullptr,
-                310,
-                150,
-                Shader::ALL,
-                &BuiltInFunction::function_texelFetchExt_00V10D00D,
-                nullptr,
-                300,
-                Shader::ALL,
-                &ShBuiltInResources::ANGLE_texture_multisample,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01h00D00E"),
-                &BuiltInFunction::function_imageAtomicExchange_01h00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01h00D00D"),
-                &BuiltInFunction::function_imageAtomicExchange_01h00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atan(30B30B"),
-                &BuiltInFunction::function_atan_30B30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01h00D00B"),
-                &BuiltInFunction::function_imageAtomicExchange_01h00D00B,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffsets(00R10B70D"),
-                &BuiltInFunction::function_textureGatherOffsets_00R10B70D,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01a20D00E"),
-                &BuiltInFunction::function_imageAtomicMax_01a20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLod(00g30B00B"),
-                &BuiltInFunction::function_textureProjLod_00g30B00B,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("max(00B00B"),
-                &BuiltInFunction::function_max_00B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01J20D00E"),
-                &BuiltInFunction::function_imageAtomicOr_01J20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01J20D00D"),
-                &BuiltInFunction::function_imageAtomicOr_01J20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01F20D00E"),
-                &BuiltInFunction::function_imageAtomicMax_01F20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01F20D00D"),
-                &BuiltInFunction::function_imageAtomicMax_01F20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("exp2(20B"),
-                &BuiltInFunction::function_exp2_20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("smoothstep(30C30C30C"),
-                &BuiltInFunction::function_smoothstep_30C30C30C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(00z10D00B"),
-                &BuiltInFunction::function_imageAtomicExchange_00z10D00B,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(00z10D00E"),
-                &BuiltInFunction::function_imageAtomicExchange_00z10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(00z10D00D"),
-                &BuiltInFunction::function_imageAtomicExchange_00z10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffsets(00n10B00B70D"),
-                &BuiltInFunction::function_textureGatherOffsets_00n10B00B70D,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLod(00t10B00B"),
-                &BuiltInFunction::function_textureProjLod_00t10B00B,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01K00D00E"),
-                &BuiltInFunction::function_imageAtomicExchange_01K00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01K00D00B"),
-                &BuiltInFunction::function_imageAtomicExchange_01K00D00B,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxCombinedTextureImageUnits"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxCombinedTextureImageUnits,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00k00D"),
-                &BuiltInFunction::function_textureSize_00k00D,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("reflect(20B20B"),
-                &BuiltInFunction::function_reflect_20B20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01V20D00D00E"),
-                &BuiltInFunction::function_imageAtomicXor_01V20D00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01V20D00D00D"),
-                &BuiltInFunction::function_imageAtomicXor_01V20D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("equal(10F10F"),
-                &BuiltInFunction::function_equal_10F10F,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageLoad(01f00D"),
-                &BuiltInFunction::function_imageLoad_01f00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("acos(30B"),
-                &BuiltInFunction::function_acos_30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("dFdx(10B"),
-                &BuiltInFunction::function_dFdx_10B,
-                nullptr,
-                300,
-                0,
-                Shader::FRAGMENT,
-                &BuiltInFunction::function_dFdxExt_10B,
-                nullptr,
-                100,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::OES_standard_derivatives,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitfieldReverse(30E"),
-                &BuiltInFunction::function_bitfieldReverse_30E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitfieldReverse(30D"),
-                &BuiltInFunction::function_bitfieldReverse_30D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture1DProj(00g30B"),
-                &BuiltInFunction::function_texture1DProj_00g30B,
-                nullptr,
-                -1,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("fract(00C"),
-                &BuiltInFunction::function_fract_00C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("fract(00B"),
-                &BuiltInFunction::function_fract_00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("min(30E00E"),
-                &BuiltInFunction::function_min_30E00E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MinProgramTexelOffset"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MinProgramTexelOffset,
-                300,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("interpolateAtOffset(20B10B"),
-                &BuiltInFunction::function_interpolateAtOffset_20B10B,
-                nullptr,
-                -1,
-                400,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxGeometryTotalOutputComponents"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxGeometryTotalOutputComponents,
-                310,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_geometry_shader,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("reflect(30B30B"),
-                &BuiltInFunction::function_reflect_30B30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffsets(00I10B70D00D"),
-                &BuiltInFunction::function_textureGatherOffsets_00I10B70D00D,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("interpolateAtCentroid(30B"),
-                &BuiltInFunction::function_interpolateAtCentroid_30B,
-                nullptr,
-                -1,
-                400,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00s30B"),
-                &BuiltInFunction::function_textureGather_00s30B,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01X10D00E"),
-                &BuiltInFunction::function_imageAtomicXor_01X10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01X10D00D"),
-                &BuiltInFunction::function_imageAtomicXor_01X10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageStore(01Z20D30B"),
-                &BuiltInFunction::function_imageStore_01Z20D30B,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture1D(00g00B00B"),
-                &BuiltInFunction::function_texture1D_00g00B00B,
-                nullptr,
-                -1,
-                0,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("pow(00B00B"),
-                &BuiltInFunction::function_pow_00B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mod(00B00B"),
-                &BuiltInFunction::function_mod_00B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("faceforward(30C30C30C"),
-                &BuiltInFunction::function_faceforward_30C30C30C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("roundEven(10B"),
-                &BuiltInFunction::function_roundEven_10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("roundEven(10C"),
-                &BuiltInFunction::function_roundEven_10C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atanh(30B"),
-                &BuiltInFunction::function_atanh_30B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLod(00K20B00B"),
-                &BuiltInFunction::function_textureLod_00K20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitCount(20D"),
-                &BuiltInFunction::function_bitCount_20D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitCount(20E"),
-                &BuiltInFunction::function_bitCount_20E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetch(00L20D00D"),
-                &BuiltInFunction::function_texelFetch_00L20D00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("dFdxFine(00B"),
-                &BuiltInFunction::function_dFdxFine_00B,
-                nullptr,
-                -1,
-                450,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("distance(20B20B"),
-                &BuiltInFunction::function_distance_20B20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGradOffset(00q10B10B10B10D"),
-                &BuiltInFunction::function_textureGradOffset_00q10B10B10B10D,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("uaddCarry(30E30E30E"),
-                &BuiltInFunction::function_uaddCarry_30E30E30E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00U00D"),
-                &BuiltInFunction::function_textureSize_00U00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00o10B00D00B"),
-                &BuiltInFunction::function_textureProjOffset_00o10B00D00B,
-                nullptr,
-                -1,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxCombinedImageUniforms"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxCombinedImageUniforms,
-                310,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atomicCounterXor(00G00E"),
-                &BuiltInFunction::function_atomicCounterXor_00G00E,
-                nullptr,
-                -1,
-                460,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01g00D00D"),
-                &BuiltInFunction::function_imageAtomicOr_01g00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01g00D00E"),
-                &BuiltInFunction::function_imageAtomicOr_01g00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_GlobalInvocationID"),
-                &BuiltInVariable::kVar_gl_GlobalInvocationID,
-                nullptr,
-                310,
-                0,
-                Shader::COMPUTE,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_VertexID"),
-                &BuiltInVariable::kVar_gl_VertexID,
-                nullptr,
-                300,
-                0,
-                Shader::VERTEX,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01L00D00E"),
-                &BuiltInFunction::function_imageAtomicMin_01L00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("smoothstep(20C20C20C"),
-                &BuiltInFunction::function_smoothstep_20C20C20C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01U20D00D00D00D"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01U20D00D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atomicOr(00E00E"),
-                &BuiltInFunction::function_atomicOr_00E00E,
-                nullptr,
-                310,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01T20D00D00B"),
-                &BuiltInFunction::function_imageAtomicExchange_01T20D00D00B,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mix(10B10B10F"),
-                &BuiltInFunction::function_mix_10B10B10F,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("reflect(10C10C"),
-                &BuiltInFunction::function_reflect_10C10C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mix(10B10B10B"),
-                &BuiltInFunction::function_mix_10B10B10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00Y30B00B"),
-                &BuiltInFunction::function_textureProj_00Y30B00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01I20D00D"),
-                &BuiltInFunction::function_imageAtomicMax_01I20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01I20D00E"),
-                &BuiltInFunction::function_imageAtomicMax_01I20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("frexp(20B20D"),
-                &BuiltInFunction::function_frexp_20B20D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffset(00I10B10D00D"),
-                &BuiltInFunction::function_textureGatherOffset_00I10B10D00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("notEqual(20E20E"),
-                &BuiltInFunction::function_notEqual_20E20E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLodOffset(00d20B00B10D"),
-                &BuiltInFunction::function_textureLodOffset_00d20B00B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("inverse(A0B"),
-                &BuiltInFunction::function_inverse_A0B,
-                nullptr,
-                300,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGrad(00X20B10B10B"),
-                &BuiltInFunction::function_textureProjGrad_00X20B10B10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageLoad(01J20D"),
-                &BuiltInFunction::function_imageLoad_01J20D,
-                nullptr,
-                310,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00Y00D"),
-                &BuiltInFunction::function_textureSize_00Y00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atan(20B20B"),
-                &BuiltInFunction::function_atan_20B20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("usubBorrow(00E00E00E"),
-                &BuiltInFunction::function_usubBorrow_00E00E00E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01M00D00E"),
-                &BuiltInFunction::function_imageAtomicXor_01M00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01M00D00D"),
-                &BuiltInFunction::function_imageAtomicXor_01M00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("dFdyFine(30B"),
-                &BuiltInFunction::function_dFdyFine_30B,
-                nullptr,
-                -1,
-                450,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLod(00s20B"),
-                &BuiltInFunction::function_textureQueryLod_00s20B,
-                nullptr,
-                -1,
-                400,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01N10D00D"),
-                &BuiltInFunction::function_imageAtomicAnd_01N10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00v10B"),
-                &BuiltInFunction::function_texture_00v10B,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("subpassLoad(01n00D"),
-                &BuiltInFunction::function_subpassLoad_01n00D,
-                nullptr,
-                -1,
-                460,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLodOffset(00g10B00B00D"),
-                &BuiltInFunction::function_textureProjLodOffset_00g10B00B00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("step(10C10C"),
-                &BuiltInFunction::function_step_10C10C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLod(00x20B"),
-                &BuiltInFunction::function_textureQueryLod_00x20B,
-                nullptr,
-                -1,
-                400,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("fma(10B10B10B"),
-                &BuiltInFunction::function_fma_10B10B10B,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("smoothstep(00B00B10B"),
-                &BuiltInFunction::function_smoothstep_00B00B10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01a20D00D00D"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01a20D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSize(01N"),
-                &BuiltInFunction::function_imageSize_01N,
-                nullptr,
-                -1,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLod(00u10B00B"),
-                &BuiltInFunction::function_textureLod_00u10B00B,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGradOffset(00m30B00B00B00D"),
-                &BuiltInFunction::function_textureProjGradOffset_00m30B00B00B00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("fwidthCoarse(00B"),
-                &BuiltInFunction::function_fwidthCoarse_00B,
-                nullptr,
-                -1,
-                450,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("dFdyCoarse(20B"),
-                &BuiltInFunction::function_dFdyCoarse_20B,
-                nullptr,
-                -1,
-                450,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGradOffset(00o30B00B00B00D"),
-                &BuiltInFunction::function_textureProjGradOffset_00o30B00B00B00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00g30B00B"),
-                &BuiltInFunction::function_textureProj_00g30B00B,
-                nullptr,
-                -1,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitfieldExtract(00E00D00D"),
-                &BuiltInFunction::function_bitfieldExtract_00E00D00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageStore(01I20D30D"),
-                &BuiltInFunction::function_imageStore_01I20D30D,
-                nullptr,
-                310,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("distance(30C30C"),
-                &BuiltInFunction::function_distance_30C30C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("any(20F"),
-                &BuiltInFunction::function_any_20F,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffsets(00L20B70D"),
-                &BuiltInFunction::function_textureGatherOffsets_00L20B70D,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLod(00g00B00B"),
-                &BuiltInFunction::function_textureLod_00g00B00B,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("sin(10B"),
-                &BuiltInFunction::function_sin_10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00N00D"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_textureSize_00N00D,
-                nullptr,
-                300,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_YUV_target,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mod(20B20B"),
-                &BuiltInFunction::function_mod_20B20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01h00D00E"),
-                &BuiltInFunction::function_imageAtomicOr_01h00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01h00D00D"),
-                &BuiltInFunction::function_imageAtomicOr_01h00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGrad(00k30B20B20B"),
-                &BuiltInFunction::function_textureGrad_00k30B20B20B,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00o10B00D"),
-                &BuiltInFunction::function_textureProjOffset_00o10B00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01A10D00E"),
-                &BuiltInFunction::function_imageAtomicMin_01A10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01A10D00D"),
-                &BuiltInFunction::function_imageAtomicMin_01A10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGradOffset(00f30B10B10B10D"),
-                &BuiltInFunction::function_textureGradOffset_00f30B10B10B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("max(20D20D"),
-                &BuiltInFunction::function_max_20D20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("max(10D10D"),
-                &BuiltInFunction::function_max_10D10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01N10D00E00E"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01N10D00E00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGradOffset(00t00B00B00B00D"),
-                &BuiltInFunction::function_textureGradOffset_00t00B00B00B00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("refract(30B30B00B"),
-                &BuiltInFunction::function_refract_30B30B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("floor(20C"),
-                &BuiltInFunction::function_floor_20C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("floor(20B"),
-                &BuiltInFunction::function_floor_20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetchOffset(00t00D00D00D"),
-                &BuiltInFunction::function_texelFetchOffset_00t00D00D00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01a20D00E"),
-                &BuiltInFunction::function_imageAtomicOr_01a20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("matrixCompMult(F0BF0B"),
-                &BuiltInFunction::function_matrixCompMult_F0BF0B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("umulExtended(10E10E10E10E"),
-                &BuiltInFunction::function_umulExtended_10E10E10E10E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00d20B00B"),
-                &BuiltInFunction::function_texture_00d20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01Z20D00D"),
-                &BuiltInFunction::function_imageAtomicAdd_01Z20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01Z20D00E"),
-                &BuiltInFunction::function_imageAtomicAdd_01Z20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("umulExtended(30E30E30E30E"),
-                &BuiltInFunction::function_umulExtended_30E30E30E30E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffsets(00q10B70D00D"),
-                &BuiltInFunction::function_textureGatherOffsets_00q10B70D00D,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGradOffset(00Y20B20B20B20D"),
-                &BuiltInFunction::function_textureGradOffset_00Y20B20B20B20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffset(00a20B10D"),
-                &BuiltInFunction::function_textureGatherOffset_00a20B10D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGrad(00f30B10B10B"),
-                &BuiltInFunction::function_textureGrad_00f30B10B10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atomicCounterSubtract(00G00E"),
-                &BuiltInFunction::function_atomicCounterSubtract_00G00E,
-                nullptr,
-                -1,
-                460,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01C20D00E"),
-                &BuiltInFunction::function_imageAtomicXor_01C20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("modf(20B20B"),
-                &BuiltInFunction::function_modf_20B20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01Y10D00D"),
-                &BuiltInFunction::function_imageAtomicAnd_01Y10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01Y10D00E"),
-                &BuiltInFunction::function_imageAtomicAnd_01Y10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("noise1(00B"),
-                &BuiltInFunction::function_noise1_00B,
-                nullptr,
-                -1,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageLoad(01M00D"),
-                &BuiltInFunction::function_imageLoad_01M00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01L00D00E00E"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01L00D00E00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("length(30C"),
-                &BuiltInFunction::function_length_30C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("length(30B"),
-                &BuiltInFunction::function_length_30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mod(30B30B"),
-                &BuiltInFunction::function_mod_30B30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mix(10C10C10F"),
-                &BuiltInFunction::function_mix_10C10C10F,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(00z10D00E"),
-                &BuiltInFunction::function_imageAtomicMin_00z10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(00z10D00D"),
-                &BuiltInFunction::function_imageAtomicMin_00z10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("exp2(30B"),
-                &BuiltInFunction::function_exp2_30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("allInvocations(00F"),
-                &BuiltInFunction::function_allInvocations_00F,
-                nullptr,
-                -1,
-                460,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("max(20C00C"),
-                &BuiltInFunction::function_max_20C00C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture3DProj(00J30B00B"),
-                &BuiltInFunction::function_texture3DProj_00J30B00B,
-                nullptr,
-                -1,
-                0,
-                Shader::FRAGMENT,
-                &BuiltInFunction::function_texture3DProj_00J30B00B,
-                nullptr,
-                100,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::OES_texture_3D,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageLoad(01Q10D00D"),
-                &BuiltInFunction::function_imageLoad_01Q10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLod(00X30B00B"),
-                &BuiltInFunction::function_textureProjLod_00X30B00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGradOffset(00I30B10B10B10D"),
-                &BuiltInFunction::function_textureProjGradOffset_00I30B10B10B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("cosh(30B"),
-                &BuiltInFunction::function_cosh_30B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00q30B"),
-                &BuiltInFunction::function_textureProj_00q30B,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00S20B20D00B"),
-                &BuiltInFunction::function_textureOffset_00S20B20D00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("usubBorrow(30E30E30E"),
-                &BuiltInFunction::function_usubBorrow_30E30E30E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00R20B10D00B"),
-                &BuiltInFunction::function_textureProjOffset_00R20B10D00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01f00D00D"),
-                &BuiltInFunction::function_imageAtomicXor_01f00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01f00D00E"),
-                &BuiltInFunction::function_imageAtomicXor_01f00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00t00B00D00B"),
-                &BuiltInFunction::function_textureOffset_00t00B00D00B,
-                nullptr,
-                -1,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00i20B00D00B"),
-                &BuiltInFunction::function_textureOffset_00i20B00D00B,
-                nullptr,
-                -1,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture3DProj(00J30B"),
-                &BuiltInFunction::function_texture3DProj_00J30B,
-                nullptr,
-                -1,
-                0,
-                Shader::ALL,
-                &BuiltInFunction::function_texture3DProj_00J30B,
-                nullptr,
-                100,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::OES_texture_3D,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("matrixCompMult(B0BB0B"),
-                &BuiltInFunction::function_matrixCompMult_B0BB0B,
-                nullptr,
-                300,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("lessThan(30B30B"),
-                &BuiltInFunction::function_lessThan_30B30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("cross(20B20B"),
-                &BuiltInFunction::function_cross_20B20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSize(01O"),
-                &BuiltInFunction::function_imageSize_01O,
-                nullptr,
-                -1,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGrad(00q10B10B10B"),
-                &BuiltInFunction::function_textureGrad_00q10B10B10B,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("clamp(20B00B00B"),
-                &BuiltInFunction::function_clamp_20B00B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("dFdx(00B"),
-                &BuiltInFunction::function_dFdx_00B,
-                nullptr,
-                300,
-                0,
-                Shader::FRAGMENT,
-                &BuiltInFunction::function_dFdxExt_00B,
-                nullptr,
-                100,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::OES_standard_derivatives,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("findLSB(00D"),
-                &BuiltInFunction::function_findLSB_00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLodOffset(00o30B00B00D"),
-                &BuiltInFunction::function_textureProjLodOffset_00o30B00B00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00R20B00B"),
-                &BuiltInFunction::function_textureProj_00R20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("acos(20B"),
-                &BuiltInFunction::function_acos_20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSize(01A"),
-                &BuiltInFunction::function_imageSize_01A,
-                nullptr,
-                310,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01B20D00D"),
-                &BuiltInFunction::function_imageAtomicAnd_01B20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("max(20B20B"),
-                &BuiltInFunction::function_max_20B20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("lessThan(20E20E"),
-                &BuiltInFunction::function_lessThan_20E20E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00g10B00D00B"),
-                &BuiltInFunction::function_textureProjOffset_00g10B00D00B,
-                nullptr,
-                -1,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("equal(30F30F"),
-                &BuiltInFunction::function_equal_30F30F,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("sign(00C"),
-                &BuiltInFunction::function_sign_00C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("cosh(00B"),
-                &BuiltInFunction::function_cosh_00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitfieldExtract(00D00D00D"),
-                &BuiltInFunction::function_bitfieldExtract_00D00D00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01E20D00D"),
-                &BuiltInFunction::function_imageAtomicMin_01E20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01E20D00E"),
-                &BuiltInFunction::function_imageAtomicMin_01E20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLod(00Z20B00B"),
-                &BuiltInFunction::function_textureLod_00Z20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("sign(00D"),
-                &BuiltInFunction::function_sign_00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00Y20B20D"),
-                &BuiltInFunction::function_textureOffset_00Y20B20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("transpose(60B"),
-                &BuiltInFunction::function_transpose_60B,
-                nullptr,
-                300,
-                120,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01L00D00E"),
-                &BuiltInFunction::function_imageAtomicExchange_01L00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01O10D00D"),
-                &BuiltInFunction::function_imageAtomicAdd_01O10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01O10D00E"),
-                &BuiltInFunction::function_imageAtomicAdd_01O10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("faceforward(00B00B00B"),
-                &BuiltInFunction::function_faceforward_00B00B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_NumWorkGroups"),
-                &BuiltInVariable::kVar_gl_NumWorkGroups,
-                nullptr,
-                310,
-                0,
-                Shader::COMPUTE,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01O10D00E"),
-                &BuiltInFunction::function_imageAtomicOr_01O10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01O10D00D"),
-                &BuiltInFunction::function_imageAtomicOr_01O10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01b20D00D"),
-                &BuiltInFunction::function_imageAtomicAdd_01b20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("interpolateAtCentroid(20B"),
-                &BuiltInFunction::function_interpolateAtCentroid_20B,
-                nullptr,
-                -1,
-                400,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLodOffset(00R30B00B10D"),
-                &BuiltInFunction::function_textureProjLodOffset_00R30B00B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGrad(00h10B00B00B"),
-                &BuiltInFunction::function_textureGrad_00h10B00B00B,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01U20D00D00B"),
-                &BuiltInFunction::function_imageAtomicExchange_01U20D00D00B,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture1DProj(00g30B00B"),
-                &BuiltInFunction::function_texture1DProj_00g30B00B,
-                nullptr,
-                -1,
-                0,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLod(00h00B"),
-                &BuiltInFunction::function_textureQueryLod_00h00B,
-                nullptr,
-                -1,
-                400,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01U20D00D00E"),
-                &BuiltInFunction::function_imageAtomicExchange_01U20D00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("modf(00C00C"),
-                &BuiltInFunction::function_modf_00C00C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLod(00t30B00B"),
-                &BuiltInFunction::function_textureProjLod_00t30B00B,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00o00B00D"),
-                &BuiltInFunction::function_textureOffset_00o00B00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01U20D00D00D"),
-                &BuiltInFunction::function_imageAtomicExchange_01U20D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00U20B"),
-                &BuiltInFunction::function_textureGather_00U20B,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageStore(01H20D30B"),
-                &BuiltInFunction::function_imageStore_01H20D30B,
-                nullptr,
-                310,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetch(00Q20D00D"),
-                &BuiltInFunction::function_texelFetch_00Q20D00D,
-                nullptr,
-                -1,
-                150,
-                Shader::ALL,
-                &BuiltInFunction::function_texelFetchExt_00Q20D00D,
-                nullptr,
-                310,
-                Shader::ALL,
-                &ShBuiltInResources::OES_texture_storage_multisample_2d_array,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("roundEven(00C"),
-                &BuiltInFunction::function_roundEven_00C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("roundEven(00B"),
-                &BuiltInFunction::function_roundEven_00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetchOffset(00O10D10D"),
-                &BuiltInFunction::function_texelFetchOffset_00O10D10D,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atanh(20B"),
-                &BuiltInFunction::function_atanh_20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("clamp(10E00E00E"),
-                &BuiltInFunction::function_clamp_10E00E00E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("dFdxFine(30B"),
-                &BuiltInFunction::function_dFdxFine_30B,
-                nullptr,
-                -1,
-                450,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01L00D00E"),
-                &BuiltInFunction::function_imageAtomicAdd_01L00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLod(00J20B"),
-                &BuiltInFunction::function_textureQueryLod_00J20B,
-                nullptr,
-                -1,
-                400,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00X30B10D"),
-                &BuiltInFunction::function_textureProjOffset_00X30B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxFragmentUniformVectors"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxFragmentUniformVectors,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture2DProjLod(00I30B00B"),
-                &BuiltInFunction::function_texture2DProjLod_00I30B00B,
-                nullptr,
-                100,
-                0,
-                Shader::VERTEX,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("interpolateAtOffset(10B10B"),
-                &BuiltInFunction::function_interpolateAtOffset_10B10B,
-                nullptr,
-                -1,
-                400,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("max(10C10C"),
-                &BuiltInFunction::function_max_10C10C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetch(00g00D00D"),
-                &BuiltInFunction::function_texelFetch_00g00D00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("abs(30B"),
-                &BuiltInFunction::function_abs_30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitfieldInsert(10E10E00D00D"),
-                &BuiltInFunction::function_bitfieldInsert_10E10E00D00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("packSnorm4x8(30B"),
-                &BuiltInFunction::function_packSnorm4x8_30B,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mix(10B10B00B"),
-                &BuiltInFunction::function_mix_10B10B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSize(01b"),
-                &BuiltInFunction::function_imageSize_01b,
-                nullptr,
-                -1,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("clamp(30D30D30D"),
-                &BuiltInFunction::function_clamp_30D30D30D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLod(00d10B"),
-                &BuiltInFunction::function_textureQueryLod_00d10B,
-                nullptr,
-                -1,
-                400,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mod(10C00C"),
-                &BuiltInFunction::function_mod_10C00C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01G20D00D"),
-                &BuiltInFunction::function_imageAtomicMax_01G20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01G20D00E"),
-                &BuiltInFunction::function_imageAtomicMax_01G20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageStore(01R10D00D30D"),
-                &BuiltInFunction::function_imageStore_01R10D00D30D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("determinant(F0B"),
-                &BuiltInFunction::function_determinant_F0B,
-                nullptr,
-                300,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("transpose(A0B"),
-                &BuiltInFunction::function_transpose_A0B,
-                nullptr,
-                300,
-                120,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("pow(20B20B"),
-                &BuiltInFunction::function_pow_20B20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSize(01g"),
-                &BuiltInFunction::function_imageSize_01g,
-                nullptr,
-                -1,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01G20D00B"),
-                &BuiltInFunction::function_imageAtomicExchange_01G20D00B,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageSize(01e"),
-                &BuiltInFunction::function_imageSize_01e,
-                nullptr,
-                -1,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01G20D00D"),
-                &BuiltInFunction::function_imageAtomicExchange_01G20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01G20D00E"),
-                &BuiltInFunction::function_imageAtomicExchange_01G20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageLoad(01Y10D"),
-                &BuiltInFunction::function_imageLoad_01Y10D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01g00D00D"),
-                &BuiltInFunction::function_imageAtomicMax_01g00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01g00D00E"),
-                &BuiltInFunction::function_imageAtomicMax_01g00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00v30B"),
-                &BuiltInFunction::function_textureProj_00v30B,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGrad(00O20B10B10B"),
-                &BuiltInFunction::function_textureProjGrad_00O20B10B10B,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("log2(20B"),
-                &BuiltInFunction::function_log2_20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("dot(30C30C"),
-                &BuiltInFunction::function_dot_30C30C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("fwidthCoarse(10B"),
-                &BuiltInFunction::function_fwidthCoarse_10B,
-                nullptr,
-                -1,
-                450,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00I20B10D00B"),
-                &BuiltInFunction::function_textureProjOffset_00I20B10D00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffsets(00U20B70D00D"),
-                &BuiltInFunction::function_textureGatherOffsets_00U20B70D00D,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("notEqual(10F10F"),
-                &BuiltInFunction::function_notEqual_10F10F,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffsets(00O10B70D"),
-                &BuiltInFunction::function_textureGatherOffsets_00O10B70D,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("smoothstep(00B00B00B"),
-                &BuiltInFunction::function_smoothstep_00B00B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLodOffset(00d30B00B10D"),
-                &BuiltInFunction::function_textureProjLodOffset_00d30B00B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01P10D00E"),
-                &BuiltInFunction::function_imageAtomicAnd_01P10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01P10D00D"),
-                &BuiltInFunction::function_imageAtomicAnd_01P10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLodOffset(00I30B00B10D"),
-                &BuiltInFunction::function_textureProjLodOffset_00I30B00B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxCombinedAtomicCounters"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxCombinedAtomicCounters,
-                310,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitfieldInsert(10D10D00D00D"),
-                &BuiltInFunction::function_bitfieldInsert_10D10D00D00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(00y10D00E"),
-                &BuiltInFunction::function_imageAtomicAdd_00y10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(00y10D00D"),
-                &BuiltInFunction::function_imageAtomicAdd_00y10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01Q10D00D00E"),
-                &BuiltInFunction::function_imageAtomicAnd_01Q10D00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01Q10D00D00D"),
-                &BuiltInFunction::function_imageAtomicAnd_01Q10D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01L00D00D00D"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01L00D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00k30B"),
-                &BuiltInFunction::function_textureGather_00k30B,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00J20B"),
-                &BuiltInFunction::function_texture_00J20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("lessThanEqual(10D10D"),
-                &BuiltInFunction::function_lessThanEqual_10D10D,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00o30B00D00B"),
-                &BuiltInFunction::function_textureProjOffset_00o30B00D00B,
-                nullptr,
-                -1,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxVaryingVectors"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxVaryingVectors,
-                100,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00d00D"),
-                &BuiltInFunction::function_textureSize_00d00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("sin(00B"),
-                &BuiltInFunction::function_sin_00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageLoad(01N10D"),
-                &BuiltInFunction::function_imageLoad_01N10D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("uaddCarry(10E10E10E"),
-                &BuiltInFunction::function_uaddCarry_10E10E10E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01Z20D00E"),
-                &BuiltInFunction::function_imageAtomicOr_01Z20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01Z20D00D"),
-                &BuiltInFunction::function_imageAtomicOr_01Z20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mix(10C10C00C"),
-                &BuiltInFunction::function_mix_10C10C00C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atomicCounterIncrement(00G"),
-                &BuiltInFunction::function_atomicCounterIncrement_00G,
-                nullptr,
-                310,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01J20D00D"),
-                &BuiltInFunction::function_imageAtomicAdd_01J20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01J20D00E"),
-                &BuiltInFunction::function_imageAtomicAdd_01J20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01S10D00D00D00D"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01S10D00D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01W10D00E"),
-                &BuiltInFunction::function_imageAtomicMax_01W10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00o10B00B"),
-                &BuiltInFunction::function_textureProj_00o10B00B,
-                nullptr,
-                -1,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01U20D00D00D"),
-                &BuiltInFunction::function_imageAtomicAdd_01U20D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01U20D00D00E"),
-                &BuiltInFunction::function_imageAtomicAdd_01U20D00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00m30B00D"),
-                &BuiltInFunction::function_textureProjOffset_00m30B00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01Y10D00B"),
-                &BuiltInFunction::function_imageAtomicExchange_01Y10D00B,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("equal(10E10E"),
-                &BuiltInFunction::function_equal_10E10E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01Y10D00E"),
-                &BuiltInFunction::function_imageAtomicExchange_01Y10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01Y10D00D"),
-                &BuiltInFunction::function_imageAtomicExchange_01Y10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01O10D00B"),
-                &BuiltInFunction::function_imageAtomicExchange_01O10D00B,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01O10D00E"),
-                &BuiltInFunction::function_imageAtomicExchange_01O10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00J30B20D"),
-                &BuiltInFunction::function_textureProjOffset_00J30B20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01D20D00D"),
-                &BuiltInFunction::function_imageAtomicXor_01D20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01D20D00E"),
-                &BuiltInFunction::function_imageAtomicXor_01D20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("notEqual(10E10E"),
-                &BuiltInFunction::function_notEqual_10E10E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("min(10C10C"),
-                &BuiltInFunction::function_min_10C10C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGrad(00t10B00B00B"),
-                &BuiltInFunction::function_textureProjGrad_00t10B00B00B,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00q20B00D"),
-                &BuiltInFunction::function_textureGather_00q20B00D,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01B20D00E"),
-                &BuiltInFunction::function_imageAtomicAnd_01B20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01S10D00D00E"),
-                &BuiltInFunction::function_imageAtomicAdd_01S10D00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01O10D00D00D"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01O10D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("shadow1DProjLod(00m30B00B"),
-                &BuiltInFunction::function_shadow1DProjLod_00m30B00B,
-                nullptr,
-                -1,
-                0,
-                Shader::VERTEX,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01f00D00E"),
-                &BuiltInFunction::function_imageAtomicMax_01f00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01f00D00D"),
-                &BuiltInFunction::function_imageAtomicMax_01f00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00u20B00B"),
-                &BuiltInFunction::function_texture_00u20B00B,
-                nullptr,
-                -1,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLodOffset(00R10B00B10D"),
-                &BuiltInFunction::function_textureLodOffset_00R10B00B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("trunc(10B"),
-                &BuiltInFunction::function_trunc_10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("trunc(10C"),
-                &BuiltInFunction::function_trunc_10C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxComputeAtomicCounters"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxComputeAtomicCounters,
-                310,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetch(00u10D00D"),
-                &BuiltInFunction::function_texelFetch_00u10D00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("dot(20C20C"),
-                &BuiltInFunction::function_dot_20C20C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_DepthRangeParameters"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_DepthRangeParameters,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00f20B"),
-                &BuiltInFunction::function_textureGather_00f20B,
-                nullptr,
-                310,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffsets(00L20B70D00D"),
-                &BuiltInFunction::function_textureGatherOffsets_00L20B70D00D,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("noise1(10B"),
-                &BuiltInFunction::function_noise1_10B,
-                nullptr,
-                -1,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGrad(00g30B00B00B"),
-                &BuiltInFunction::function_textureProjGrad_00g30B00B00B,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("shadow2DProj(00d30B"),
-                &BuiltInFunction::function_shadow2DProj_00d30B,
-                nullptr,
-                -1,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00d30B00B"),
-                &BuiltInFunction::function_textureProj_00d30B00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("sign(10B"),
-                &BuiltInFunction::function_sign_10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("max(00E00E"),
-                &BuiltInFunction::function_max_00E00E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00a20B00B"),
-                &BuiltInFunction::function_texture_00a20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00o10B"),
-                &BuiltInFunction::function_textureProj_00o10B,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("refract(20C20C00B"),
-                &BuiltInFunction::function_refract_20C20C00B,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00M20B00B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_textureProj_00M20B00B,
-                nullptr,
-                300,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::OES_EGL_image_external_essl3,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageLoad(01A10D"),
-                &BuiltInFunction::function_imageLoad_01A10D,
-                nullptr,
-                310,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00X30B10D00B"),
-                &BuiltInFunction::function_textureProjOffset_00X30B10D00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("exp2(00B"),
-                &BuiltInFunction::function_exp2_00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01H20D00B"),
-                &BuiltInFunction::function_imageAtomicExchange_01H20D00B,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetchOffset(00u10D00D00D"),
-                &BuiltInFunction::function_texelFetchOffset_00u10D00D00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01H20D00E00E"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01H20D00E00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01H20D00E"),
-                &BuiltInFunction::function_imageAtomicExchange_01H20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01H20D00D"),
-                &BuiltInFunction::function_imageAtomicExchange_01H20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffset(00q10B10D"),
-                &BuiltInFunction::function_textureGatherOffset_00q10B10D,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00a20B00D"),
-                &BuiltInFunction::function_textureGather_00a20B00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageStore(01Q10D00D30B"),
-                &BuiltInFunction::function_imageStore_01Q10D00D30B,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("ldexp(00C00D"),
-                &BuiltInFunction::function_ldexp_00C00D,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00s00D"),
-                &BuiltInFunction::function_textureSize_00s00D,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01P10D00E"),
-                &BuiltInFunction::function_imageAtomicXor_01P10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01I20D00D"),
-                &BuiltInFunction::function_imageAtomicOr_01I20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00N10B00B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_texture_00N10B00B,
-                nullptr,
-                300,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::EXT_YUV_target,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_PrimitiveID"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInVariable::kVar_gl_PrimitiveID,
-                nullptr,
-                310,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::EXT_geometry_shader,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                &BuiltInVariable::kVar_gl_PrimitiveIDGS,
-                nullptr,
-                310,
-                Shader::GEOMETRY_EXT,
-                &ShBuiltInResources::EXT_geometry_shader),
-    SymbolEntry(ImmutableString("imageAtomicOr(01X10D00D"),
-                &BuiltInFunction::function_imageAtomicOr_01X10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01Y10D00D00D"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01Y10D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01X10D00E"),
-                &BuiltInFunction::function_imageAtomicOr_01X10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGrad(00I30B10B10B"),
-                &BuiltInFunction::function_textureProjGrad_00I30B10B10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_Layer"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInVariable::kVar_gl_Layer,
-                nullptr,
-                310,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::EXT_geometry_shader,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                &BuiltInVariable::kVar_gl_LayerGS,
-                nullptr,
-                310,
-                Shader::GEOMETRY_EXT,
-                &ShBuiltInResources::EXT_geometry_shader),
-    SymbolEntry(ImmutableString("textureOffset(00d20B10D"),
-                &BuiltInFunction::function_textureOffset_00d20B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("dFdx(30B"),
-                &BuiltInFunction::function_dFdx_30B,
-                nullptr,
-                300,
-                0,
-                Shader::FRAGMENT,
-                &BuiltInFunction::function_dFdxExt_30B,
-                nullptr,
-                100,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::OES_standard_derivatives,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01V20D00D00D"),
-                &BuiltInFunction::function_imageAtomicMin_01V20D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01V20D00D00E"),
-                &BuiltInFunction::function_imageAtomicMin_01V20D00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_LastFragColor"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInVariable::kVar_gl_LastFragColor,
-                nullptr,
-                100,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::NV_shader_framebuffer_fetch,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGradOffset(00t30B00B00B00D"),
-                &BuiltInFunction::function_textureProjGradOffset_00t30B00B00B00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("min(20E20E"),
-                &BuiltInFunction::function_min_20E20E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("asin(20B"),
-                &BuiltInFunction::function_asin_20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01U20D00D00E00E"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01U20D00D00E00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00l30B00B"),
-                &BuiltInFunction::function_texture_00l30B00B,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture1DProjLod(00g10B00B"),
-                &BuiltInFunction::function_texture1DProjLod_00g10B00B,
-                nullptr,
-                -1,
-                0,
-                Shader::VERTEX,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("fwidth(10B"),
-                &BuiltInFunction::function_fwidth_10B,
-                nullptr,
-                300,
-                0,
-                Shader::FRAGMENT,
-                &BuiltInFunction::function_fwidthExt_10B,
-                nullptr,
-                100,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::OES_standard_derivatives,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("dFdy(00B"),
-                &BuiltInFunction::function_dFdy_00B,
-                nullptr,
-                300,
-                0,
-                Shader::FRAGMENT,
-                &BuiltInFunction::function_dFdyExt_00B,
-                nullptr,
-                100,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::OES_standard_derivatives,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("shadow2DLod(00d20B00B"),
-                &BuiltInFunction::function_shadow2DLod_00d20B00B,
-                nullptr,
-                -1,
-                0,
-                Shader::VERTEX,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture1DProj(00g10B"),
-                &BuiltInFunction::function_texture1DProj_00g10B,
-                nullptr,
-                -1,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("lessThan(30E30E"),
-                &BuiltInFunction::function_lessThan_30E30E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imulExtended(30D30D30D30D"),
-                &BuiltInFunction::function_imulExtended_30D30D30D30D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("transpose(70B"),
-                &BuiltInFunction::function_transpose_70B,
-                nullptr,
-                300,
-                120,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imulExtended(00D00D00D00D"),
-                &BuiltInFunction::function_imulExtended_00D00D00D00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffsets(00q10B70D"),
-                &BuiltInFunction::function_textureGatherOffsets_00q10B70D,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01F20D00D"),
-                &BuiltInFunction::function_imageAtomicAdd_01F20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01F20D00E"),
-                &BuiltInFunction::function_imageAtomicAdd_01F20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00S20B00B"),
-                &BuiltInFunction::function_texture_00S20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLod(00Y20B00B"),
-                &BuiltInFunction::function_textureLod_00Y20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("faceforward(10C10C10C"),
-                &BuiltInFunction::function_faceforward_10C10C10C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLod(00u00B"),
-                &BuiltInFunction::function_textureQueryLod_00u00B,
-                nullptr,
-                -1,
-                400,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("min(20D00D"),
-                &BuiltInFunction::function_min_20D00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01P10D00D00D"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01P10D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("uintBitsToFloat(00E"),
-                &BuiltInFunction::function_uintBitsToFloat_00E,
-                nullptr,
-                300,
-                330,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("dFdxFine(20B"),
-                &BuiltInFunction::function_dFdxFine_20B,
-                nullptr,
-                -1,
-                450,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01L00D00D"),
-                &BuiltInFunction::function_imageAtomicMin_01L00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01g00D00D"),
-                &BuiltInFunction::function_imageAtomicExchange_01g00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitfieldInsert(20D20D00D00D"),
-                &BuiltInFunction::function_bitfieldInsert_20D20D00D00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mix(30B30B00B"),
-                &BuiltInFunction::function_mix_30B30B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLod(00U10B"),
-                &BuiltInFunction::function_textureQueryLod_00U10B,
-                nullptr,
-                -1,
-                400,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01N10D00E"),
-                &BuiltInFunction::function_imageAtomicAnd_01N10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("tanh(00B"),
-                &BuiltInFunction::function_tanh_00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageStore(00y10D30B"),
-                &BuiltInFunction::function_imageStore_00y10D30B,
-                nullptr,
-                310,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("max(10C00C"),
-                &BuiltInFunction::function_max_10C00C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("matrixCompMult(D0BD0B"),
-                &BuiltInFunction::function_matrixCompMult_D0BD0B,
-                nullptr,
-                300,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffsets(00v10B70D00D"),
-                &BuiltInFunction::function_textureGatherOffsets_00v10B70D00D,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxComputeUniformComponents"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxComputeUniformComponents,
-                310,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01X10D00E"),
-                &BuiltInFunction::function_imageAtomicAnd_01X10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("shadow2DProjLod(00d30B00B"),
-                &BuiltInFunction::function_shadow2DProjLod_00d30B00B,
-                nullptr,
-                -1,
-                0,
-                Shader::VERTEX,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01X10D00D"),
-                &BuiltInFunction::function_imageAtomicAnd_01X10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("min(30B30B"),
-                &BuiltInFunction::function_min_30B30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("reflect(20C20C"),
-                &BuiltInFunction::function_reflect_20C20C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetch(00h10D00D"),
-                &BuiltInFunction::function_texelFetch_00h10D00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("memoryBarrierAtomicCounter("),
-                &BuiltInFunction::function_memoryBarrierAtomicCounter_,
-                nullptr,
-                310,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitfieldInsert(00E00E00D00D"),
-                &BuiltInFunction::function_bitfieldInsert_00E00E00D00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01Z20D00E"),
-                &BuiltInFunction::function_imageAtomicMin_01Z20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01Z20D00D"),
-                &BuiltInFunction::function_imageAtomicMin_01Z20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01b20D00E"),
-                &BuiltInFunction::function_imageAtomicAdd_01b20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01a20D00E"),
-                &BuiltInFunction::function_imageAtomicMin_01a20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGrad(00d20B10B10B"),
-                &BuiltInFunction::function_textureGrad_00d20B10B10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atan(10B"),
-                &BuiltInFunction::function_atan_10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01T20D00D00D"),
-                &BuiltInFunction::function_imageAtomicMax_01T20D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01T20D00D00E"),
-                &BuiltInFunction::function_imageAtomicMax_01T20D00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01g00D00D00D"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01g00D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("clamp(30C30C30C"),
-                &BuiltInFunction::function_clamp_30C30C30C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00v20B"),
-                &BuiltInFunction::function_textureProj_00v20B,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("step(00B10B"),
-                &BuiltInFunction::function_step_00B10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLod(00I20B00B"),
-                &BuiltInFunction::function_textureProjLod_00I20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("rgb_2_yuv(20B00H"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_rgb_2_yuv_20B00H,
-                nullptr,
-                300,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_YUV_target,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageStore(01B20D30B"),
-                &BuiltInFunction::function_imageStore_01B20D30B,
-                nullptr,
-                310,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageLoad(01P10D"),
-                &BuiltInFunction::function_imageLoad_01P10D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00T20B"),
-                &BuiltInFunction::function_texture_00T20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("log2(10B"),
-                &BuiltInFunction::function_log2_10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01D20D00D"),
-                &BuiltInFunction::function_imageAtomicAnd_01D20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01D20D00E"),
-                &BuiltInFunction::function_imageAtomicAnd_01D20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("findLSB(20E"),
-                &BuiltInFunction::function_findLSB_20E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("findLSB(20D"),
-                &BuiltInFunction::function_findLSB_20D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01f00D00E"),
-                &BuiltInFunction::function_imageAtomicMin_01f00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01f00D00D"),
-                &BuiltInFunction::function_imageAtomicMin_01f00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("noise2(30B"),
-                &BuiltInFunction::function_noise2_30B,
-                nullptr,
-                -1,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01U20D00D00E"),
-                &BuiltInFunction::function_imageAtomicOr_01U20D00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("greaterThanEqual(10B10B"),
-                &BuiltInFunction::function_greaterThanEqual_10B10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01K00D00D"),
-                &BuiltInFunction::function_imageAtomicXor_01K00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("clamp(10D10D10D"),
-                &BuiltInFunction::function_clamp_10D10D10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetch(00M10D00D"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_texelFetch_00M10D00D,
-                nullptr,
-                300,
-                Shader::ALL,
-                &ShBuiltInResources::OES_EGL_image_external_essl3,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLod(00Y20B"),
-                &BuiltInFunction::function_textureQueryLod_00Y20B,
-                nullptr,
-                -1,
-                400,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("transpose(F0B"),
-                &BuiltInFunction::function_transpose_F0B,
-                nullptr,
-                300,
-                120,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00Y20B20D00B"),
-                &BuiltInFunction::function_textureOffset_00Y20B20D00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGradOffset(00S20B20B20B20D"),
-                &BuiltInFunction::function_textureGradOffset_00S20B20B20B20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01U20D00D00D"),
-                &BuiltInFunction::function_imageAtomicOr_01U20D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("clamp(30E30E30E"),
-                &BuiltInFunction::function_clamp_30E30E30E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00R00D"),
-                &BuiltInFunction::function_textureSize_00R00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01f00D00D"),
-                &BuiltInFunction::function_imageAtomicAdd_01f00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("acosh(10B"),
-                &BuiltInFunction::function_acosh_10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01f00D00E"),
-                &BuiltInFunction::function_imageAtomicAdd_01f00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageLoad(01b20D"),
-                &BuiltInFunction::function_imageLoad_01b20D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00L20B10D00B"),
-                &BuiltInFunction::function_textureOffset_00L20B10D00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mod(20B00B"),
-                &BuiltInFunction::function_mod_20B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageLoad(01U20D00D"),
-                &BuiltInFunction::function_imageLoad_01U20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLod(00J30B00B"),
-                &BuiltInFunction::function_textureProjLod_00J30B00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("subpassLoad(01i"),
-                &BuiltInFunction::function_subpassLoad_01i,
-                nullptr,
-                -1,
-                460,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("subpassLoad(01k"),
-                &BuiltInFunction::function_subpassLoad_01k,
-                nullptr,
-                -1,
-                460,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("transpose(90B"),
-                &BuiltInFunction::function_transpose_90B,
-                nullptr,
-                300,
-                120,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mix(30C30C00C"),
-                &BuiltInFunction::function_mix_30C30C00C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atomicAnd(00E00E"),
-                &BuiltInFunction::function_atomicAnd_00E00E,
-                nullptr,
-                310,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("max(20D00D"),
-                &BuiltInFunction::function_max_20D00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetchOffset(00I10D00D10D"),
-                &BuiltInFunction::function_texelFetchOffset_00I10D00D10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLod(00L10B"),
-                &BuiltInFunction::function_textureQueryLod_00L10B,
-                nullptr,
-                -1,
-                400,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atomicCounter(00G"),
-                &BuiltInFunction::function_atomicCounter_00G,
-                nullptr,
-                310,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGrad(00m20B00B00B"),
-                &BuiltInFunction::function_textureGrad_00m20B00B00B,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("noise3(20B"),
-                &BuiltInFunction::function_noise3_20B,
-                nullptr,
-                -1,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitfieldInsert(30D30D00D00D"),
-                &BuiltInFunction::function_bitfieldInsert_30D30D00D00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("min(10C00C"),
-                &BuiltInFunction::function_min_10C00C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("greaterThan(10D10D"),
-                &BuiltInFunction::function_greaterThan_10D10D,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitfieldExtract(10E00D00D"),
-                &BuiltInFunction::function_bitfieldExtract_10E00D00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGradOffset(00h10B00B00B00D"),
-                &BuiltInFunction::function_textureGradOffset_00h10B00B00B00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01V20D00D00D"),
-                &BuiltInFunction::function_imageAtomicMax_01V20D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture2D(00I10B00B"),
-                &BuiltInFunction::function_texture2D_00I10B00B,
-                nullptr,
-                100,
-                0,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("greaterThan(20D20D"),
-                &BuiltInFunction::function_greaterThan_20D20D,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("noise1(20B"),
-                &BuiltInFunction::function_noise1_20B,
-                nullptr,
-                -1,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLodOffset(00t10B00B00D"),
-                &BuiltInFunction::function_textureProjLodOffset_00t10B00B00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00O20B10D"),
-                &BuiltInFunction::function_textureProjOffset_00O20B10D,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("trunc(00B"),
-                &BuiltInFunction::function_trunc_00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("length(10C"),
-                &BuiltInFunction::function_length_10C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("length(10B"),
-                &BuiltInFunction::function_length_10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageLoad(01R10D00D"),
-                &BuiltInFunction::function_imageLoad_01R10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01H20D00D"),
-                &BuiltInFunction::function_imageAtomicAdd_01H20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01H20D00E"),
-                &BuiltInFunction::function_imageAtomicAdd_01H20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("subpassLoad(01j"),
-                &BuiltInFunction::function_subpassLoad_01j,
-                nullptr,
-                -1,
-                460,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("dot(00B00B"),
-                &BuiltInFunction::function_dot_00B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("tan(30B"),
-                &BuiltInFunction::function_tan_30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLod(00T20B00B"),
-                &BuiltInFunction::function_textureLod_00T20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGrad(00R30B10B10B"),
-                &BuiltInFunction::function_textureProjGrad_00R30B10B10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("exp2(10B"),
-                &BuiltInFunction::function_exp2_10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00X20B10D00B"),
-                &BuiltInFunction::function_textureProjOffset_00X20B10D00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGradOffset(00X30B10B10B10D"),
-                &BuiltInFunction::function_textureProjGradOffset_00X30B10B10B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("matrixCompMult(A0BA0B"),
-                &BuiltInFunction::function_matrixCompMult_A0BA0B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffsets(00v10B70D"),
-                &BuiltInFunction::function_textureGatherOffsets_00v10B70D,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGrad(00S20B20B20B"),
-                &BuiltInFunction::function_textureGrad_00S20B20B20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("round(30B"),
-                &BuiltInFunction::function_round_30B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("round(30C"),
-                &BuiltInFunction::function_round_30C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("anyInvocation(00F"),
-                &BuiltInFunction::function_anyInvocation_00F,
-                nullptr,
-                -1,
-                460,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGrad(00x30B20B20B"),
-                &BuiltInFunction::function_textureGrad_00x30B20B20B,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01D20D00E00E"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01D20D00E00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLod(00o30B00B"),
-                &BuiltInFunction::function_textureProjLod_00o30B00B,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("smoothstep(00C00C10C"),
-                &BuiltInFunction::function_smoothstep_00C00C10C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("interpolateAtSample(00B00D"),
-                &BuiltInFunction::function_interpolateAtSample_00B00D,
-                nullptr,
-                -1,
-                400,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("dFdx(20B"),
-                &BuiltInFunction::function_dFdx_20B,
-                nullptr,
-                300,
-                0,
-                Shader::FRAGMENT,
-                &BuiltInFunction::function_dFdxExt_20B,
-                nullptr,
-                100,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::OES_standard_derivatives,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00L20B"),
-                &BuiltInFunction::function_texture_00L20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("barrier("),
-                &BuiltInFunction::function_barrier_,
-                nullptr,
-                310,
-                400,
-                Shader::COMPUTE,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01a20D00D"),
-                &BuiltInFunction::function_imageAtomicAdd_01a20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00k30B00D"),
-                &BuiltInFunction::function_textureGather_00k30B00D,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("findMSB(20D"),
-                &BuiltInFunction::function_findMSB_20D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffset(00L20B10D"),
-                &BuiltInFunction::function_textureGatherOffset_00L20B10D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01S10D00D00D"),
-                &BuiltInFunction::function_imageAtomicMin_01S10D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01S10D00D00E"),
-                &BuiltInFunction::function_imageAtomicMin_01S10D00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00S30B20D00B"),
-                &BuiltInFunction::function_textureProjOffset_00S30B20D00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01D20D00D"),
-                &BuiltInFunction::function_imageAtomicAdd_01D20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("normalize(10C"),
-                &BuiltInFunction::function_normalize_10C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("unpackSnorm4x8(00E"),
-                &BuiltInFunction::function_unpackSnorm4x8_00E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageLoad(01C20D"),
-                &BuiltInFunction::function_imageLoad_01C20D,
-                nullptr,
-                310,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01C20D00D"),
-                &BuiltInFunction::function_imageAtomicMax_01C20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01C20D00E"),
-                &BuiltInFunction::function_imageAtomicMax_01C20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00l30B00B"),
-                &BuiltInFunction::function_textureGather_00l30B00B,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("normalize(10B"),
-                &BuiltInFunction::function_normalize_10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("asin(30B"),
-                &BuiltInFunction::function_asin_30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("isnan(20B"),
-                &BuiltInFunction::function_isnan_20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("isnan(20C"),
-                &BuiltInFunction::function_isnan_20C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("fwidth(00B"),
-                &BuiltInFunction::function_fwidth_00B,
-                nullptr,
-                300,
-                0,
-                Shader::FRAGMENT,
-                &BuiltInFunction::function_fwidthExt_00B,
-                nullptr,
-                100,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::OES_standard_derivatives,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("dFdy(10B"),
-                &BuiltInFunction::function_dFdy_10B,
-                nullptr,
-                300,
-                0,
-                Shader::FRAGMENT,
-                &BuiltInFunction::function_dFdyExt_10B,
-                nullptr,
-                100,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::OES_standard_derivatives,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01P10D00E"),
-                &BuiltInFunction::function_imageAtomicAdd_01P10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01P10D00D"),
-                &BuiltInFunction::function_imageAtomicAdd_01P10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("max(30E00E"),
-                &BuiltInFunction::function_max_30E00E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLod(00d20B00B"),
-                &BuiltInFunction::function_textureLod_00d20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00q10B10D"),
-                &BuiltInFunction::function_textureOffset_00q10B10D,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_LastFragData"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                nullptr,
-                &TSymbolTableBase::mVar_gl_LastFragData,
-                100,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_shader_framebuffer_fetch,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                &TSymbolTableBase::mVar_gl_LastFragDataNV,
-                100,
-                Shader::ALL,
-                &ShBuiltInResources::NV_shader_framebuffer_fetch),
-    SymbolEntry(ImmutableString("mod(10B00B"),
-                &BuiltInFunction::function_mod_10B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00g00B00B"),
-                &BuiltInFunction::function_texture_00g00B00B,
-                nullptr,
-                -1,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("uintBitsToFloat(10E"),
-                &BuiltInFunction::function_uintBitsToFloat_10E,
-                nullptr,
-                300,
-                330,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00t30B00D"),
-                &BuiltInFunction::function_textureProjOffset_00t30B00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("matrixCompMult(70B70B"),
-                &BuiltInFunction::function_matrixCompMult_70B70B,
-                nullptr,
-                300,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01I20D00D"),
-                &BuiltInFunction::function_imageAtomicAdd_01I20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01M00D00D"),
-                &BuiltInFunction::function_imageAtomicMax_01M00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01M00D00E"),
-                &BuiltInFunction::function_imageAtomicMax_01M00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLod(00k30B00B"),
-                &BuiltInFunction::function_textureLod_00k30B00B,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01E20D00D"),
-                &BuiltInFunction::function_imageAtomicAdd_01E20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLodOffset(00Y20B00B20D"),
-                &BuiltInFunction::function_textureLodOffset_00Y20B00B20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("refract(00C00C00B"),
-                &BuiltInFunction::function_refract_00C00C00B,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("log2(00B"),
-                &BuiltInFunction::function_log2_00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("tanh(10B"),
-                &BuiltInFunction::function_tanh_10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01I20D00E"),
-                &BuiltInFunction::function_imageAtomicMin_01I20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLod(00h10B00B"),
-                &BuiltInFunction::function_textureLod_00h10B00B,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageStore(01b20D30E"),
-                &BuiltInFunction::function_imageStore_01b20D30E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00O20B00D"),
-                &BuiltInFunction::function_textureGather_00O20B00D,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_LocalInvocationID"),
-                &BuiltInVariable::kVar_gl_LocalInvocationID,
-                nullptr,
-                310,
-                0,
-                Shader::COMPUTE,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("clamp(00B00B00B"),
-                &BuiltInFunction::function_clamp_00B00B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00d10B"),
-                &BuiltInFunction::function_textureGather_00d10B,
-                nullptr,
-                310,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxGeometryAtomicCounterBuffers"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxGeometryAtomicCounterBuffers,
-                310,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_geometry_shader,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00p10B00D00B"),
-                &BuiltInFunction::function_textureOffset_00p10B00D00B,
-                nullptr,
-                -1,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01f00D00B"),
-                &BuiltInFunction::function_imageAtomicExchange_01f00D00B,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("clamp(10C10C10C"),
-                &BuiltInFunction::function_clamp_10C10C10C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("outerProduct(20B10B"),
-                &BuiltInFunction::function_outerProduct_20B10B,
-                nullptr,
-                300,
-                120,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00t10B00D"),
-                &BuiltInFunction::function_textureProjOffset_00t10B00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("isinf(20C"),
-                &BuiltInFunction::function_isinf_20C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGrad(00e30B20B20B"),
-                &BuiltInFunction::function_textureGrad_00e30B20B20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00J00D"),
-                &BuiltInFunction::function_textureSize_00J00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLod(00Z20B"),
-                &BuiltInFunction::function_textureQueryLod_00Z20B,
-                nullptr,
-                -1,
-                400,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("dot(10C10C"),
-                &BuiltInFunction::function_dot_10C10C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGrad(00n30B10B10B"),
-                &BuiltInFunction::function_textureProjGrad_00n30B10B10B,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01U20D00D00E"),
-                &BuiltInFunction::function_imageAtomicMin_01U20D00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01U20D00D00D"),
-                &BuiltInFunction::function_imageAtomicMin_01U20D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture2DProjLodEXT(00I30B00B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_texture2DProjLodEXT_00I30B00B,
-                nullptr,
-                100,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::EXT_shader_texture_lod,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01N10D00D"),
-                &BuiltInFunction::function_imageAtomicMax_01N10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01N10D00E"),
-                &BuiltInFunction::function_imageAtomicMax_01N10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01b20D00D"),
-                &BuiltInFunction::function_imageAtomicAnd_01b20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("step(00B00B"),
-                &BuiltInFunction::function_step_00B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture2DLodEXT(00I10B00B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_texture2DLodEXT_00I10B00B,
-                nullptr,
-                100,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::EXT_shader_texture_lod,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00K20B00B"),
-                &BuiltInFunction::function_texture_00K20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGradOffset(00n30B10B10B10D"),
-                &BuiltInFunction::function_textureProjGradOffset_00n30B10B10B10D,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGrad(00J20B20B20B"),
-                &BuiltInFunction::function_textureGrad_00J20B20B20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01V20D00D00E00E"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01V20D00D00E00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00U20B10D00B"),
-                &BuiltInFunction::function_textureOffset_00U20B10D00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("intBitsToFloat(10D"),
-                &BuiltInFunction::function_intBitsToFloat_10D,
-                nullptr,
-                300,
-                330,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("min(20C20C"),
-                &BuiltInFunction::function_min_20C20C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("findLSB(10D"),
-                &BuiltInFunction::function_findLSB_10D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLodOffset(00Y30B00B20D"),
-                &BuiltInFunction::function_textureProjLodOffset_00Y30B00B20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01h00D00E"),
-                &BuiltInFunction::function_imageAtomicMax_01h00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture3D(00J20B"),
-                &BuiltInFunction::function_texture3D_00J20B,
-                nullptr,
-                -1,
-                0,
-                Shader::ALL,
-                &BuiltInFunction::function_texture3D_00J20B,
-                nullptr,
-                100,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::OES_texture_3D,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_SecondaryFragDataEXT"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                nullptr,
-                &TSymbolTableBase::mVar_gl_SecondaryFragDataEXT,
-                100,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_blend_func_extended,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01X10D00E"),
-                &BuiltInFunction::function_imageAtomicAdd_01X10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("faceforward(20C20C20C"),
-                &BuiltInFunction::function_faceforward_20C20C20C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01O10D00E"),
-                &BuiltInFunction::function_imageAtomicAnd_01O10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01X10D00D"),
-                &BuiltInFunction::function_imageAtomicAdd_01X10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00n10B00B"),
-                &BuiltInFunction::function_textureGather_00n10B00B,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00X10B00D"),
-                &BuiltInFunction::function_textureGather_00X10B00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01L00D00E"),
-                &BuiltInFunction::function_imageAtomicMax_01L00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01L00D00D"),
-                &BuiltInFunction::function_imageAtomicMax_01L00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01G20D00E"),
-                &BuiltInFunction::function_imageAtomicXor_01G20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01G20D00D"),
-                &BuiltInFunction::function_imageAtomicXor_01G20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00a20B10D"),
-                &BuiltInFunction::function_textureOffset_00a20B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01X10D00B"),
-                &BuiltInFunction::function_imageAtomicExchange_01X10D00B,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("min(30E30E"),
-                &BuiltInFunction::function_min_30E30E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture2DProj(00I30B00B"),
-                &BuiltInFunction::function_texture2DProj_00I30B00B,
-                nullptr,
-                100,
-                0,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLod(00X10B"),
-                &BuiltInFunction::function_textureQueryLod_00X10B,
-                nullptr,
-                -1,
-                400,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01I20D00E"),
-                &BuiltInFunction::function_imageAtomicAnd_01I20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureCubeGradEXT(00K20B20B20B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_textureCubeGradEXT_00K20B20B20B,
-                nullptr,
-                100,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_shader_texture_lod,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("min(00B00B"),
-                &BuiltInFunction::function_min_00B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGradOffset(00o00B00B00B00D"),
-                &BuiltInFunction::function_textureGradOffset_00o00B00B00B00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mix(30C30C30F"),
-                &BuiltInFunction::function_mix_30C30C30F,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mix(30C30C30C"),
-                &BuiltInFunction::function_mix_30C30C30C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_WorkGroupID"),
-                &BuiltInVariable::kVar_gl_WorkGroupID,
-                nullptr,
-                310,
-                0,
-                Shader::COMPUTE,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("degrees(00B"),
-                &BuiltInFunction::function_degrees_00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01J20D00E"),
-                &BuiltInFunction::function_imageAtomicMax_01J20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01J20D00D"),
-                &BuiltInFunction::function_imageAtomicMax_01J20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01D20D00D"),
-                &BuiltInFunction::function_imageAtomicMin_01D20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atomicExchange(00D00D"),
-                &BuiltInFunction::function_atomicExchange_00D00D,
-                nullptr,
-                310,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00m20B00D00B"),
-                &BuiltInFunction::function_textureOffset_00m20B00D00B,
-                nullptr,
-                -1,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxGeometryAtomicCounters"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxGeometryAtomicCounters,
-                310,
-                Shader::ALL,
-                &ShBuiltInResources::EXT_geometry_shader,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00f30B10D"),
-                &BuiltInFunction::function_textureOffset_00f30B10D,
-                nullptr,
-                -1,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01a20D00D"),
-                &BuiltInFunction::function_imageAtomicExchange_01a20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01a20D00E"),
-                &BuiltInFunction::function_imageAtomicExchange_01a20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01a20D00B"),
-                &BuiltInFunction::function_imageAtomicExchange_01a20D00B,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("matrixCompMult(60B60B"),
-                &BuiltInFunction::function_matrixCompMult_60B60B,
-                nullptr,
-                300,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(00z10D00D00D"),
-                &BuiltInFunction::function_imageAtomicCompSwap_00z10D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00t30B"),
-                &BuiltInFunction::function_textureProj_00t30B,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGradOffset(00t10B00B00B00D"),
-                &BuiltInFunction::function_textureProjGradOffset_00t10B00B00B00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("unpackSnorm2x16(00E"),
-                &BuiltInFunction::function_unpackSnorm2x16_00E,
-                nullptr,
-                300,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("lessThan(30D30D"),
-                &BuiltInFunction::function_lessThan_30D30D,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atan(00B00B"),
-                &BuiltInFunction::function_atan_00B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLod(00S20B"),
-                &BuiltInFunction::function_textureQueryLod_00S20B,
-                nullptr,
-                -1,
-                400,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("notEqual(10B10B"),
-                &BuiltInFunction::function_notEqual_10B10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageLoad(01G20D"),
-                &BuiltInFunction::function_imageLoad_01G20D,
-                nullptr,
-                310,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("trunc(30B"),
-                &BuiltInFunction::function_trunc_30B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("trunc(30C"),
-                &BuiltInFunction::function_trunc_30C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("length(00B"),
-                &BuiltInFunction::function_length_00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("length(00C"),
-                &BuiltInFunction::function_length_00C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01H20D00D"),
-                &BuiltInFunction::function_imageAtomicAnd_01H20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01H20D00E"),
-                &BuiltInFunction::function_imageAtomicAnd_01H20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00X30B00B"),
-                &BuiltInFunction::function_textureProj_00X30B00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01O10D00D"),
-                &BuiltInFunction::function_imageAtomicExchange_01O10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01C20D00E00E"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01C20D00E00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("tan(00B"),
-                &BuiltInFunction::function_tan_00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("min(20E00E"),
-                &BuiltInFunction::function_min_20E00E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLod(00x30B00B"),
-                &BuiltInFunction::function_textureLod_00x30B00B,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00j"),
-                &BuiltInFunction::function_textureSize_00j,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00n"),
-                &BuiltInFunction::function_textureSize_00n,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01F20D00D"),
-                &BuiltInFunction::function_imageAtomicXor_01F20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00c"),
-                &BuiltInFunction::function_textureSize_00c,
-                nullptr,
-                -1,
-                150,
-                Shader::ALL,
-                &BuiltInFunction::function_textureSizeExt_00c,
-                nullptr,
-                310,
-                Shader::ALL,
-                &ShBuiltInResources::OES_texture_storage_multisample_2d_array,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00b"),
-                &BuiltInFunction::function_textureSize_00b,
-                nullptr,
-                310,
-                150,
-                Shader::ALL,
-                &BuiltInFunction::function_textureSizeExt_00b,
-                nullptr,
-                300,
-                Shader::ALL,
-                &ShBuiltInResources::ANGLE_texture_multisample,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("min(20B20B"),
-                &BuiltInFunction::function_min_20B20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00q"),
-                &BuiltInFunction::function_textureSize_00q,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00r"),
-                &BuiltInFunction::function_textureSize_00r,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00w"),
-                &BuiltInFunction::function_textureSize_00w,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00v"),
-                &BuiltInFunction::function_textureSize_00v,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitfieldInsert(20E20E00D00D"),
-                &BuiltInFunction::function_bitfieldInsert_20E20E00D00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxProgramTexelOffset"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxProgramTexelOffset,
-                300,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00O"),
-                &BuiltInFunction::function_textureSize_00O,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01a20D00E"),
-                &BuiltInFunction::function_imageAtomicAnd_01a20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01g00D00D"),
-                &BuiltInFunction::function_imageAtomicMin_01g00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("trunc(00C"),
-                &BuiltInFunction::function_trunc_00C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01a20D00D"),
-                &BuiltInFunction::function_imageAtomicAnd_01a20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00Q"),
-                &BuiltInFunction::function_textureSize_00Q,
-                nullptr,
-                -1,
-                150,
-                Shader::ALL,
-                &BuiltInFunction::function_textureSizeExt_00Q,
-                nullptr,
-                310,
-                Shader::ALL,
-                &ShBuiltInResources::OES_texture_storage_multisample_2d_array,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00P"),
-                &BuiltInFunction::function_textureSize_00P,
-                nullptr,
-                310,
-                150,
-                Shader::ALL,
-                &BuiltInFunction::function_textureSizeExt_00P,
-                nullptr,
-                300,
-                Shader::ALL,
-                &ShBuiltInResources::ANGLE_texture_multisample,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01M00D00E"),
-                &BuiltInFunction::function_imageAtomicAdd_01M00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01M00D00D"),
-                &BuiltInFunction::function_imageAtomicAdd_01M00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00W"),
-                &BuiltInFunction::function_textureSize_00W,
-                nullptr,
-                -1,
-                150,
-                Shader::ALL,
-                &BuiltInFunction::function_textureSizeExt_00W,
-                nullptr,
-                310,
-                Shader::ALL,
-                &ShBuiltInResources::OES_texture_storage_multisample_2d_array,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLod(00X20B00B"),
-                &BuiltInFunction::function_textureProjLod_00X20B00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("smoothstep(00C00C00C"),
-                &BuiltInFunction::function_smoothstep_00C00C00C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atomicCounterAnd(00G00E"),
-                &BuiltInFunction::function_atomicCounterAnd_00G00E,
-                nullptr,
-                -1,
-                460,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("faceforward(30B30B30B"),
-                &BuiltInFunction::function_faceforward_30B30B30B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("distance(20C20C"),
-                &BuiltInFunction::function_distance_20C20C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atomicCounterAdd(00G00E"),
-                &BuiltInFunction::function_atomicCounterAdd_00G00E,
-                nullptr,
-                -1,
-                460,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageStore(01O10D30D"),
-                &BuiltInFunction::function_imageStore_01O10D30D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00X10B"),
-                &BuiltInFunction::function_texture_00X10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("ceil(00C"),
-                &BuiltInFunction::function_ceil_00C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("ceil(00B"),
-                &BuiltInFunction::function_ceil_00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("distance(00B00B"),
-                &BuiltInFunction::function_distance_00B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetch(00O10D"),
-                &BuiltInFunction::function_texelFetch_00O10D,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01N10D00D"),
-                &BuiltInFunction::function_imageAtomicMin_01N10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01N10D00E"),
-                &BuiltInFunction::function_imageAtomicMin_01N10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01C20D00D"),
-                &BuiltInFunction::function_imageAtomicExchange_01C20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01C20D00E"),
-                &BuiltInFunction::function_imageAtomicExchange_01C20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGrad(00s30B20B20B"),
-                &BuiltInFunction::function_textureGrad_00s30B20B20B,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00I10B"),
-                &BuiltInFunction::function_textureGather_00I10B,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01C20D00B"),
-                &BuiltInFunction::function_imageAtomicExchange_01C20D00B,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("min(30D30D"),
-                &BuiltInFunction::function_min_30D30D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("findMSB(30E"),
-                &BuiltInFunction::function_findMSB_30E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("findMSB(30D"),
-                &BuiltInFunction::function_findMSB_30D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGradOffset(00R10B10B10B10D"),
-                &BuiltInFunction::function_textureGradOffset_00R10B10B10B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("fwidth(30B"),
-                &BuiltInFunction::function_fwidth_30B,
-                nullptr,
-                300,
-                0,
-                Shader::FRAGMENT,
-                &BuiltInFunction::function_fwidthExt_30B,
-                nullptr,
-                100,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::OES_standard_derivatives,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGrad(00K20B20B20B"),
-                &BuiltInFunction::function_textureGrad_00K20B20B20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetch(00S20D00D"),
-                &BuiltInFunction::function_texelFetch_00S20D00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("max(10B00B"),
-                &BuiltInFunction::function_max_10B00B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGradOffset(00R30B10B10B10D"),
-                &BuiltInFunction::function_textureProjGradOffset_00R30B10B10B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetchOffset(00L20D00D10D"),
-                &BuiltInFunction::function_texelFetchOffset_00L20D00D10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("isnan(30C"),
-                &BuiltInFunction::function_isnan_30C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("transpose(50B"),
-                &BuiltInFunction::function_transpose_50B,
-                nullptr,
-                300,
-                120,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("greaterThanEqual(20D20D"),
-                &BuiltInFunction::function_greaterThanEqual_20D20D,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("asinh(00B"),
-                &BuiltInFunction::function_asinh_00B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_PrimitiveIDIn"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInVariable::kVar_gl_PrimitiveIDIn,
-                nullptr,
-                310,
-                Shader::GEOMETRY_EXT,
-                &ShBuiltInResources::EXT_geometry_shader,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00Z20B"),
-                &BuiltInFunction::function_textureGather_00Z20B,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGrad(00p10B00B00B"),
-                &BuiltInFunction::function_textureGrad_00p10B00B00B,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00v30B10D"),
-                &BuiltInFunction::function_textureProjOffset_00v30B10D,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("greaterThan(20B20B"),
-                &BuiltInFunction::function_greaterThan_20B20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("min(20D20D"),
-                &BuiltInFunction::function_min_20D20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetchOffset(00g00D00D00D"),
-                &BuiltInFunction::function_texelFetchOffset_00g00D00D00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01g00D00E00E"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01g00D00E00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01Q10D00D00E00E"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01Q10D00D00E00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01O10D00D"),
-                &BuiltInFunction::function_imageAtomicXor_01O10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01O10D00E"),
-                &BuiltInFunction::function_imageAtomicXor_01O10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("tanh(20B"),
-                &BuiltInFunction::function_tanh_20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00m30B00B"),
-                &BuiltInFunction::function_textureProj_00m30B00B,
-                nullptr,
-                -1,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("sin(20B"),
-                &BuiltInFunction::function_sin_20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("smoothstep(00C00C30C"),
-                &BuiltInFunction::function_smoothstep_00C00C30C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00l00D"),
-                &BuiltInFunction::function_textureSize_00l00D,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLod(00o00B00B"),
-                &BuiltInFunction::function_textureLod_00o00B00B,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01K00D00D"),
-                &BuiltInFunction::function_imageAtomicMin_01K00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01K00D00E"),
-                &BuiltInFunction::function_imageAtomicMin_01K00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00I10B10D00B"),
-                &BuiltInFunction::function_textureOffset_00I10B10D00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(00z10D00D"),
-                &BuiltInFunction::function_imageAtomicAnd_00z10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(00z10D00E"),
-                &BuiltInFunction::function_imageAtomicAnd_00z10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxAtomicCounterBufferSize"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxAtomicCounterBufferSize,
-                310,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00J20B20D00B"),
-                &BuiltInFunction::function_textureOffset_00J20B20D00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("lessThanEqual(20E20E"),
-                &BuiltInFunction::function_lessThanEqual_20E20E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_BaseVertex"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInVariable::kVar_gl_BaseVertex,
-                nullptr,
-                300,
-                Shader::VERTEX,
-                &ShBuiltInResources::ANGLE_base_vertex_base_instance,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00g00B00D"),
-                &BuiltInFunction::function_textureOffset_00g00B00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00g30B"),
-                &BuiltInFunction::function_textureProj_00g30B,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageLoad(01Z20D"),
-                &BuiltInFunction::function_imageLoad_01Z20D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitfieldInsert(30E30E00D00D"),
-                &BuiltInFunction::function_bitfieldInsert_30E30E00D00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitfieldExtract(20E00D00D"),
-                &BuiltInFunction::function_bitfieldExtract_20E00D00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("uintBitsToFloat(20E"),
-                &BuiltInFunction::function_uintBitsToFloat_20E,
-                nullptr,
-                300,
-                330,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("unpackUnorm4x8(00E"),
-                &BuiltInFunction::function_unpackUnorm4x8_00E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mod(10B10B"),
-                &BuiltInFunction::function_mod_10B10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_LocalInvocationIndex"),
-                &BuiltInVariable::kVar_gl_LocalInvocationIndex,
-                nullptr,
-                310,
-                0,
-                Shader::COMPUTE,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01W10D00D"),
-                &BuiltInFunction::function_imageAtomicAdd_01W10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01W10D00E"),
-                &BuiltInFunction::function_imageAtomicAdd_01W10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxVertexImageUniforms"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxVertexImageUniforms,
-                310,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("equal(20D20D"),
-                &BuiltInFunction::function_equal_20D20D,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxCombinedAtomicCounterBuffers"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxCombinedAtomicCounterBuffers,
-                310,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mix(10E10E10F"),
-                &BuiltInFunction::function_mix_10E10E10F,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00R10B00D"),
-                &BuiltInFunction::function_textureGather_00R10B00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureSize(00Z00D"),
-                &BuiltInFunction::function_textureSize_00Z00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("bitfieldExtract(30D00D00D"),
-                &BuiltInFunction::function_bitfieldExtract_30D00D00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01J20D00D"),
-                &BuiltInFunction::function_imageAtomicXor_01J20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01J20D00E"),
-                &BuiltInFunction::function_imageAtomicXor_01J20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageStore(01T20D00D30B"),
-                &BuiltInFunction::function_imageStore_01T20D00D30B,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("intBitsToFloat(00D"),
-                &BuiltInFunction::function_intBitsToFloat_00D,
-                nullptr,
-                300,
-                330,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLodOffset(00m20B00B00D"),
-                &BuiltInFunction::function_textureLodOffset_00m20B00B00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("findLSB(00E"),
-                &BuiltInFunction::function_findLSB_00E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetch(00p10D00D"),
-                &BuiltInFunction::function_texelFetch_00p10D00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00d10B00B"),
-                &BuiltInFunction::function_textureGather_00d10B00B,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("shadow2DProj(00d30B00B"),
-                &BuiltInFunction::function_shadow2DProj_00d30B00B,
-                nullptr,
-                -1,
-                0,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("inversesqrt(10B"),
-                &BuiltInFunction::function_inversesqrt_10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("inversesqrt(10C"),
-                &BuiltInFunction::function_inversesqrt_10C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("abs(30D"),
-                &BuiltInFunction::function_abs_30D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("transpose(D0B"),
-                &BuiltInFunction::function_transpose_D0B,
-                nullptr,
-                300,
-                120,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("abs(30C"),
-                &BuiltInFunction::function_abs_30C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGrad(00O30B10B10B"),
-                &BuiltInFunction::function_textureProjGrad_00O30B10B10B,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMax(01Z20D00D"),
-                &BuiltInFunction::function_imageAtomicMax_01Z20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString(""),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageLoad(01E20D"),
-                &BuiltInFunction::function_imageLoad_01E20D,
-                nullptr,
-                310,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00N20B00B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_textureProj_00N20B00B,
-                nullptr,
-                300,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::EXT_YUV_target,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_FragData"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_FragData,
-                100,
-                0,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("dFdxCoarse(20B"),
-                &BuiltInFunction::function_dFdxCoarse_20B,
-                nullptr,
-                -1,
-                450,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("clamp(20E00E00E"),
-                &BuiltInFunction::function_clamp_20E00E00E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00d30B"),
-                &BuiltInFunction::function_textureProj_00d30B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxVertexOutputVectors"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxVertexOutputVectors,
-                300,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("shadow1D(00m20B"),
-                &BuiltInFunction::function_shadow1D_00m20B,
-                nullptr,
-                -1,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureOffset(00u10B00D"),
-                &BuiltInFunction::function_textureOffset_00u10B00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("cosh(10B"),
-                &BuiltInFunction::function_cosh_10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("sign(10C"),
-                &BuiltInFunction::function_sign_10C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01G20D00E"),
-                &BuiltInFunction::function_imageAtomicAnd_01G20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(01G20D00D"),
-                &BuiltInFunction::function_imageAtomicAnd_01G20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("sign(10D"),
-                &BuiltInFunction::function_sign_10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("umulExtended(00E00E00E00E"),
-                &BuiltInFunction::function_umulExtended_00E00E00E00E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("gl_MaxVertexAttribs"),
-                nullptr,
-                &TSymbolTableBase::mVar_gl_MaxVertexAttribs,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString(""),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00a20B"),
-                &BuiltInFunction::function_texture_00a20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01T20D00D00E"),
-                &BuiltInFunction::function_imageAtomicAdd_01T20D00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01T20D00D00D"),
-                &BuiltInFunction::function_imageAtomicAdd_01T20D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicExchange(01g00D00B"),
-                &BuiltInFunction::function_imageAtomicExchange_01g00D00B,
-                nullptr,
-                -1,
-                450,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("ldexp(10B10D"),
-                &BuiltInFunction::function_ldexp_10B10D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00g30B00D"),
-                &BuiltInFunction::function_textureProjOffset_00g30B00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00Z20B"),
-                &BuiltInFunction::function_texture_00Z20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("degrees(10B"),
-                &BuiltInFunction::function_degrees_10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00K20B"),
-                &BuiltInFunction::function_texture_00K20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("sinh(10B"),
-                &BuiltInFunction::function_sinh_10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00m20B"),
-                &BuiltInFunction::function_texture_00m20B,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01C20D00D"),
-                &BuiltInFunction::function_imageAtomicXor_01C20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("not(30F"),
-                &BuiltInFunction::function_notFunc_30F,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLodOffset(00I20B00B10D"),
-                &BuiltInFunction::function_textureProjLodOffset_00I20B00B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00K20B"),
-                &BuiltInFunction::function_textureGather_00K20B,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffset(00R10B10D"),
-                &BuiltInFunction::function_textureGatherOffset_00R10B10D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("memoryBarrierShared("),
-                &BuiltInFunction::function_memoryBarrierShared_,
-                nullptr,
-                310,
-                430,
-                Shader::COMPUTE,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("clamp(20B20B20B"),
-                &BuiltInFunction::function_clamp_20B20B20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetch(00W20D00D"),
-                &BuiltInFunction::function_texelFetch_00W20D00D,
-                nullptr,
-                -1,
-                150,
-                Shader::ALL,
-                &BuiltInFunction::function_texelFetchExt_00W20D00D,
-                nullptr,
-                310,
-                Shader::ALL,
-                &ShBuiltInResources::OES_texture_storage_multisample_2d_array,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLod(00g10B00B"),
-                &BuiltInFunction::function_textureProjLod_00g10B00B,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("trunc(20C"),
-                &BuiltInFunction::function_trunc_20C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("trunc(20B"),
-                &BuiltInFunction::function_trunc_20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00I30B10D00B"),
-                &BuiltInFunction::function_textureProjOffset_00I30B10D00B,
-                nullptr,
-                300,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("max(00C00C"),
-                &BuiltInFunction::function_max_00C00C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("tan(10B"),
-                &BuiltInFunction::function_tan_10B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00g00B"),
-                &BuiltInFunction::function_texture_00g00B,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLodOffset(00L20B00B10D"),
-                &BuiltInFunction::function_textureLodOffset_00L20B00B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureLodOffset(00u10B00B00D"),
-                &BuiltInFunction::function_textureLodOffset_00u10B00B00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(00y10D00E"),
-                &BuiltInFunction::function_imageAtomicAnd_00y10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAnd(00y10D00D"),
-                &BuiltInFunction::function_imageAtomicAnd_00y10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("isinf(20B"),
-                &BuiltInFunction::function_isinf_20B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("dFdyCoarse(10B"),
-                &BuiltInFunction::function_dFdyCoarse_10B,
-                nullptr,
-                -1,
-                450,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffset(00X10B10D00D"),
-                &BuiltInFunction::function_textureGatherOffset_00X10B10D00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("min(10E10E"),
-                &BuiltInFunction::function_min_10E10E,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("memoryBarrierImage("),
-                &BuiltInFunction::function_memoryBarrierImage_,
-                nullptr,
-                310,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("round(10B"),
-                &BuiltInFunction::function_round_10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("round(10C"),
-                &BuiltInFunction::function_round_10C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjLodOffset(00m30B00B00D"),
-                &BuiltInFunction::function_textureProjLodOffset_00m30B00B00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGradOffset(00g10B00B00B00D"),
-                &BuiltInFunction::function_textureProjGradOffset_00g10B00B00B00D,
-                nullptr,
-                -1,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00R30B"),
-                &BuiltInFunction::function_textureProj_00R30B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("shadow1DProj(00m30B"),
-                &BuiltInFunction::function_shadow1DProj_00m30B,
-                nullptr,
-                -1,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00f30B00B"),
-                &BuiltInFunction::function_texture_00f30B00B,
-                nullptr,
-                -1,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("fma(00B00B00B"),
-                &BuiltInFunction::function_fma_00B00B00B,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01b20D00E"),
-                &BuiltInFunction::function_imageAtomicOr_01b20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01b20D00D"),
-                &BuiltInFunction::function_imageAtomicOr_01b20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGatherOffset(00v10B10D00D"),
-                &BuiltInFunction::function_textureGatherOffset_00v10B10D00D,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("atomicMax(00E00E"),
-                &BuiltInFunction::function_atomicMax_00E00E,
-                nullptr,
-                310,
-                430,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01B20D00E"),
-                &BuiltInFunction::function_imageAtomicMin_01B20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicMin(01B20D00D"),
-                &BuiltInFunction::function_imageAtomicMin_01B20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureQueryLod(00t00B"),
-                &BuiltInFunction::function_textureQueryLod_00t00B,
-                nullptr,
-                -1,
-                400,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjOffset(00R30B10D"),
-                &BuiltInFunction::function_textureProjOffset_00R30B10D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProj(00X30B"),
-                &BuiltInFunction::function_textureProj_00X30B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("findMSB(00D"),
-                &BuiltInFunction::function_findMSB_00D,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("findMSB(00E"),
-                &BuiltInFunction::function_findMSB_00E,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mix(20B20B20B"),
-                &BuiltInFunction::function_mix_20B20B20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicCompSwap(01X10D00D00D"),
-                &BuiltInFunction::function_imageAtomicCompSwap_01X10D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("frexp(30C30D"),
-                &BuiltInFunction::function_frexp_30C30D,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mix(10C10C10C"),
-                &BuiltInFunction::function_mix_10C10C10C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("min(30D00D"),
-                &BuiltInFunction::function_min_30D00D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00M10B00B"),
-                nullptr,
-                nullptr,
-                -1,
-                -1,
-                Shader::ALL,
-                &BuiltInFunction::function_texture_00M10B00B,
-                nullptr,
-                300,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::OES_EGL_image_external_essl3,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("fwidth(20B"),
-                &BuiltInFunction::function_fwidth_20B,
-                nullptr,
-                300,
-                0,
-                Shader::FRAGMENT,
-                &BuiltInFunction::function_fwidthExt_20B,
-                nullptr,
-                100,
-                Shader::FRAGMENT,
-                &ShBuiltInResources::OES_standard_derivatives,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01S10D00D00D"),
-                &BuiltInFunction::function_imageAtomicOr_01S10D00D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01S10D00D00E"),
-                &BuiltInFunction::function_imageAtomicOr_01S10D00D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("mod(30C00C"),
-                &BuiltInFunction::function_mod_30C00C,
-                nullptr,
-                -1,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01A10D00D"),
-                &BuiltInFunction::function_imageAtomicAdd_01A10D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicAdd(01A10D00E"),
-                &BuiltInFunction::function_imageAtomicAdd_01A10D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texture(00o00B00B"),
-                &BuiltInFunction::function_texture_00o00B00B,
-                nullptr,
-                -1,
-                130,
-                Shader::FRAGMENT,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01H20D00E"),
-                &BuiltInFunction::function_imageAtomicOr_01H20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicOr(01H20D00D"),
-                &BuiltInFunction::function_imageAtomicOr_01H20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("cos(20B"),
-                &BuiltInFunction::function_cos_20B,
-                nullptr,
-                0,
-                0,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureGather(00T20B"),
-                &BuiltInFunction::function_textureGather_00T20B,
-                nullptr,
-                310,
-                400,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("textureProjGradOffset(00J30B20B20B20D"),
-                &BuiltInFunction::function_textureProjGradOffset_00J30B20B20B20D,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("asinh(10B"),
-                &BuiltInFunction::function_asinh_10B,
-                nullptr,
-                300,
-                130,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("texelFetchOffset(00v10D10D"),
-                &BuiltInFunction::function_texelFetchOffset_00v10D10D,
-                nullptr,
-                -1,
-                140,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01E20D00E"),
-                &BuiltInFunction::function_imageAtomicXor_01E20D00E,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr),
-    SymbolEntry(ImmutableString("imageAtomicXor(01E20D00D"),
-                &BuiltInFunction::function_imageAtomicXor_01E20D00D,
-                nullptr,
-                -1,
-                420,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr,
-                nullptr,
-                nullptr,
-                -1,
-                Shader::ALL,
-                nullptr)};
+// Rules used to initialize the mangled name array.
+constexpr SymbolRule kRules[] = {
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProj_00R30B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProj_00R30B00B),
+    Rule::Get<Spec::GLSL, 400, Shader::FRAGMENT, 0>(&interpolateAtOffset_30B10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjOffset_00g10B00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_00z10D00D),
+    Rule::Get<Spec::ESSL, 100, Shader::ALL, 0>(&texture2DProj_00I20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&texture2DProj_00I20B),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&textureProjGradOffset_00v30B10B10B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetch_00o00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageLoad_01g00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageLoad_01I20D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageLoad_01I20D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&tanh_30B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&tanh_30B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01E20D00D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::FRAGMENT, 0>(&textureQueryLod_00m00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01f00D00D00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&notFunc_10F),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&notFunc_10F),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findMSB_20E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findMSB_20E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&lessThanEqual_30B30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&lessThanEqual_30B30B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_00z10D00E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00t00B00B),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&textureProjGradOffset_00O30B10B10B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&outerProduct_20B30B),
+    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&outerProduct_20B30B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_00z10D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01f00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01f00D00E),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&imageSamples_01V),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&imageSamples_01U),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&imageSamples_01T),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&imageSamples_01S),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&mix_20B20B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&mix_20B20B00B),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&imageSamples_01Q),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLodOffset_00o00B00B00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&uintBitsToFloat_30E),
+    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&uintBitsToFloat_30E),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&imageAtomicExchange_01R10D00D00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00K00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00K00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00h00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxAtomicCounterBindings),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxAtomicCounterBindings),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&texelFetchOffset_00q10D10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&greaterThanEqual_10E10E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&greaterThanEqual_10E10E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00d20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00d20B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&atan_10B10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&atan_10B10B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&clamp_30B30B30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&clamp_30B30B30B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01a20D00E00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01R10D00D00D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLodOffset_00a20B00B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLodOffset_00a20B00B10D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageStore_01K00D30B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&greaterThanEqual_20B20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&greaterThanEqual_20B20B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageLoad_01F20D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageLoad_01F20D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&ceil_10C),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01b20D00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01A10D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01D20D00E),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicAdd_00D00D),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicAdd_00D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00p00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&floatBitsToUint_20B),
+    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&floatBitsToUint_20B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProjOffset_00t30B00D00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01Q10D00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01Q10D00D00E),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&mix_20D20D20F),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&degrees_20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&degrees_20B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01Y10D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01Z20D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01D20D00D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&min_00C00C),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01S10D00D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01R10D00D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01Q10D00D00E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&inversesqrt_00C),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&inversesqrt_00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&inversesqrt_00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01Q10D00D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetchOffset_00J20D00D20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetchOffset_00J20D00D20D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGrad_00S30B20B20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGrad_00S30B20B20B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&equal_10D10D),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&equal_10D10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_30D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_30D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::COMPUTE, 0>(&groupMemoryBarrier_),
+    Rule::Get<Spec::GLSL, 430, Shader::COMPUTE, 0>(&groupMemoryBarrier_),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01N10D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01N10D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01b20D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01b20D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&step_20C20C),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetch_00I10D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetch_00I10D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&mod_00C00C),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&transpose_E0B),
+    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&transpose_E0B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01R10D00D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01R10D00D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffsets_00f20B00B70D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00O20B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProjOffset_00Y30B20D00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProjOffset_00Y30B20D00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&modf_10B10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&modf_10B10B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01K00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01K00D00E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&determinant_50B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01J20D00E00E),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProj_00g10B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&lessThan_20B20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&lessThan_20B20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&TableBase::m_gl_MaxFragmentInputVectors),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxFragmentInputVectors),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&sign_20C),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&cosh_20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&cosh_20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&sign_20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&sign_20D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&atanh_00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&atanh_00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01V20D00D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01V20D00D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProj_00t10B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00p20B00B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&fma_10C10C10C),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01Y10D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01Y10D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01N10D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01C20D00E),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureOffset_00d20B10D00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureOffset_00d20B10D00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureOffset_00m20B00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01C20D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&lessThan_10E10E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&lessThan_10E10E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01A10D00D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00X00B00B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLodOffset_00t30B00B00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&fma_30C30C30C),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&textureGrad_00v10B10B10B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, EXT_INDEX(EXT_YUV_target)>(&textureProj_00N30B00B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&step_00C00C),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxCombinedShaderOutputResources),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxCombinedShaderOutputResources),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&texture_00I10B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00I10B00B),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&texelFetch_00j00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&lessThan_20D20D),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&lessThan_20D20D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&clamp_20C20C20C),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_00z10D00E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&all_10F),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&all_10F),
+    Rule::Get<Spec::GLSL, 450, Shader::FRAGMENT, 0>(&dFdyCoarse_00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&isinf_30B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&isinf_30B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGatherOffset_00a20B10D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00a20B10D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGatherOffset_00I10B10D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00I10B10D),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&textureProjOffset_00q30B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureOffset_00L20B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureOffset_00L20B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&lessThanEqual_30E30E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&lessThanEqual_30E30E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&min_10E00E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&min_10E00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01a20D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01a20D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjOffset_00S30B20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjOffset_00S30B20D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&round_00C),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&round_00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&round_00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&greaterThan_30D30D),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&greaterThan_30D30D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00U20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00U20B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01P10D00E00E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&smoothstep_00C00C20C),
+    Rule::Get<Spec::ESSL, 100, Shader::ALL, EXT_INDEX(ARB_texture_rectangle)>(
+        &texture2DRect_00O10B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01K00D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01K00D00D),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&noise2_20B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_geometry_shader)>(
+        &TableBase::m_gl_MaxGeometryOutputVertices),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&step_20B20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&step_20B20B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01b20D00E),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findMSB_10E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findMSB_10E),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findMSB_10D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findMSB_10D),
+    Rule::Get<Spec::GLSL, 400, Shader::FRAGMENT, 0>(&interpolateAtOffset_00B10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00t00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLodOffset_00S20B00B20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLodOffset_00S20B00B20D),
+    Rule::Get<Spec::GLSL, 400, Shader::FRAGMENT, 0>(&textureQueryLod_00p00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageStore_00z10D30D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageStore_00z10D30D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&outerProduct_10B20B),
+    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&outerProduct_10B20B),
+    Rule::Get<Spec::GLSL, 450, Shader::FRAGMENT, 0>(&fwidthFine_10B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&cos_30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&cos_30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&unpackHalf2x16_00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&unpackHalf2x16_00E),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageStore_01J20D30E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageStore_01J20D30E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&outerProduct_10B10B),
+    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&outerProduct_10B10B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01M00D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeTextureImageUnits),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeTextureImageUnits),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01Y10D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01Y10D00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&sin_30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&sin_30B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01O10D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01Q10D00D00D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00L20B00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00L20B00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageStore_01A10D30E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageStore_01A10D30E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01H20D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01H20D00E),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&shadow1D_00m20B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_10E10E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_10E10E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&max_30B30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&max_30B30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_10E10E10E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_10E10E10E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(EXT_YUV_target)>(&texture_00N10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGrad_00t30B00B00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01E20D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01E20D00E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetchOffset_00a20D00D10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetchOffset_00a20D00D10D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageLoad_01V20D00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&notFunc_20F),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&notFunc_20F),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01F20D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01Q10D00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01Q10D00D00E),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&imageAtomicExchange_01F20D00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageStore_01L00D30D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&outerProduct_20B20B),
+    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&outerProduct_20B20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLodOffset_00R20B00B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLodOffset_00R20B00B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureOffset_00p10B00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00h20B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01B20D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01B20D00E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGrad_00J30B20B20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGrad_00J30B20B20B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01R10D00D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01R10D00D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLod_00X10B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00X10B00B),
+    Rule::Get<Spec::ESSL, 310, Shader::GEOMETRY_EXT, EXT_INDEX(EXT_geometry_shader)>(
+        &BuiltInVariable::kgl_InvocationID),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01R10D00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01E20D00E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&radians_10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&radians_10B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00n10B00B10D),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&noise2_10B),
+    Rule::Get<Spec::GLSL, 400, Shader::FRAGMENT, 0>(&textureQueryLod_00a10B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00e20B00B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00e20B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&distance_10B10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&distance_10B10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00Z20B20B20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00Z20B20B20B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&sign_00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&sign_00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldReverse_00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldReverse_00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldReverse_00E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldReverse_00E),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldExtract_30E00D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldExtract_30E00D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLod_00I10B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00I10B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&greaterThanEqual_10D10D),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&greaterThanEqual_10D10D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageStore_01f00D30B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01I20D00E00E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&degrees_30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&degrees_30B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&inversesqrt_30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&inversesqrt_30B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&inversesqrt_30C),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01I20D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00v20B00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&intBitsToFloat_20D),
+    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&intBitsToFloat_20D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&exp_20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&exp_20B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01A10D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01A10D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&acosh_00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&acosh_00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&log_10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&log_10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLodOffset_00S30B00B20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLodOffset_00S30B00B20D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00L20B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00L20B),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&textureProj_00n30B),
+    Rule::Get<Spec::GLSL, 400, Shader::FRAGMENT, 0>(&textureQueryLod_00i00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00p20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&outerProduct_30B20B),
+    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&outerProduct_30B20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00S20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00S20B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicXor_00D00D),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicXor_00D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetch_00Y20D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetch_00Y20D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01P10D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01P10D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01N10D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01N10D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldExtract_10D00D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldExtract_10D00D00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&sign_30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&sign_30B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&sign_30C),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&sign_30D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&sign_30D),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&texture_00Y20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00Y20B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&dFdy_20B),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&dFdy_20B),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(&dFdyExt_20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProj_00Y30B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProj_00Y30B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureOffset_00X10B10D00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureOffset_00X10B10D00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&memoryBarrierBuffer_),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&memoryBarrierBuffer_),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&isinf_00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&isinf_00B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&isinf_00C),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_20D00D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_20D00D00D),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, 0>(&texture2DProj_00I20B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&texture2DProj_00I20B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&mod_30B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&mod_30B00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01A10D00E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffsets_00O10B70D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00f20B00B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00f20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProj_00m30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&greaterThan_20E20E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&greaterThan_20E20E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLod_00I30B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLod_00I30B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&refract_00B00B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&refract_00B00B00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_geometry_shader)>(
+        &TableBase::m_gl_MaxGeometryImageUniforms),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_00y10D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_00y10D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01X10D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01X10D00E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00e00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00e00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetch_00a20D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetch_00a20D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&step_00C10C),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&frexp_30B30D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&frexp_30B30D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01Y10D00E),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00t00B00B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&min_30C00C),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01X10D00E00E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00I10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00I10B),
+    Rule::Get<Spec::ESSL, 300, Shader::VERTEX, 0>(&BuiltInVariable::kgl_InstanceID),
+    Rule::Get<Spec::GLSL, 0, Shader::VERTEX, 0>(&BuiltInVariable::kgl_InstanceID),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&normalize_20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&normalize_20B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&normalize_20C),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01H20D00D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&inverse_F0B),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&inverse_F0B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageLoad_01K00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&frexp_20C20D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&atan_00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&atan_00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGatherOffset_00R10B10D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00R10B10D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01h00D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01h00D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&greaterThan_30E30E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&greaterThan_30E30E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageStore_01U20D00D30D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetchOffset_00p10D00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01J20D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01J20D00E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&TableBase::m_gl_DepthRange),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_DepthRange),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01S10D00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01K00D00D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProj_00o30B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01I20D00E),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldExtract_20D00D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldExtract_20D00D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&texture_00L20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00L20B00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01L00D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01L00D00D),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&mix_30D30D30F),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&imageAtomicExchange_01Z20D00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01Z20D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01Z20D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01f00D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01f00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageLoad_01h00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01E20D00E00E),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&textureProjOffset_00O30B10D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&floor_10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&floor_10B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&floor_10C),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01R10D00D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01R10D00D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLodOffset_00o10B00B00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00x30B00D),
+    Rule::Get<Spec::GLSL, 400, Shader::FRAGMENT, 0>(&interpolateAtSample_10B00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01F20D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01F20D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&outerProduct_10B30B),
+    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&outerProduct_10B30B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01O10D00E00E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&cos_00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&cos_00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01F20D00E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&frexp_00C00D),
+    Rule::Get<Spec::GLSL, 460, Shader::ALL, 0>(&atomicCounterCompSwap_00G00E00E),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureOffset_00a20B10D00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureOffset_00a20B10D00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00X10B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00X10B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureOffset_00R10B10D00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureOffset_00R10B10D00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGatherOffset_00d10B00B10D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00d10B00B10D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxFragmentImageUniforms),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxFragmentImageUniforms),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00i00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&equal_20E20E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&equal_20E20E),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&uaddCarry_00E00E00E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&uaddCarry_00E00E00E),
+    Rule::Get<Spec::GLSL, 400, Shader::FRAGMENT, 0>(&textureQueryLod_00T20B),
+    Rule::Get<Spec::ESSL, 100, Shader::ALL, 0>(&textureCube_00K20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&textureCube_00K20B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01U20D00D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01U20D00D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&matrixCompMult_90B90B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01T20D00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01T20D00D00E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGradOffset_00p10B00B00B00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLodOffset_00g30B00B00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_30E00E00E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_30E00E00E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&asin_00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&asin_00B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProjOffset_00J30B20D00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProjOffset_00J30B20D00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageLoad_01W10D),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&texelFetch_00w00D),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&imageAtomicExchange_01b20D00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&notEqual_30E30E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&notEqual_30E30E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&lessThanEqual_10E10E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&lessThanEqual_10E10E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&inversesqrt_20C),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&inversesqrt_20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&inversesqrt_20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00i20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureOffset_00u10B00D00B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&reflect_00C00C),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicAdd_00E00E),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicAdd_00E00E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&intBitsToFloat_30D),
+    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&intBitsToFloat_30D),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&textureProjGradOffset_00v20B10B10B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00X10B10B10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00X10B10B10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&greaterThanEqual_30E30E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&greaterThanEqual_30E30E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&mix_20B20B20F),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&mix_20B20B20F),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexAtomicCounters),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexAtomicCounters),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&mix_20B20B20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&mix_20B20B20B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&any_10F),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&any_10F),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGradOffset_00d30B10B10B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGradOffset_00d30B10B10B10D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageLoad_01X10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjOffset_00I30B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjOffset_00I30B10D),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&imageAtomicExchange_01W10D00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01W10D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01W10D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureOffset_00X10B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureOffset_00X10B10D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01K00D00E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00R10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00R10B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01Z20D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageStore_01M00D30E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&radians_00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&radians_00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageStore_01Y10D30E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&step_10B10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&step_10B10B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, EXT_INDEX(EXT_blend_func_extended)>(
+        &TableBase::m_gl_MaxDualSourceDrawBuffersEXT),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01Y10D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01Y10D00E),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldReverse_10E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldReverse_10E),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldReverse_10D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldReverse_10D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageStore_01g00D30D),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&textureProjGradOffset_00q20B10B10B10D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01S10D00D00E),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicXor_00E00E),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicXor_00E00E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&mix_00C00C00F),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLodOffset_00g00B00B00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&greaterThan_30B30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&greaterThan_30B30B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxFragmentAtomicCounters),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxFragmentAtomicCounters),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&faceforward_20B20B20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&faceforward_20B20B20B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureSize_00x00D),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProj_00S30B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProj_00S30B00B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&fma_20B20B20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLod_00o10B00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01J20D00E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&outerProduct_30B30B),
+    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&outerProduct_30B30B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&exp_30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&exp_30B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitCount_10E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitCount_10E),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitCount_10D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitCount_10D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&log_00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&log_00B),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&mix_00F00F00F),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01M00D00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01T20D00D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01T20D00D00D),
+    Rule::Get<Spec::GLSL, 460, Shader::ALL, 0>(&subpassLoad_01l00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageStore_01N10D30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&acosh_30B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&acosh_30B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01Y10D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01Y10D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGradOffset_00X10B10B10B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGradOffset_00X10B10B10B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetchOffset_00X10D00D10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetchOffset_00X10D00D10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&packUnorm2x16_10B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&packUnorm2x16_10B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00h20B00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&umulExtended_20E20E20E20E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&umulExtended_20E20E20E20E),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00m20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGradOffset_00g30B00B00B00D),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProj_00o30B00B),
+    Rule::Get<Spec::ESSL, 100, Shader::VERTEX, 0>(&textureCubeLod_00K20B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::VERTEX, 0>(&textureCubeLod_00K20B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00L00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00L00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01L00D00E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_20E00E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_20E00E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProj_00S30B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProj_00S30B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&dFdy_30B),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&dFdy_30B),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(&dFdyExt_30B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01W10D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&isinf_10C),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&isinf_10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&isinf_10B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffsets_00a20B70D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexTextureImageUnits),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexTextureImageUnits),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&greaterThanEqual_30B30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&greaterThanEqual_30B30B),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(EXT_shader_texture_lod)>(
+        &texture2DProjLodEXT_00I20B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_FrontFacing),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_FrontFacing),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageStore_01C20D30D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageStore_01C20D30D),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProjOffset_00t10B00D00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01Z20D00D00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&acos_10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&acos_10B),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, 0>(&textureCube_00K20B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&textureCube_00K20B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&lessThan_10B10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&lessThan_10B10B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeAtomicCounterBuffers),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeAtomicCounterBuffers),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00f00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00f00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageLoad_01B20D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageLoad_01B20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetchOffset_00h10D00D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&mod_20C00C),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01g00D00D),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(ARM_shader_framebuffer_fetch)>(
+        &BuiltInVariable::kgl_LastFragColorARM),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&lessThanEqual_20D20D),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&lessThanEqual_20D20D),
+    Rule::Get<Spec::GLSL, 400, Shader::FRAGMENT, 0>(&textureQueryLod_00k20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLod_00Y30B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLod_00Y30B00B),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(EXT_blend_func_extended)>(
+        &BuiltInVariable::kgl_SecondaryFragColorEXT),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01U20D00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01U20D00D00E),
+    Rule::Get<Spec::ESSL, 300, Shader::VERTEX, EXT_INDEX(ANGLE_base_vertex_base_instance)>(
+        &BuiltInVariable::kgl_BaseInstance),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&transpose_B0B),
+    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&transpose_B0B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01b20D00E),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&mix_20F20F20F),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&smoothstep_00B00B30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&smoothstep_00B00B30B),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&imageAtomicExchange_01M00D00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01F20D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01M00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01M00D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01F20D00E00E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(EXT_YUV_target)>(&texelFetch_00N10D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00a00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00a00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01T20D00D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjOffset_00Y30B20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjOffset_00Y30B20D),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&textureOffset_00n20B10D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&atan_30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&atan_30B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffsets_00R10B70D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01b20D00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&ceil_10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&ceil_10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00S00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00S00D),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&imageAtomicExchange_01S10D00D00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicCounterDecrement_00G),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&atomicCounterDecrement_00G),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&ceil_30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&ceil_30B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00t00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&memoryBarrier_),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&memoryBarrier_),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00f30B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00f30B),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&imageSamples_01R),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetch_00R10D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetch_00R10D00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&sign_20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&sign_20B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&smoothstep_30B30B30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&smoothstep_30B30B30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00R10B10B10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00R10B10B10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&min_00D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&min_00D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProj_00t10B00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01W10D00E00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01V20D00D00E),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&ldexp_20B20D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&ldexp_20B20D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&greaterThanEqual_30D30D),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&greaterThanEqual_30D30D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageLoad_01D20D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageLoad_01D20D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findLSB_10E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findLSB_10E),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&texture_00Z20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00Z20B00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01S10D00D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01S10D00D00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&cos_10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&cos_10B),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&texelFetch_00v10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00e30B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00e30B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageStore_01W10D30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00T00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00T00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01g00D00E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00u00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGradOffset_00Y30B20B20B20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGradOffset_00Y30B20B20B20D),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&noise3_30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00T20B20B20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00T20B20B20B),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&texture1DProj_00g10B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProjOffset_00d30B10D00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProjOffset_00d30B10D00B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffsets_00X10B70D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01U20D00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01U20D00D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01h00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01h00D00E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&matrixCompMult_50B50B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&matrixCompMult_50B50B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&equal_30B30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&equal_30B30B),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&imageAtomicExchange_01E20D00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLod_00U20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00U20B00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01I20D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01I20D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureOffset_00h10B00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00p10B00B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&max_20C20C),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&max_10B10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&max_10B10B),
+    Rule::Get<Spec::ESSL, 0, Shader::VERTEX, 0>(&BuiltInVariable::kgl_PointSize),
+    Rule::Get<Spec::GLSL, 0, Shader::VERTEX, 0>(&BuiltInVariable::kgl_PointSize),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01B20D00E00E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&asin_10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&asin_10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&sinh_00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&sinh_00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01g00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01h00D00E00E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureOffset_00S20B20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureOffset_00S20B20D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&fma_20C20C20C),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01N10D00D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProj_00R20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProj_00R20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&greaterThan_10E10E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&greaterThan_10E10E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01M00D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01M00D00D),
+    Rule::Get<Spec::GLSL, 150, Shader::GEOMETRY, 0>(&EmitVertex_),
+    Rule::Get<Spec::ESSL, 310, Shader::GEOMETRY_EXT, EXT_INDEX(EXT_geometry_shader)>(&EmitVertex_),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&smoothstep_20B20B20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&smoothstep_20B20B20B),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&textureSamples_00b),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureOffset_00J20B20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureOffset_00J20B20D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetch_00J20D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetch_00J20D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01V20D00D00E),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&imageAtomicExchange_01V20D00D00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01Y10D00E00E),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&imageAtomicExchange_00y10D00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_00y10D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_00y10D00E),
+    Rule::Get<Spec::ESSL, 300, Shader::NOT_COMPUTE, EXT_INDEX(OVR_multiview)>(
+        &BuiltInVariable::kgl_ViewID_OVR),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&radians_30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&radians_30B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&fract_30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&fract_30B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01B20D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01B20D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01H20D00E),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&uaddCarry_20E20E20E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&uaddCarry_20E20E20E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGrad_00X30B10B10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGrad_00X30B10B10B),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&textureSamples_00P),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&textureProjOffset_00v20B10D),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&shadow2D_00d20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetchOffset_00o00D00D00D),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&textureSamples_00V),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&textureSamples_00W),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&textureProjGrad_00q30B10B10B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00O10B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_10D00D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_10D00D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeImageUniforms),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeImageUniforms),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLod_00L20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00L20B00B),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&imageAtomicExchange_01A10D00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01V20D00D00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01A10D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01A10D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01b20D00D),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&texture_00n20B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&ldexp_20C20D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_00E00E00E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_00E00E00E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&length_20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&length_20B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&ldexp_00B00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&ldexp_00B00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01N10D00E),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldInsert_00D00D00D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldInsert_00D00D00D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGrad_00Y30B20B20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGrad_00Y30B20B20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&roundEven_30B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&roundEven_30B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&roundEven_30C),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&acosh_20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&acosh_20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&atanh_10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&atanh_10B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&length_20C),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&clamp_10B10B10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&clamp_10B10B10B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGatherOffset_00L20B10D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00L20B10D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitCount_00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitCount_00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitCount_00E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitCount_00E),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&imageAtomicExchange_01N10D00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&floatBitsToInt_30B),
+    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&floatBitsToInt_30B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&max_20B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&max_20B00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_00z10D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetchOffset_00Y20D00D20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetchOffset_00Y20D00D20D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicExchange_00E00E),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicExchange_00E00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01h00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01h00D00E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&ldexp_30C30D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00o00B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffsets_00X10B70D00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&lessThanEqual_20B20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&lessThanEqual_20B20B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&min_10B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&min_10B00B),
+    Rule::Get<Spec::GLSL, 400, Shader::FRAGMENT, 0>(&textureQueryLod_00f10B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&smoothstep_10C10C10C),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffsets_00U20B70D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01L00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01L00D00E),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&mix_30F30F30F),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&abs_20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&abs_20D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&abs_20C),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&abs_20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&abs_20B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&lessThanEqual_10B10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&lessThanEqual_10B10B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01f00D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01f00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01a20D00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&mix_00B00B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&mix_00B00B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&mix_00B00B00F),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&mix_00B00B00F),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00s30B00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProj_00I20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProj_00I20B),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&imageAtomicExchange_01B20D00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLodOffset_00p10B00B00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexAtomicCounterBuffers),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexAtomicCounterBuffers),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&unpackDouble2x32_00C),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&acos_00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&acos_00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGradOffset_00J20B20B20B20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGradOffset_00J20B20B20B20D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&fma_00C00C00C),
+    Rule::Get<Spec::ESSL, 100, Shader::ALL, EXT_INDEX(EXT_shader_texture_lod)>(
+        &texture2DGradEXT_00I10B10B10B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01G20D00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01I20D00D),
+    Rule::Get<Spec::ESSL, 100, Shader::ALL, EXT_INDEX(EXT_shader_texture_lod)>(
+        &texture2DProjGradEXT_00I30B10B10B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&fma_30B30B30B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01L00D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00i20B00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeWorkGroupCount),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeWorkGroupCount),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&clamp_20C00C00C),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01X10D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_00y10D00E00E),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&mix_30E30E30F),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01b20D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01G20D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01G20D00E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffsets_00I10B70D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01S10D00D00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&atan_20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&atan_20B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01Z20D00E00E),
+    Rule::Get<Spec::GLSL, 400, Shader::FRAGMENT, 0>(&interpolateAtSample_30B00D),
+    Rule::Get<Spec::GLSL, 450, Shader::FRAGMENT, 0>(&dFdxCoarse_30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(OES_EGL_image_external_essl3)>(
+        &texture_00M10B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&min_10B10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&min_10B10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLodOffset_00h10B00B00D),
+    Rule::Get<Spec::GLSL, 400, Shader::GEOMETRY, 0>(&EndStreamPrimitive_00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&pow_10B10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&pow_10B10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00Y20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00Y20B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01P10D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&texture_00X10B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00X10B00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&frexp_00B00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&frexp_00B00D),
+    Rule::Get<Spec::ESSL, 100, Shader::ALL, 0>(&texture2D_00I10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&texture2D_00I10B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageLoad_01O10D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&ceil_20C),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&ceil_20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&ceil_20B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01b20D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01b20D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01P10D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01P10D00E),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&imageAtomicExchange_01P10D00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjOffset_00R20B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjOffset_00R20B10D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageStore_01V20D00D30E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01T20D00D00E00E),
+    Rule::Get<Spec::GLSL, 460, Shader::ALL, 0>(&subpassLoad_01m00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureOffset_00I10B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureOffset_00I10B10D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&min_20B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&min_20B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&reflect_00B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&reflect_00B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&noise4_10B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&sqrt_10C),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&sqrt_10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&sqrt_10B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01Z20D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01Z20D00E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_20E20E20E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_20E20E20E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGradOffset_00g00B00B00B00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00q20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&noise3_00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01G20D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01G20D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01C20D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01C20D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01F20D00E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLod_00d30B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLod_00d30B00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageStore_01a20D30D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageLoad_01H20D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageLoad_01H20D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGradOffset_00I20B10B10B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGradOffset_00I20B10B10B10D),
+    Rule::Get<Spec::GLSL, 400, Shader::FRAGMENT, 0>(&interpolateAtSample_20B00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&reflect_10B10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&reflect_10B10B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&refract_10B10B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&refract_10B10B00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01h00D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&mix_20C20C20F),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01X10D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01X10D00E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&mix_20C20C20C),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&textureOffset_00v10B10D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01P10D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&sinh_30B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&sinh_30B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00m00D),
+    Rule::Get<Spec::GLSL, 400, Shader::FRAGMENT, 0>(&textureQueryLod_00e20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&asinh_20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&asinh_20B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01C20D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01I20D00D00D),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&textureProj_00O20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(ARB_texture_rectangle)>(&textureProj_00O20B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01M00D00E00E),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&frexp_10B10D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&frexp_10B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&inverse_50B),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&inverse_50B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&dot_10B10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&dot_10B10B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01T20D00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01T20D00D00E),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&noise2_00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGradOffset_00o10B00B00B00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&radians_20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&radians_20B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicCompSwap_00E00E00E),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicCompSwap_00E00E00E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00I00B00B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00Y20B20B20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00Y20B20B20B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexUniformVectors),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexUniformVectors),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureOffset_00o00B00D00B),
+    Rule::Get<Spec::GLSL, 0, Shader::VERTEX, 0>(&ftransform_),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProj_00X20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProj_00X20B),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&textureProjOffset_00n30B10D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_geometry_shader)>(
+        &TableBase::m_gl_MaxGeometryUniformComponents),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&greaterThanEqual_20E20E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&greaterThanEqual_20E20E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(OES_EGL_image_external_essl3)>(
+        &textureProj_00M20B),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&texture3DProjLod_00J30B00B),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_texture_3D)>(
+        &texture3DProjLod_00J30B00B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&isinf_30C),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01S10D00D00D),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&mix_10D10D10F),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGrad_00g10B00B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&log_20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&log_20B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01D20D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01D20D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureOffset_00h10B00D00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&modf_30B30B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&modf_30B30B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&roundEven_20C),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&roundEven_20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&roundEven_20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&outerProduct_30B10B),
+    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&outerProduct_30B10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProj_00J30B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProj_00J30B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_00y10D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_00y10D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01F20D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01F20D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLodOffset_00t00B00B00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&floatBitsToInt_20B),
+    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&floatBitsToInt_20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetch_00U20D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetch_00U20D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_00D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_00D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicMin_00E00E),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicMin_00E00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01Q10D00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01Q10D00D00E),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&textureGradOffset_00v10B10B10B10D),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&textureGrad_00n20B10B10B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageLoad_01S10D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_20E20E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_20E20E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01F20D00D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&abs_10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&abs_10D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&abs_10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&abs_10B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&abs_10C),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(EXT_frag_depth)>(
+        &TableBase::m_gl_FragDepthEXT),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01V20D00D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&modf_30C30C),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01g00D00E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00i20B00B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProj_00g10B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&equal_20B20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&equal_20B20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLodOffset_00X20B00B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLodOffset_00X20B00B10D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&max_30C00C),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01W10D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffsets_00a20B70D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&texture_00U20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00U20B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProj_00I30B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProj_00I30B),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&mix_00E00E00F),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01h00D00D00D),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&mix_00D00D00F),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&textureProjOffset_00q20B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00i20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGradOffset_00a20B10B10B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGradOffset_00a20B10B10B10D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&smoothstep_00B00B20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&smoothstep_00B00B20B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureLod_00s30B00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01C20D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01C20D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01g00D00E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&notEqual_30B30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&notEqual_30B30B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01W10D00D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGatherOffset_00f20B00B10D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00f20B00B10D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageLoad_01T20D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageSize_00y),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&imageSize_00y),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01W10D00E),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageSize_00z),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&imageSize_00z),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&mod_10C10C),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01g00D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&faceforward_00C00C00C),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00a20B10B10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00a20B10B10B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01R10D00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01T20D00D00E),
+    Rule::Get<Spec::GLSL, 450, Shader::FRAGMENT, 0>(&dFdxCoarse_00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01a20D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&texture_00J20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00J20B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&refract_20B20B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&refract_20B20B00B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&ceil_30C),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_geometry_shader)>(
+        &TableBase::m_gl_MaxGeometryOutputComponents),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&noise1_30B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&log2_30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&log2_30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGrad_00d30B10B10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGrad_00d30B10B10B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&mod_20C20C),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&fract_30C),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetch_00t00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01L00D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_30E30E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_30E30E),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxFragmentAtomicCounterBuffers),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxFragmentAtomicCounterBuffers),
+    Rule::Get<Spec::ESSL, 310, Shader::GEOMETRY_EXT, EXT_INDEX(EXT_geometry_shader)>(
+        &TableBase::m_gl_in),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&noise4_00B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&distance_10C10C),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLodOffset_00J30B00B20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLodOffset_00J30B00B20D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01H20D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01H20D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageStore_01h00D30E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffsets_00d10B00B70D),
+    Rule::Get<Spec::GLSL, 150, Shader::ALL, 0>(&texelFetch_00c20D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(OES_texture_storage_multisample_2d_array)>(
+        &texelFetchExt_00c20D00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&sqrt_00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&sqrt_00B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&sqrt_00C),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLod_00R30B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLod_00R30B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&noise3_10B),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&texelFetch_00q10D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01F20D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00m20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProjOffset_00m30B00D00B),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&textureProjGrad_00v30B10B10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_20D20D20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_20D20D20D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01P10D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01C20D00E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&clamp_00C00C00C),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01b20D00E00E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_10E00E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_10E00E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00U20B10B10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00U20B10B10B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01B20D00D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageLoad_00z10D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageLoad_00z10D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&clamp_30C00C00C),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&sinh_20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&sinh_20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&matrixCompMult_E0BE0B),
+    Rule::Get<Spec::GLSL, 450, Shader::FRAGMENT, 0>(&fwidthFine_00B),
+    Rule::Get<Spec::ESSL, 310, Shader::GEOMETRY_EXT, EXT_INDEX(EXT_geometry_shader)>(
+        &TableBase::m_gl_PerVertex),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGradOffset_00m20B00B00B00D),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&textureQueryLevels_00p),
+    Rule::Get<Spec::ESSL, 310, Shader::COMPUTE, 0>(&BuiltInVariable::kgl_WorkGroupSize),
+    Rule::Get<Spec::GLSL, 0, Shader::COMPUTE, 0>(&BuiltInVariable::kgl_WorkGroupSize),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&asinh_30B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&asinh_30B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&cross_20C20C),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00a20B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00a20B),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&textureProjGradOffset_00O20B10B10B10D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&pow_30B30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&pow_30B30B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01G20D00E00E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&smoothstep_10B10B10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&smoothstep_10B10B10B),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&textureProj_00O30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(ARB_texture_rectangle)>(&textureProj_00O30B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01Q10D00D00E),
+    Rule::Get<Spec::GLSL, 400, Shader::FRAGMENT, 0>(&textureQueryLod_00R10B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01T20D00D00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01R10D00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01R10D00D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01E20D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01E20D00E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&isnan_00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&isnan_00B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&isnan_00C),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imulExtended_10D10D10D10D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&imulExtended_10D10D10D10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGrad_00o10B00B00B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&refract_10C10C00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&min_00E00E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&min_00E00E),
+    Rule::Get<Spec::ESSL, 100, Shader::ALL, 0>(&texture2DProj_00I30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&texture2DProj_00I30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGradOffset_00I10B10B10B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGradOffset_00I10B10B10B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLodOffset_00J20B00B20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLodOffset_00J20B00B20D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&notEqual_20B20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&notEqual_20B20B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicCompSwap_00D00D00D),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicCompSwap_00D00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01W10D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01W10D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureOffset_00i20B00D),
+    Rule::Get<Spec::GLSL, 450, Shader::FRAGMENT, 0>(&dFdyFine_00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLod_00a20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00a20B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(EXT_YUV_target)>(&textureProj_00N30B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&refract_30C30C00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&equal_30D30D),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&equal_30D30D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&packSnorm2x16_10B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&packSnorm2x16_10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&floatBitsToUint_30B),
+    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&floatBitsToUint_30B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageLoad_00y10D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageLoad_00y10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureOffset_00R10B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureOffset_00R10B10D),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&textureProjGrad_00q20B10B10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGradOffset_00R20B10B10B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGradOffset_00R20B10B10B10D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&ldexp_30B30D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&ldexp_30B30D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&max_30B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&max_30B00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01Q10D00D00D),
+    Rule::Get<Spec::GLSL, 460, Shader::ALL, 0>(&atomicCounterOr_00G00E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&step_30B30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&step_30B30B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01T20D00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01T20D00D00E),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProj_00I30B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProj_00I30B00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01D20D00E),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureOffset_00g00B00D00B),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&imageAtomicExchange_01D20D00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01g00D00E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&abs_00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&abs_00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&abs_00C),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&abs_00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&abs_00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLod_00R10B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00R10B00B),
+    Rule::Get<Spec::GLSL, 450, Shader::FRAGMENT, 0>(&dFdxCoarse_10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&texture1D_00g00B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&frexp_10C10D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01B20D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01g00D00E),
+    Rule::Get<Spec::ESSL, 100, Shader::VERTEX, 0>(&texture2DLod_00I10B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::VERTEX, 0>(&texture2DLod_00I10B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGradOffset_00X20B10B10B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGradOffset_00X20B10B10B10D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&round_20C),
+    Rule::Get<Spec::GLSL, 150, Shader::GEOMETRY, 0>(&EndPrimitive_),
+    Rule::Get<Spec::ESSL, 310, Shader::GEOMETRY_EXT, EXT_INDEX(EXT_geometry_shader)>(
+        &EndPrimitive_),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&step_00B30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&step_00B30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&round_20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&round_20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&equal_30E30E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&equal_30E30E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01R10D00D00E00E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&step_00C20C),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&dot_00C00C),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&max_30C30C),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicOr_00D00D),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicOr_00D00D),
+    Rule::Get<Spec::ESSL, 100, Shader::ALL, 0>(&texture2DProj_00M20B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&notEqual_10D10D),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&notEqual_10D10D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureSize_00V),
+    Rule::Get<Spec::GLSL, 150, Shader::ALL, 0>(&textureSize_00V),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(ANGLE_texture_multisample)>(
+        &textureSizeExt_00V),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01h00D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&min_20C00C),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01G20D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01G20D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findLSB_30D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findLSB_30D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findLSB_30E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findLSB_30E),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProj_00X20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProj_00X20B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&shadow2D_00d20B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01N10D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01N10D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGatherOffset_00U20B10D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00U20B10D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&faceforward_10B10B10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&faceforward_10B10B10B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01h00D00E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&min_10D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&min_10D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01B20D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01B20D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::GEOMETRY, 0>(&EmitStreamVertex_00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01J20D00D00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&all_20F),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&all_20F),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageSize_01J),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&imageSize_01J),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&imageSize_01K),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageSize_01H),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&imageSize_01H),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageSize_01I),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&imageSize_01I),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&packHalf2x16_10B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&packHalf2x16_10B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProj_00I20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProj_00I20B00B),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&imageSize_01L),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&imageSize_01M),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageSize_01B),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&imageSize_01B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageSize_01C),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&imageSize_01C),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageSize_01A),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&imageSize_01A),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageSize_01F),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&imageSize_01F),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageSize_01G),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&imageSize_01G),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageSize_01D),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&imageSize_01D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageSize_01E),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&imageSize_01E),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&imageSize_01Z),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&imageAtomicExchange_01L00D00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01Z20D00E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetch_00X10D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetch_00X10D00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&notEqual_30F30F),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&notEqual_30F30F),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&imageSize_01R),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&imageSize_01S),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&imageSize_01P),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&imageSize_01Q),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&imageSize_01V),
+    Rule::Get<Spec::GLSL, 400, Shader::FRAGMENT, 0>(&textureQueryLod_00g00B),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&imageSize_01T),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&imageSize_01U),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&imageSize_01h),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&fract_20C),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&fract_20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&fract_20B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGatherOffset_00X10B10D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00X10B10D),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&imageSize_01c),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&imageSize_01a),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&imageSize_01f),
+    Rule::Get<Spec::ESSL, 100, Shader::ALL, EXT_INDEX(EXT_shader_texture_lod)>(
+        &texture2DProjGradEXT_00I20B10B10B),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&imageSize_01d),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLod_00S20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00S20B00B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&step_30C30C),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01J20D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_FragDepth),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_FragDepth),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00x30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&mix_30B30B30F),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&mix_30B30B30F),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&mix_30B30B30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&mix_30B30B30B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00Z20B00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00Z20B00D),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&noise4_30B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&sqrt_30C),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&sqrt_30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&sqrt_30B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageStore_01E20D30B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageStore_01E20D30B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&exp_00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&exp_00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_30D30D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_30D30D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_geometry_shader)>(
+        &TableBase::m_gl_MaxGeometryTextureImageUnits),
+    Rule::Get<Spec::GLSL, 400, Shader::FRAGMENT, 0>(&interpolateAtCentroid_10B),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&texture_00q10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(OES_EGL_image_external_essl3)>(
+        &textureSize_00M00D),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&textureSamples_00c),
+    Rule::Get<Spec::ESSL, 0, Shader::VERTEX, EXT_INDEX(ANGLE_base_vertex_base_instance)>(
+        &BuiltInVariable::kangle_BaseInstance),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&mix_10F10F10F),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGradOffset_00U20B10B10B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGradOffset_00U20B10B10B10D),
+    Rule::Get<Spec::ESSL, 0, Shader::VERTEX, 0>(&BuiltInVariable::kgl_Position),
+    Rule::Get<Spec::GLSL, 0, Shader::VERTEX, 0>(&BuiltInVariable::kgl_Position),
+    Rule::Get<Spec::ESSL, 310, Shader::GEOMETRY_EXT, EXT_INDEX(EXT_geometry_shader)>(
+        &TableBase::m_gl_PositionGS),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&textureGradOffset_00O10B10B10B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(OES_EGL_image_external_essl3)>(
+        &textureProj_00M30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGradOffset_00L20B10B10B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGradOffset_00L20B10B10B10D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01V20D00D00D),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&imageAtomicExchange_01J20D00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01J20D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01J20D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::FRAGMENT, 0>(&textureQueryLod_00l20B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01M00D00E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&dot_20B20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&dot_20B20B),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&textureProjGrad_00v20B10B10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLod_00S30B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLod_00S30B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGrad_00R20B10B10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGrad_00R20B10B10B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_00z10D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_00z10D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&normalize_30C),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&normalize_30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&normalize_30B),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&textureOffset_00O10B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGrad_00I20B10B10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGrad_00I20B10B10B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00e20B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01V20D00D00E),
+    Rule::Get<Spec::ESSL, 100, Shader::ALL, 0>(&texture2D_00M10B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01a20D00E),
+    Rule::Get<Spec::GLSL, 450, Shader::FRAGMENT, 0>(&fwidthFine_30B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00K20B00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00K20B00D),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(EXT_shader_texture_lod)>(
+        &textureCubeLodEXT_00K20B00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00T20B00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00T20B00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(EXT_YUV_target)>(&textureProj_00N20B),
+    Rule::Get<Spec::GLSL, 400, Shader::FRAGMENT, 0>(&textureQueryLod_00I10B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01A10D00E00E),
+    Rule::Get<Spec::GLSL, 450, Shader::FRAGMENT, 0>(&dFdyFine_10B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&modf_10C10C),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01E20D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01E20D00E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLodOffset_00X30B00B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLodOffset_00X30B00B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLod_00m30B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProjOffset_00g30B00D00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetchOffset_00U20D00D10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetchOffset_00U20D00D10D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_00z10D00E00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01D20D00E),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&textureProjGradOffset_00q30B10B10B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGradOffset_00d20B10B10B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGradOffset_00d20B10B10B10D),
+    Rule::Get<Spec::GLSL, 450, Shader::FRAGMENT, 0>(&fwidthCoarse_20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjOffset_00d30B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjOffset_00d30B10D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&equal_20F20F),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&equal_20F20F),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&mix_20C20C00C),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&usubBorrow_10E10E10E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&usubBorrow_10E10E10E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageStore_01S10D00D30E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&equal_10B10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&equal_10B10B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01Q10D00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01Q10D00D00E),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&imageAtomicExchange_01Q10D00D00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLodOffset_00U20B00B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLodOffset_00U20B00B10D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&isnan_10C),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&isnan_10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&isnan_10B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01H20D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01A10D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01A10D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01C20D00D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00R00B00B00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01W10D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01W10D00E),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicMin_00D00D),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicMin_00D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00X00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00X00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&greaterThan_10B10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&greaterThan_10B10B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&mix_00C00C00C),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_30D00D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_30D00D00D),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&mix_20E20E20F),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&floatBitsToInt_10B),
+    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&floatBitsToInt_10B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProjOffset_00R30B10D00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProjOffset_00R30B10D00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00U20B00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00U20B00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&floatBitsToInt_00B),
+    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&floatBitsToInt_00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageLoad_01a20D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&floatBitsToUint_00B),
+    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&floatBitsToUint_00B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&min_30C30C),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&textureSamples_00Q),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGradOffset_00i20B00B00B00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_00z10D00D),
+    Rule::Get<Spec::ESSL, 100, Shader::ALL, EXT_INDEX(ARB_texture_rectangle)>(
+        &texture2DRectProj_00O20B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&modf_20C20C),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&tan_20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&tan_20B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&floor_00C),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&floor_00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&floor_00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01O10D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01O10D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&mod_30C30C),
+    Rule::Get<Spec::ESSL, 0, Shader::VERTEX, EXT_INDEX(ANGLE_multi_draw)>(
+        &BuiltInVariable::kgl_DrawID),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureOffset_00t00B00D),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&texture3DLod_00J20B00B),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_texture_3D)>(
+        &texture3DLod_00J20B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&texture_00R10B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00R10B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&modf_00B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&modf_00B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&notEqual_20D20D),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&notEqual_20D20D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01R10D00D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01R10D00D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&ldexp_10C10D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_00y10D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_00y10D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&determinant_A0B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLodOffset_00i20B00B00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageStore_01D20D30E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageStore_01D20D30E),
+    Rule::Get<Spec::GLSL, 0, Shader::VERTEX, 0>(&shadow1DLod_00m20B00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01I20D00E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&distance_00C00C),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&isnan_30B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&isnan_30B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjOffset_00o30B00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&lessThanEqual_30D30D),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&lessThanEqual_30D30D),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, EXT_INDEX(OES_EGL_image_external_essl3)>(
+        &textureProj_00M30B00B),
+    Rule::Get<Spec::ESSL, 100, Shader::ALL, 0>(&texture2DProj_00M30B),
+    Rule::Get<Spec::GLSL, 460, Shader::ALL, 0>(&atomicCounterMax_00G00E),
+    Rule::Get<Spec::GLSL, 460, Shader::ALL, 0>(&atomicCounterExchange_00G00E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00I10B10B10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00I10B10B10B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&step_00B20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&step_00B20B),
+    Rule::Get<Spec::ESSL, 100, Shader::VERTEX, 0>(&texture2DProjLod_00I20B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::VERTEX, 0>(&texture2DProjLod_00I20B00B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&step_00C30C),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(EXT_YUV_target)>(&yuv_2_rgb_20B00H),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&texelFetch_00b10D00D),
+    Rule::Get<Spec::GLSL, 150, Shader::ALL, 0>(&texelFetch_00b10D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(ANGLE_texture_multisample)>(
+        &texelFetchExt_00b10D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProj_00J30B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProj_00J30B00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00R10B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00R10B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01K00D00E00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01V20D00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01V20D00D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01P10D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageLoad_01L00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&min_10D10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&min_10D10D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&all_30F),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&all_30F),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01P10D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01a20D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01S10D00D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01S10D00D00D),
+    Rule::Get<Spec::ESSL, 0, Shader::VERTEX, EXT_INDEX(ANGLE_base_vertex_base_instance)>(
+        &BuiltInVariable::kangle_BaseVertex),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldReverse_20D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldReverse_20D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldReverse_20E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldReverse_20E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01I20D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01I20D00E),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&imageAtomicExchange_01I20D00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_geometry_shader)>(
+        &TableBase::m_gl_MaxGeometryInputComponents),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00u20B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00v20B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&fract_10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&fract_10B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&fract_10C),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00O10B10D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::FRAGMENT, 0>(&textureQueryLod_00K20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLodOffset_00I10B00B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLodOffset_00I10B00B10D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01S10D00D00E00E),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&noise4_20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureOffset_00U20B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureOffset_00U20B10D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&min_30B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&min_30B00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_00y10D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_00y10D00E),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicAnd_00D00D),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicAnd_00D00D),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_FragColor),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_FragColor),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&exp_10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&exp_10B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitCount_30E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitCount_30E),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitCount_30D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitCount_30D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&unpackUnorm2x16_00E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&unpackUnorm2x16_00E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&sqrt_20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&sqrt_20B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&sqrt_20C),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00L20B10B10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00L20B10B10B),
+    Rule::Get<Spec::GLSL, 400, Shader::FRAGMENT, 0>(&interpolateAtCentroid_00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00o00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxImageUnits),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxImageUnits),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGrad_00o30B00B00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&packUnorm4x8_30B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&packUnorm4x8_30B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&texelFetch_00P10D00D),
+    Rule::Get<Spec::GLSL, 150, Shader::ALL, 0>(&texelFetch_00P10D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(ANGLE_texture_multisample)>(
+        &texelFetchExt_00P10D00D),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&texture_00O10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(ARB_texture_rectangle)>(&texture_00O10B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01M00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01M00D00E),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&texture_00e30B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00e30B00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01O10D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01O10D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01B20D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01B20D00D),
+    Rule::Get<Spec::ESSL, 0, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_FragCoord),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_FragCoord),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01X10D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00u10B00B00B),
+    Rule::Get<Spec::GLSL, 450, Shader::FRAGMENT, 0>(&fwidthFine_20B),
+    Rule::Get<Spec::GLSL, 400, Shader::FRAGMENT, 0>(&textureQueryLod_00o00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01E20D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01E20D00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&normalize_00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&normalize_00B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&normalize_00C),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&clamp_10C00C00C),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01f00D00E00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01A10D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01A10D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01K00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01K00D00E),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicMax_00D00D),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicMax_00D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGrad_00m30B00B00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01R10D00D00E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&floatBitsToUint_10B),
+    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&floatBitsToUint_10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLod_00J20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00J20B00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01D20D00D),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&textureGrad_00O10B10B10B),
+    Rule::Get<Spec::GLSL, 450, Shader::FRAGMENT, 0>(&dFdyFine_20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00I00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00I00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeWorkGroupSize),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeWorkGroupSize),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetchOffset_00R10D00D10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetchOffset_00R10D00D10D),
+    Rule::Get<Spec::GLSL, 450, Shader::FRAGMENT, 0>(&dFdxFine_10B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01K00D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01K00D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLodOffset_00X10B00B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLodOffset_00X10B00B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&texture_00T20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00T20B00B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffsets_00n10B00B70D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01K00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_00y10D00D00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&log_30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&log_30B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&notEqual_20F20F),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&notEqual_20F20F),
+    Rule::Get<Spec::GLSL, 460, Shader::ALL, 0>(&allInvocationsEqual_00F),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageStore_01G20D30E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageStore_01G20D30E),
+    Rule::Get<Spec::GLSL, 450, Shader::FRAGMENT, 0>(&dFdyCoarse_30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLod_00R20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLod_00R20B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&notEqual_30D30D),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&notEqual_30D30D),
+    Rule::Get<Spec::GLSL, 450, Shader::FRAGMENT, 0>(&fwidthCoarse_30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjOffset_00I20B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjOffset_00I20B10D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageStore_01X10D30D),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&textureQueryLevels_00l),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&textureQueryLevels_00m),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&textureQueryLevels_00o),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&textureQueryLevels_00h),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&textureQueryLevels_00i),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&textureQueryLevels_00k),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&textureQueryLevels_00d),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&textureQueryLevels_00e),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&textureQueryLevels_00f),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&textureQueryLevels_00g),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxDrawBuffers),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxDrawBuffers),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&textureQueryLevels_00a),
+    Rule::Get<Spec::GLSL, 460, Shader::ALL, 0>(&atomicCounterMin_00G00E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGradOffset_00u10B00B00B00D),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&textureQueryLevels_00x),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&textureQueryLevels_00t),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&textureQueryLevels_00u),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imulExtended_20D20D20D20D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&imulExtended_20D20D20D20D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&any_30F),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&any_30F),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&distance_30B30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&distance_30B30B),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&textureQueryLevels_00s),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&textureQueryLevels_00L),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&textureQueryLevels_00I),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&textureQueryLevels_00J),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&textureQueryLevels_00K),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01L00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01W10D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01W10D00E),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&texture3D_00J20B00B),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_texture_3D)>(&texture3D_00J20B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::VERTEX, 0>(&texture1DLod_00g00B00B),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&textureQueryLevels_00X),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&textureQueryLevels_00Y),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&textureQueryLevels_00Z),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&dot_30B30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&dot_30B30B),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&textureQueryLevels_00T),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&textureQueryLevels_00U),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&textureQueryLevels_00R),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&textureQueryLevels_00S),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxTextureImageUnits),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxTextureImageUnits),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&usubBorrow_20E20E20E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&usubBorrow_20E20E20E),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProj_00t30B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&shadow1DProj_00m30B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&clamp_30B00B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&clamp_30B00B00B),
+    Rule::Get<Spec::ESSL, 100, Shader::ALL, EXT_INDEX(ARB_texture_rectangle)>(
+        &texture2DRectProj_00O30B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01B20D00E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_10D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_10D00D),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&textureGradOffset_00n20B10B10B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_00D00D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_00D00D00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&floor_30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&floor_30B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&floor_30C),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageStore_01P10D30E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGradOffset_00S30B20B20B20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGradOffset_00S30B20B20B20D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&reflect_30C30C),
+    Rule::Get<Spec::ESSL, 0, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_PointCoord),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_PointCoord),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01D20D00E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00v10B10D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01D20D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&packDouble2x32_10E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&clamp_10B00B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&clamp_10B00B00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageStore_01F20D30D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageStore_01F20D30D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetchOffset_00S20D00D20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetchOffset_00S20D00D20D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&lessThan_10D10D),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&lessThan_10D10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00g00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGatherOffset_00U20B10D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00U20B10D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00q10B10D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00I10B00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00I10B00D),
+    Rule::Get<Spec::GLSL, 0, Shader::VERTEX, 0>(&texture1DProjLod_00g30B00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&texelFetch_00V10D00D),
+    Rule::Get<Spec::GLSL, 150, Shader::ALL, 0>(&texelFetch_00V10D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(ANGLE_texture_multisample)>(
+        &texelFetchExt_00V10D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01h00D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01h00D00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&atan_30B30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&atan_30B30B),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&imageAtomicExchange_01h00D00B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffsets_00R10B70D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01a20D00E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLod_00g30B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&max_00B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&max_00B00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01J20D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01J20D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01F20D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01F20D00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&exp2_20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&exp2_20B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&smoothstep_30C30C30C),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&imageAtomicExchange_00z10D00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_00z10D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_00z10D00D),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&textureProj_00q20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLod_00t10B00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01K00D00E),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&imageAtomicExchange_01K00D00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxCombinedTextureImageUnits),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxCombinedTextureImageUnits),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureSize_00k00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&reflect_20B20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&reflect_20B20B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01V20D00D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01V20D00D00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&equal_10F10F),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&equal_10F10F),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageLoad_01f00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&acos_30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&acos_30B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&dFdx_10B),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&dFdx_10B),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(&dFdxExt_10B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldReverse_30E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldReverse_30E),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldReverse_30D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldReverse_30D),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&texture1DProj_00g30B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&fract_00C),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&fract_00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&fract_00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&min_30E00E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&min_30E00E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&TableBase::m_gl_MinProgramTexelOffset),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MinProgramTexelOffset),
+    Rule::Get<Spec::GLSL, 400, Shader::FRAGMENT, 0>(&interpolateAtOffset_20B10B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_geometry_shader)>(
+        &TableBase::m_gl_MaxGeometryTotalOutputComponents),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&reflect_30B30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&reflect_30B30B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffsets_00I10B70D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::FRAGMENT, 0>(&interpolateAtCentroid_30B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00s30B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01X10D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01X10D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageStore_01Z20D30B),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&texture1D_00g00B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&pow_00B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&pow_00B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&mod_00B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&mod_00B00B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&faceforward_30C30C30C),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&roundEven_10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&roundEven_10B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&roundEven_10C),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&atanh_30B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&atanh_30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLod_00K20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00K20B00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitCount_20D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitCount_20D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitCount_20E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitCount_20E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetch_00L20D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetch_00L20D00D),
+    Rule::Get<Spec::GLSL, 450, Shader::FRAGMENT, 0>(&dFdxFine_00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&distance_20B20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&distance_20B20B),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&textureGradOffset_00q10B10B10B10D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&uaddCarry_30E30E30E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&uaddCarry_30E30E30E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00U00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00U00D),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProjOffset_00o10B00D00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxCombinedImageUniforms),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxCombinedImageUniforms),
+    Rule::Get<Spec::GLSL, 460, Shader::ALL, 0>(&atomicCounterXor_00G00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01g00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01g00D00E),
+    Rule::Get<Spec::ESSL, 310, Shader::COMPUTE, 0>(&BuiltInVariable::kgl_GlobalInvocationID),
+    Rule::Get<Spec::GLSL, 0, Shader::COMPUTE, 0>(&BuiltInVariable::kgl_GlobalInvocationID),
+    Rule::Get<Spec::ESSL, 300, Shader::VERTEX, 0>(&BuiltInVariable::kgl_VertexID),
+    Rule::Get<Spec::GLSL, 0, Shader::VERTEX, 0>(&BuiltInVariable::kgl_VertexID),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01L00D00E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&smoothstep_20C20C20C),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01U20D00D00D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicOr_00E00E),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicOr_00E00E),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&imageAtomicExchange_01T20D00D00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&mix_10B10B10F),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&mix_10B10B10F),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&reflect_10C10C),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&mix_10B10B10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&mix_10B10B10B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProj_00Y30B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProj_00Y30B00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01I20D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01I20D00E),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&frexp_20B20D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&frexp_20B20D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGatherOffset_00I10B10D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00I10B10D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&notEqual_20E20E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&notEqual_20E20E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLodOffset_00d20B00B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLodOffset_00d20B00B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&inverse_A0B),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&inverse_A0B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGrad_00X20B10B10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGrad_00X20B10B10B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageLoad_01J20D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageLoad_01J20D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00Y00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00Y00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&atan_20B20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&atan_20B20B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&usubBorrow_00E00E00E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&usubBorrow_00E00E00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01M00D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01M00D00D),
+    Rule::Get<Spec::GLSL, 450, Shader::FRAGMENT, 0>(&dFdyFine_30B),
+    Rule::Get<Spec::GLSL, 400, Shader::FRAGMENT, 0>(&textureQueryLod_00s20B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01N10D00D),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&texture_00v10B),
+    Rule::Get<Spec::GLSL, 460, Shader::ALL, 0>(&subpassLoad_01n00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLodOffset_00g10B00B00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&step_10C10C),
+    Rule::Get<Spec::GLSL, 400, Shader::FRAGMENT, 0>(&textureQueryLod_00x20B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&fma_10B10B10B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&smoothstep_00B00B10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&smoothstep_00B00B10B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01a20D00D00D),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&imageSize_01N),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00u10B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGradOffset_00m30B00B00B00D),
+    Rule::Get<Spec::GLSL, 450, Shader::FRAGMENT, 0>(&fwidthCoarse_00B),
+    Rule::Get<Spec::GLSL, 450, Shader::FRAGMENT, 0>(&dFdyCoarse_20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGradOffset_00o30B00B00B00D),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProj_00g30B00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldExtract_00E00D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldExtract_00E00D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageStore_01I20D30D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageStore_01I20D30D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&distance_30C30C),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&any_20F),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&any_20F),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffsets_00L20B70D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00g00B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&sin_10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&sin_10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(EXT_YUV_target)>(&textureSize_00N00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&mod_20B20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&mod_20B20B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01h00D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01h00D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGrad_00k30B20B20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjOffset_00o10B00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01A10D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01A10D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGradOffset_00f30B10B10B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGradOffset_00f30B10B10B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_20D20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_20D20D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_10D10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_10D10D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01N10D00E00E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGradOffset_00t00B00B00B00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&refract_30B30B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&refract_30B30B00B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&floor_20C),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&floor_20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&floor_20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetchOffset_00t00D00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01a20D00E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&matrixCompMult_F0BF0B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&matrixCompMult_F0BF0B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&umulExtended_10E10E10E10E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&umulExtended_10E10E10E10E),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&texture_00d20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00d20B00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01Z20D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01Z20D00E),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&umulExtended_30E30E30E30E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&umulExtended_30E30E30E30E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffsets_00q10B70D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGradOffset_00Y20B20B20B20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGradOffset_00Y20B20B20B20D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGatherOffset_00a20B10D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00a20B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00f30B10B10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00f30B10B10B),
+    Rule::Get<Spec::GLSL, 460, Shader::ALL, 0>(&atomicCounterSubtract_00G00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01C20D00E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&modf_20B20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&modf_20B20B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01Y10D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01Y10D00E),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&noise1_00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageLoad_01M00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01L00D00E00E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&length_30C),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&length_30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&length_30B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&mod_30B30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&mod_30B30B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&mix_10C10C10F),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_00z10D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_00z10D00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&exp2_30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&exp2_30B),
+    Rule::Get<Spec::GLSL, 460, Shader::ALL, 0>(&allInvocations_00F),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&max_20C00C),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&texture3DProj_00J30B00B),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_texture_3D)>(
+        &texture3DProj_00J30B00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageLoad_01Q10D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLod_00X30B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLod_00X30B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGradOffset_00I30B10B10B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGradOffset_00I30B10B10B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&cosh_30B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&cosh_30B),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&textureProj_00q30B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureOffset_00S20B20D00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureOffset_00S20B20D00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&usubBorrow_30E30E30E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&usubBorrow_30E30E30E),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProjOffset_00R20B10D00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProjOffset_00R20B10D00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01f00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01f00D00E),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureOffset_00t00B00D00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureOffset_00i20B00D00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&texture3DProj_00J30B),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_texture_3D)>(&texture3DProj_00J30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&matrixCompMult_B0BB0B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&lessThan_30B30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&lessThan_30B30B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&cross_20B20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&cross_20B20B),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&imageSize_01O),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&textureGrad_00q10B10B10B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&clamp_20B00B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&clamp_20B00B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&dFdx_00B),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&dFdx_00B),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(&dFdxExt_00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findLSB_00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findLSB_00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLodOffset_00o30B00B00D),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProj_00R20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProj_00R20B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&acos_20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&acos_20B),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&texelFetch_00r00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01B20D00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&max_20B20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&max_20B20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&lessThan_20E20E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&lessThan_20E20E),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProjOffset_00g10B00D00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&equal_30F30F),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&equal_30F30F),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&sign_00C),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&cosh_00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&cosh_00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldExtract_00D00D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldExtract_00D00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01E20D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01E20D00E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLod_00Z20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00Z20B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&sign_00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&sign_00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureOffset_00Y20B20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureOffset_00Y20B20D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&transpose_60B),
+    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&transpose_60B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01L00D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01O10D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01O10D00E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&faceforward_00B00B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&faceforward_00B00B00B),
+    Rule::Get<Spec::ESSL, 310, Shader::COMPUTE, 0>(&BuiltInVariable::kgl_NumWorkGroups),
+    Rule::Get<Spec::GLSL, 0, Shader::COMPUTE, 0>(&BuiltInVariable::kgl_NumWorkGroups),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01O10D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01O10D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01b20D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::FRAGMENT, 0>(&interpolateAtCentroid_20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLodOffset_00R30B00B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLodOffset_00R30B00B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00h10B00B00B),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&imageAtomicExchange_01U20D00D00B),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&texture1DProj_00g30B00B),
+    Rule::Get<Spec::GLSL, 400, Shader::FRAGMENT, 0>(&textureQueryLod_00h00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01U20D00D00E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&modf_00C00C),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLod_00t30B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureOffset_00o00B00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01U20D00D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00U20B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00U20B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageStore_01H20D30B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageStore_01H20D30B),
+    Rule::Get<Spec::GLSL, 150, Shader::ALL, 0>(&texelFetch_00Q20D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(OES_texture_storage_multisample_2d_array)>(
+        &texelFetchExt_00Q20D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&roundEven_00C),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&roundEven_00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&roundEven_00B),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&texelFetchOffset_00O10D10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&atanh_20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&atanh_20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_10E00E00E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_10E00E00E),
+    Rule::Get<Spec::GLSL, 450, Shader::FRAGMENT, 0>(&dFdxFine_30B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01L00D00E),
+    Rule::Get<Spec::GLSL, 400, Shader::FRAGMENT, 0>(&textureQueryLod_00J20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjOffset_00X30B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjOffset_00X30B10D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxFragmentUniformVectors),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxFragmentUniformVectors),
+    Rule::Get<Spec::ESSL, 100, Shader::VERTEX, 0>(&texture2DProjLod_00I30B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::VERTEX, 0>(&texture2DProjLod_00I30B00B),
+    Rule::Get<Spec::GLSL, 400, Shader::FRAGMENT, 0>(&interpolateAtOffset_10B10B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&max_10C10C),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetch_00g00D00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&abs_30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&abs_30B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldInsert_10E10E00D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldInsert_10E10E00D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&packSnorm4x8_30B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&packSnorm4x8_30B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&mix_10B10B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&mix_10B10B00B),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&imageSize_01b),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_30D30D30D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_30D30D30D),
+    Rule::Get<Spec::GLSL, 400, Shader::FRAGMENT, 0>(&textureQueryLod_00d10B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&mod_10C00C),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01G20D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01G20D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageStore_01R10D00D30D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&determinant_F0B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&transpose_A0B),
+    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&transpose_A0B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&pow_20B20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&pow_20B20B),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&imageSize_01g),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&imageAtomicExchange_01G20D00B),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&imageSize_01e),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01G20D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01G20D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageLoad_01Y10D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01g00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01g00D00E),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&textureProj_00v30B),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&textureProjGrad_00O20B10B10B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&log2_20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&log2_20B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&dot_30C30C),
+    Rule::Get<Spec::GLSL, 450, Shader::FRAGMENT, 0>(&fwidthCoarse_10B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProjOffset_00I20B10D00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProjOffset_00I20B10D00B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffsets_00U20B70D00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&notEqual_10F10F),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&notEqual_10F10F),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffsets_00O10B70D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&smoothstep_00B00B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&smoothstep_00B00B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLodOffset_00d30B00B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLodOffset_00d30B00B10D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01P10D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01P10D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLodOffset_00I30B00B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLodOffset_00I30B00B10D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxCombinedAtomicCounters),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxCombinedAtomicCounters),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldInsert_10D10D00D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldInsert_10D10D00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_00y10D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_00y10D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01Q10D00D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01Q10D00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01L00D00D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00k30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00J20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00J20B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&lessThanEqual_10D10D),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&lessThanEqual_10D10D),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProjOffset_00o30B00D00B),
+    Rule::Get<Spec::ESSL, 100, Shader::ALL, 0>(&TableBase::m_gl_MaxVaryingVectors),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxVaryingVectors),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00d00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00d00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&sin_00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&sin_00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageLoad_01N10D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&uaddCarry_10E10E10E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&uaddCarry_10E10E10E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01Z20D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01Z20D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&mix_10C10C00C),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicCounterIncrement_00G),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&atomicCounterIncrement_00G),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01J20D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01J20D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01S10D00D00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01W10D00E),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProj_00o10B00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01U20D00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01U20D00D00E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjOffset_00m30B00D),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&imageAtomicExchange_01Y10D00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&equal_10E10E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&equal_10E10E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01Y10D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01Y10D00D),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&imageAtomicExchange_01O10D00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01O10D00E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjOffset_00J30B20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjOffset_00J30B20D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01D20D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01D20D00E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&notEqual_10E10E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&notEqual_10E10E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&min_10C10C),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGrad_00t10B00B00B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00q20B00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01B20D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01S10D00D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01O10D00D00D),
+    Rule::Get<Spec::GLSL, 0, Shader::VERTEX, 0>(&shadow1DProjLod_00m30B00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01f00D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01f00D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00u20B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLodOffset_00R10B00B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLodOffset_00R10B00B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&trunc_10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&trunc_10B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&trunc_10C),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeAtomicCounters),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeAtomicCounters),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetch_00u10D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&dot_20C20C),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&TableBase::m_gl_DepthRangeParameters),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_DepthRangeParameters),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00f20B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffsets_00L20B70D00D),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&noise1_10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGrad_00g30B00B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&shadow2DProj_00d30B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProj_00d30B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProj_00d30B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&sign_10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&sign_10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_00E00E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_00E00E),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&texture_00a20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00a20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProj_00o10B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&refract_20C20C00B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, EXT_INDEX(OES_EGL_image_external_essl3)>(
+        &textureProj_00M20B00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageLoad_01A10D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageLoad_01A10D),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProjOffset_00X30B10D00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProjOffset_00X30B10D00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&exp2_00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&exp2_00B),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&imageAtomicExchange_01H20D00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetchOffset_00u10D00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01H20D00E00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01H20D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01H20D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00q10B10D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00a20B00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00a20B00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageStore_01Q10D00D30B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&ldexp_00C00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureSize_00s00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01P10D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01I20D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, EXT_INDEX(EXT_YUV_target)>(&texture_00N10B00B),
+    Rule::Get<Spec::ESSL, 310, Shader::FRAGMENT, EXT_INDEX(EXT_geometry_shader)>(
+        &BuiltInVariable::kgl_PrimitiveID),
+    Rule::Get<Spec::ESSL, 310, Shader::GEOMETRY_EXT, EXT_INDEX(EXT_geometry_shader)>(
+        &BuiltInVariable::kgl_PrimitiveIDGS),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01X10D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01Y10D00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01X10D00E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGrad_00I30B10B10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGrad_00I30B10B10B),
+    Rule::Get<Spec::ESSL, 310, Shader::FRAGMENT, EXT_INDEX(EXT_geometry_shader)>(
+        &BuiltInVariable::kgl_Layer),
+    Rule::Get<Spec::ESSL, 310, Shader::GEOMETRY_EXT, EXT_INDEX(EXT_geometry_shader)>(
+        &BuiltInVariable::kgl_LayerGS),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureOffset_00d20B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureOffset_00d20B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&dFdx_30B),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&dFdx_30B),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(&dFdxExt_30B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01V20D00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01V20D00D00E),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(NV_shader_framebuffer_fetch)>(
+        &BuiltInVariable::kgl_LastFragColor),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGradOffset_00t30B00B00B00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&min_20E20E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&min_20E20E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&asin_20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&asin_20B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01U20D00D00E00E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&texture_00l30B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::VERTEX, 0>(&texture1DProjLod_00g10B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&fwidth_10B),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&fwidth_10B),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(
+        &fwidthExt_10B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&dFdy_00B),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&dFdy_00B),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(&dFdyExt_00B),
+    Rule::Get<Spec::GLSL, 0, Shader::VERTEX, 0>(&shadow2DLod_00d20B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&texture1DProj_00g10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&lessThan_30E30E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&lessThan_30E30E),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imulExtended_30D30D30D30D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&imulExtended_30D30D30D30D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&transpose_70B),
+    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&transpose_70B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imulExtended_00D00D00D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&imulExtended_00D00D00D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffsets_00q10B70D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01F20D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01F20D00E),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&texture_00S20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00S20B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLod_00Y20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00Y20B00B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&faceforward_10C10C10C),
+    Rule::Get<Spec::GLSL, 400, Shader::FRAGMENT, 0>(&textureQueryLod_00u00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&min_20D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&min_20D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01P10D00D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&uintBitsToFloat_00E),
+    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&uintBitsToFloat_00E),
+    Rule::Get<Spec::GLSL, 450, Shader::FRAGMENT, 0>(&dFdxFine_20B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01L00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01g00D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldInsert_20D20D00D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldInsert_20D20D00D00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&mix_30B30B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&mix_30B30B00B),
+    Rule::Get<Spec::GLSL, 400, Shader::FRAGMENT, 0>(&textureQueryLod_00U10B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01N10D00E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&tanh_00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&tanh_00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageStore_00y10D30B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageStore_00y10D30B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&max_10C00C),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&matrixCompMult_D0BD0B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffsets_00v10B70D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeUniformComponents),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeUniformComponents),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01X10D00E),
+    Rule::Get<Spec::GLSL, 0, Shader::VERTEX, 0>(&shadow2DProjLod_00d30B00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01X10D00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&min_30B30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&min_30B30B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&reflect_20C20C),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetch_00h10D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&memoryBarrierAtomicCounter_),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&memoryBarrierAtomicCounter_),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldInsert_00E00E00D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldInsert_00E00E00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01Z20D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01Z20D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01b20D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01a20D00E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00d20B10B10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00d20B10B10B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&atan_10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&atan_10B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01T20D00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01T20D00D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01g00D00D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&clamp_30C30C30C),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&textureProj_00v20B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&step_00B10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&step_00B10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLod_00I20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLod_00I20B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(EXT_YUV_target)>(&rgb_2_yuv_20B00H),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageStore_01B20D30B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageStore_01B20D30B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageLoad_01P10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00T20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00T20B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&log2_10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&log2_10B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01D20D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01D20D00E),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findLSB_20E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findLSB_20E),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findLSB_20D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findLSB_20D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01f00D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01f00D00D),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&noise2_30B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01U20D00D00E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&greaterThanEqual_10B10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&greaterThanEqual_10B10B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01K00D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_10D10D10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_10D10D10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(OES_EGL_image_external_essl3)>(
+        &texelFetch_00M10D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::FRAGMENT, 0>(&textureQueryLod_00Y20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&transpose_F0B),
+    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&transpose_F0B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureOffset_00Y20B20D00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureOffset_00Y20B20D00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGradOffset_00S20B20B20B20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGradOffset_00S20B20B20B20D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01U20D00D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_30E30E30E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_30E30E30E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00R00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00R00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01f00D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&acosh_10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&acosh_10B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01f00D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageLoad_01b20D),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureOffset_00L20B10D00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureOffset_00L20B10D00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&mod_20B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&mod_20B00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageLoad_01U20D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLod_00J30B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLod_00J30B00B),
+    Rule::Get<Spec::GLSL, 460, Shader::ALL, 0>(&subpassLoad_01i),
+    Rule::Get<Spec::GLSL, 460, Shader::ALL, 0>(&subpassLoad_01k),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&transpose_90B),
+    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&transpose_90B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&mix_30C30C00C),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicAnd_00E00E),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicAnd_00E00E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_20D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_20D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetchOffset_00I10D00D10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetchOffset_00I10D00D10D),
+    Rule::Get<Spec::GLSL, 400, Shader::FRAGMENT, 0>(&textureQueryLod_00L10B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicCounter_00G),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&atomicCounter_00G),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00m20B00B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&noise3_20B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldInsert_30D30D00D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldInsert_30D30D00D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&min_10C00C),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&greaterThan_10D10D),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&greaterThan_10D10D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldExtract_10E00D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldExtract_10E00D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGradOffset_00h10B00B00B00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01V20D00D00D),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, 0>(&texture2D_00I10B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&texture2D_00I10B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&greaterThan_20D20D),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&greaterThan_20D20D),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&noise1_20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLodOffset_00t10B00B00D),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&textureProjOffset_00O20B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&trunc_00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&trunc_00B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&length_10C),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&length_10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&length_10B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageLoad_01R10D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01H20D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01H20D00E),
+    Rule::Get<Spec::GLSL, 460, Shader::ALL, 0>(&subpassLoad_01j),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&dot_00B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&dot_00B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&tan_30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&tan_30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLod_00T20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00T20B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGrad_00R30B10B10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGrad_00R30B10B10B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&exp2_10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&exp2_10B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProjOffset_00X20B10D00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProjOffset_00X20B10D00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGradOffset_00X30B10B10B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGradOffset_00X30B10B10B10D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&matrixCompMult_A0BA0B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&matrixCompMult_A0BA0B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffsets_00v10B70D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00S20B20B20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00S20B20B20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&round_30B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&round_30B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&round_30C),
+    Rule::Get<Spec::GLSL, 460, Shader::ALL, 0>(&anyInvocation_00F),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGrad_00x30B20B20B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01D20D00E00E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLod_00o30B00B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&smoothstep_00C00C10C),
+    Rule::Get<Spec::GLSL, 400, Shader::FRAGMENT, 0>(&interpolateAtSample_00B00D),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&dFdx_20B),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&dFdx_20B),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(&dFdxExt_20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00L20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00L20B),
+    Rule::Get<Spec::ESSL, 310, Shader::COMPUTE, 0>(&barrier_),
+    Rule::Get<Spec::GLSL, 400, Shader::COMPUTE, 0>(&barrier_),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01a20D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00k30B00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findMSB_20D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findMSB_20D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGatherOffset_00L20B10D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00L20B10D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01S10D00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01S10D00D00E),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProjOffset_00S30B20D00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProjOffset_00S30B20D00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01D20D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&normalize_10C),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&unpackSnorm4x8_00E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&unpackSnorm4x8_00E),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageLoad_01C20D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageLoad_01C20D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01C20D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01C20D00E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00l30B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&normalize_10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&normalize_10B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&asin_30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&asin_30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&isnan_20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&isnan_20B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&isnan_20C),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&fwidth_00B),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&fwidth_00B),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(
+        &fwidthExt_00B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&dFdy_10B),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&dFdy_10B),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(&dFdyExt_10B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01P10D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01P10D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_30E00E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_30E00E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLod_00d20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00d20B00B),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&textureOffset_00q10B10D),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(EXT_shader_framebuffer_fetch)>(
+        &TableBase::m_gl_LastFragData),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(NV_shader_framebuffer_fetch)>(
+        &TableBase::m_gl_LastFragDataNV),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&mod_10B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&mod_10B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00g00B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&uintBitsToFloat_10E),
+    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&uintBitsToFloat_10E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjOffset_00t30B00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&matrixCompMult_70B70B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01I20D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01M00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01M00D00E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureLod_00k30B00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01E20D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLodOffset_00Y20B00B20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLodOffset_00Y20B00B20D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&refract_00C00C00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&log2_00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&log2_00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&tanh_10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&tanh_10B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01I20D00E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00h10B00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageStore_01b20D30E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00O20B00D),
+    Rule::Get<Spec::ESSL, 310, Shader::COMPUTE, 0>(&BuiltInVariable::kgl_LocalInvocationID),
+    Rule::Get<Spec::GLSL, 0, Shader::COMPUTE, 0>(&BuiltInVariable::kgl_LocalInvocationID),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&clamp_00B00B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&clamp_00B00B00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00d10B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_geometry_shader)>(
+        &TableBase::m_gl_MaxGeometryAtomicCounterBuffers),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureOffset_00p10B00D00B),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&imageAtomicExchange_01f00D00B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&clamp_10C10C10C),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&outerProduct_20B10B),
+    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&outerProduct_20B10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjOffset_00t10B00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&isinf_20C),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00e30B20B20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00e30B20B20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00J00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00J00D),
+    Rule::Get<Spec::GLSL, 400, Shader::FRAGMENT, 0>(&textureQueryLod_00Z20B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&dot_10C10C),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&textureProjGrad_00n30B10B10B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01U20D00D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01U20D00D00D),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(EXT_shader_texture_lod)>(
+        &texture2DProjLodEXT_00I30B00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01N10D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01N10D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01b20D00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&step_00B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&step_00B00B),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(EXT_shader_texture_lod)>(
+        &texture2DLodEXT_00I10B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&texture_00K20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00K20B00B),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&textureProjGradOffset_00n30B10B10B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00J20B20B20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00J20B20B20B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01V20D00D00E00E),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureOffset_00U20B10D00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureOffset_00U20B10D00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&intBitsToFloat_10D),
+    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&intBitsToFloat_10D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&min_20C20C),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findLSB_10D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findLSB_10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLodOffset_00Y30B00B20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLodOffset_00Y30B00B20D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01h00D00E),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&texture3D_00J20B),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_texture_3D)>(&texture3D_00J20B),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(EXT_blend_func_extended)>(
+        &TableBase::m_gl_SecondaryFragDataEXT),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01X10D00E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&faceforward_20C20C20C),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01O10D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01X10D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00n10B00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00X10B00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00X10B00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01L00D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01L00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01G20D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01G20D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureOffset_00a20B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureOffset_00a20B10D),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&imageAtomicExchange_01X10D00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&min_30E30E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&min_30E30E),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, 0>(&texture2DProj_00I30B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&texture2DProj_00I30B00B),
+    Rule::Get<Spec::GLSL, 400, Shader::FRAGMENT, 0>(&textureQueryLod_00X10B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01I20D00E),
+    Rule::Get<Spec::ESSL, 100, Shader::ALL, EXT_INDEX(EXT_shader_texture_lod)>(
+        &textureCubeGradEXT_00K20B20B20B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&min_00B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&min_00B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGradOffset_00o00B00B00B00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&mix_30C30C30F),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&mix_30C30C30C),
+    Rule::Get<Spec::ESSL, 310, Shader::COMPUTE, 0>(&BuiltInVariable::kgl_WorkGroupID),
+    Rule::Get<Spec::GLSL, 0, Shader::COMPUTE, 0>(&BuiltInVariable::kgl_WorkGroupID),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&degrees_00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&degrees_00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01J20D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01J20D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01D20D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicExchange_00D00D),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicExchange_00D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureOffset_00m20B00D00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_geometry_shader)>(
+        &TableBase::m_gl_MaxGeometryAtomicCounters),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&textureOffset_00f30B10D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01a20D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01a20D00E),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&imageAtomicExchange_01a20D00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&matrixCompMult_60B60B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_00z10D00D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProj_00t30B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGradOffset_00t10B00B00B00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&unpackSnorm2x16_00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&unpackSnorm2x16_00E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&lessThan_30D30D),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&lessThan_30D30D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&atan_00B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&atan_00B00B),
+    Rule::Get<Spec::GLSL, 400, Shader::FRAGMENT, 0>(&textureQueryLod_00S20B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&notEqual_10B10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&notEqual_10B10B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageLoad_01G20D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageLoad_01G20D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&trunc_30B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&trunc_30B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&trunc_30C),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&length_00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&length_00B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&length_00C),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01H20D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01H20D00E),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProj_00X30B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProj_00X30B00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01O10D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01C20D00E00E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&tan_00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&tan_00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&min_20E00E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&min_20E00E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureLod_00x30B00B),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&textureSize_00j),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&textureSize_00n),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01F20D00D),
+    Rule::Get<Spec::GLSL, 150, Shader::ALL, 0>(&textureSize_00c),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(OES_texture_storage_multisample_2d_array)>(
+        &textureSizeExt_00c),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureSize_00b),
+    Rule::Get<Spec::GLSL, 150, Shader::ALL, 0>(&textureSize_00b),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(ANGLE_texture_multisample)>(
+        &textureSizeExt_00b),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&min_20B20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&min_20B20B),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&textureSize_00q),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&textureSize_00r),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&textureSize_00w),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&textureSize_00v),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldInsert_20E20E00D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldInsert_20E20E00D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&TableBase::m_gl_MaxProgramTexelOffset),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxProgramTexelOffset),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&textureSize_00O),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01a20D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01g00D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&trunc_00C),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01a20D00D),
+    Rule::Get<Spec::GLSL, 150, Shader::ALL, 0>(&textureSize_00Q),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(OES_texture_storage_multisample_2d_array)>(
+        &textureSizeExt_00Q),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureSize_00P),
+    Rule::Get<Spec::GLSL, 150, Shader::ALL, 0>(&textureSize_00P),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(ANGLE_texture_multisample)>(
+        &textureSizeExt_00P),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01M00D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01M00D00D),
+    Rule::Get<Spec::GLSL, 150, Shader::ALL, 0>(&textureSize_00W),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(OES_texture_storage_multisample_2d_array)>(
+        &textureSizeExt_00W),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLod_00X20B00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLod_00X20B00B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&smoothstep_00C00C00C),
+    Rule::Get<Spec::GLSL, 460, Shader::ALL, 0>(&atomicCounterAnd_00G00E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&faceforward_30B30B30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&faceforward_30B30B30B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&distance_20C20C),
+    Rule::Get<Spec::GLSL, 460, Shader::ALL, 0>(&atomicCounterAdd_00G00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageStore_01O10D30D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00X10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00X10B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&ceil_00C),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&ceil_00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&ceil_00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&distance_00B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&distance_00B00B),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&texelFetch_00O10D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01N10D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01N10D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01C20D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicExchange_01C20D00E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGrad_00s30B20B20B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00I10B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00I10B),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&imageAtomicExchange_01C20D00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&min_30D30D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&min_30D30D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findMSB_30E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findMSB_30E),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findMSB_30D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findMSB_30D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGradOffset_00R10B10B10B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGradOffset_00R10B10B10B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&fwidth_30B),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&fwidth_30B),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(
+        &fwidthExt_30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00K20B20B20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00K20B20B20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetch_00S20D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetch_00S20D00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&max_10B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&max_10B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGradOffset_00R30B10B10B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGradOffset_00R30B10B10B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetchOffset_00L20D00D10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetchOffset_00L20D00D10D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&isnan_30C),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&transpose_50B),
+    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&transpose_50B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&greaterThanEqual_20D20D),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&greaterThanEqual_20D20D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&asinh_00B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&asinh_00B),
+    Rule::Get<Spec::ESSL, 310, Shader::GEOMETRY_EXT, EXT_INDEX(EXT_geometry_shader)>(
+        &BuiltInVariable::kgl_PrimitiveIDIn),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00Z20B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00Z20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00p10B00B00B),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&textureProjOffset_00v30B10D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&greaterThan_20B20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&greaterThan_20B20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&min_20D20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&min_20D20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetchOffset_00g00D00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01g00D00E00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01Q10D00D00E00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01O10D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01O10D00E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&tanh_20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&tanh_20B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProj_00m30B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&sin_20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&sin_20B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&smoothstep_00C00C30C),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureSize_00l00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00o00B00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01K00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01K00D00E),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureOffset_00I10B10D00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureOffset_00I10B10D00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_00z10D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_00z10D00E),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxAtomicCounterBufferSize),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxAtomicCounterBufferSize),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureOffset_00J20B20D00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureOffset_00J20B20D00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&lessThanEqual_20E20E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&lessThanEqual_20E20E),
+    Rule::Get<Spec::ESSL, 300, Shader::VERTEX, EXT_INDEX(ANGLE_base_vertex_base_instance)>(
+        &BuiltInVariable::kgl_BaseVertex),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureOffset_00g00B00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProj_00g30B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageLoad_01Z20D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldInsert_30E30E00D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldInsert_30E30E00D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldExtract_20E00D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldExtract_20E00D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&uintBitsToFloat_20E),
+    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&uintBitsToFloat_20E),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&unpackUnorm4x8_00E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&unpackUnorm4x8_00E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&mod_10B10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&mod_10B10B),
+    Rule::Get<Spec::ESSL, 310, Shader::COMPUTE, 0>(&BuiltInVariable::kgl_LocalInvocationIndex),
+    Rule::Get<Spec::GLSL, 0, Shader::COMPUTE, 0>(&BuiltInVariable::kgl_LocalInvocationIndex),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01W10D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01W10D00E),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexImageUniforms),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexImageUniforms),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&equal_20D20D),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&equal_20D20D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxCombinedAtomicCounterBuffers),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxCombinedAtomicCounterBuffers),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&mix_10E10E10F),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00R10B00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00R10B00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00Z00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00Z00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldExtract_30D00D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldExtract_30D00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01J20D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01J20D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageStore_01T20D00D30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&intBitsToFloat_00D),
+    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&intBitsToFloat_00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLodOffset_00m20B00B00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findLSB_00E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findLSB_00E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetch_00p10D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00d10B00B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00d10B00B),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&shadow2DProj_00d30B00B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&inversesqrt_10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&inversesqrt_10B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&inversesqrt_10C),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&abs_30D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&abs_30D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&transpose_D0B),
+    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&transpose_D0B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&abs_30C),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&textureProjGrad_00O30B10B10B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMax_01Z20D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageLoad_01E20D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageLoad_01E20D),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, EXT_INDEX(EXT_YUV_target)>(&textureProj_00N20B00B),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, 0>(&TableBase::m_gl_FragData),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&TableBase::m_gl_FragData),
+    Rule::Get<Spec::GLSL, 450, Shader::FRAGMENT, 0>(&dFdxCoarse_20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_20E00E00E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_20E00E00E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProj_00d30B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProj_00d30B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexOutputVectors),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexOutputVectors),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&shadow1D_00m20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureOffset_00u10B00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&cosh_10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&cosh_10B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&sign_10C),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01G20D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_01G20D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&sign_10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&sign_10D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&umulExtended_00E00E00E00E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&umulExtended_00E00E00E00E),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexAttribs),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexAttribs),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00a20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00a20B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01T20D00D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01T20D00D00D),
+    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&imageAtomicExchange_01g00D00B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&ldexp_10B10D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&ldexp_10B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjOffset_00g30B00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00Z20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00Z20B),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&degrees_10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&degrees_10B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00K20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00K20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&sinh_10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&sinh_10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00m20B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01C20D00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&notFunc_30F),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&notFunc_30F),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLodOffset_00I20B00B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLodOffset_00I20B00B10D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00K20B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00K20B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGatherOffset_00R10B10D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00R10B10D),
+    Rule::Get<Spec::ESSL, 310, Shader::COMPUTE, 0>(&memoryBarrierShared_),
+    Rule::Get<Spec::GLSL, 430, Shader::COMPUTE, 0>(&memoryBarrierShared_),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&clamp_20B20B20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&clamp_20B20B20B),
+    Rule::Get<Spec::GLSL, 150, Shader::ALL, 0>(&texelFetch_00W20D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(OES_texture_storage_multisample_2d_array)>(
+        &texelFetchExt_00W20D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLod_00g10B00B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&trunc_20C),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&trunc_20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&trunc_20B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProjOffset_00I30B10D00B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProjOffset_00I30B10D00B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&max_00C00C),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&tan_10B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&tan_10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00g00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLodOffset_00L20B00B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLodOffset_00L20B00B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLodOffset_00u10B00B00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_00y10D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAnd_00y10D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&isinf_20B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&isinf_20B),
+    Rule::Get<Spec::GLSL, 450, Shader::FRAGMENT, 0>(&dFdyCoarse_10B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGatherOffset_00X10B10D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00X10B10D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&min_10E10E),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&min_10E10E),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&memoryBarrierImage_),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&memoryBarrierImage_),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&round_10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&round_10B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&round_10C),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLodOffset_00m30B00B00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGradOffset_00g10B00B00B00D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProj_00R30B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProj_00R30B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&shadow1DProj_00m30B),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00f30B00B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&fma_00B00B00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01b20D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01b20D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00v10B10D00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicMax_00E00E),
+    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicMax_00E00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01B20D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicMin_01B20D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::FRAGMENT, 0>(&textureQueryLod_00t00B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjOffset_00R30B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjOffset_00R30B10D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProj_00X30B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProj_00X30B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findMSB_00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findMSB_00D),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findMSB_00E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findMSB_00E),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjOffset_00X20B10D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjOffset_00X20B10D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicCompSwap_01X10D00D00D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&frexp_30C30D),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&mix_10C10C10C),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&min_30D00D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&min_30D00D),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, EXT_INDEX(OES_EGL_image_external_essl3)>(
+        &texture_00M10B00B),
+    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&fwidth_20B),
+    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&fwidth_20B),
+    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(
+        &fwidthExt_20B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01S10D00D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01S10D00D00E),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&mod_30C00C),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01A10D00D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicAdd_01A10D00E),
+    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00o00B00B),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01H20D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicOr_01H20D00D),
+    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&cos_20B),
+    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&cos_20B),
+    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00T20B),
+    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00T20B),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGradOffset_00J30B20B20B20D),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGradOffset_00J30B20B20B20D),
+    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&asinh_10B),
+    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&asinh_10B),
+    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&texelFetchOffset_00v10D10D),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01E20D00E),
+    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&imageAtomicXor_01E20D00D)};
 
+// Flat array of all mangled names.
+constexpr const char *kMangledNames[] = {"textureProj(00R30B00B",
+                                         "interpolateAtOffset(30B10B",
+                                         "textureProjOffset(00g10B00D",
+                                         "imageAtomicOr(00z10D00D",
+                                         "texture2DProj(00I20B",
+                                         "textureProjGradOffset(00v30B10B10B10D",
+                                         "texelFetch(00o00D00D",
+                                         "imageLoad(01g00D",
+                                         "imageLoad(01I20D",
+                                         "tanh(30B",
+                                         "imageAtomicCompSwap(01E20D00D00D",
+                                         "textureQueryLod(00m00B",
+                                         "imageAtomicCompSwap(01f00D00D00D",
+                                         "not(10F",
+                                         "findMSB(20E",
+                                         "lessThanEqual(30B30B",
+                                         "imageAtomicAdd(00z10D00E",
+                                         "textureLod(00t00B00B",
+                                         "textureProjGradOffset(00O30B10B10B10D",
+                                         "outerProduct(20B30B",
+                                         "imageAtomicOr(00z10D00E",
+                                         "imageAtomicAnd(01f00D00D",
+                                         "imageAtomicAnd(01f00D00E",
+                                         "imageSamples(01V",
+                                         "imageSamples(01U",
+                                         "imageSamples(01T",
+                                         "imageSamples(01S",
+                                         "mix(20B20B00B",
+                                         "imageSamples(01Q",
+                                         "textureLodOffset(00o00B00B00D",
+                                         "uintBitsToFloat(30E",
+                                         "imageAtomicExchange(01R10D00D00B",
+                                         "textureSize(00K00D",
+                                         "textureSize(00h00D",
+                                         "gl_MaxAtomicCounterBindings",
+                                         "texelFetchOffset(00q10D10D",
+                                         "greaterThanEqual(10E10E",
+                                         "texture(00d20B",
+                                         "atan(10B10B",
+                                         "clamp(30B30B30B",
+                                         "imageAtomicCompSwap(01a20D00E00E",
+                                         "imageAtomicCompSwap(01R10D00D00D00D",
+                                         "textureLodOffset(00a20B00B10D",
+                                         "imageStore(01K00D30B",
+                                         "greaterThanEqual(20B20B",
+                                         "imageLoad(01F20D",
+                                         "ceil(10C",
+                                         "imageAtomicCompSwap(01b20D00D00D",
+                                         "imageAtomicAnd(01A10D00D",
+                                         "imageAtomicAdd(01D20D00E",
+                                         "atomicAdd(00D00D",
+                                         "textureSize(00p00D",
+                                         "floatBitsToUint(20B",
+                                         "textureProjOffset(00t30B00D00B",
+                                         "imageAtomicOr(01Q10D00D00D",
+                                         "imageAtomicOr(01Q10D00D00E",
+                                         "mix(20D20D20F",
+                                         "degrees(20B",
+                                         "imageAtomicMin(01Y10D00D",
+                                         "imageAtomicAnd(01Z20D00D",
+                                         "imageAtomicCompSwap(01D20D00D00D",
+                                         "min(00C00C",
+                                         "imageAtomicMax(01S10D00D00E",
+                                         "imageAtomicXor(01R10D00D00E",
+                                         "imageAtomicXor(01Q10D00D00E",
+                                         "inversesqrt(00C",
+                                         "inversesqrt(00B",
+                                         "imageAtomicXor(01Q10D00D00D",
+                                         "texelFetchOffset(00J20D00D20D",
+                                         "textureProjGrad(00S30B20B20B",
+                                         "equal(10D10D",
+                                         "max(30D00D",
+                                         "groupMemoryBarrier(",
+                                         "imageAtomicOr(01N10D00D",
+                                         "imageAtomicOr(01N10D00E",
+                                         "imageAtomicExchange(01b20D00E",
+                                         "imageAtomicExchange(01b20D00D",
+                                         "step(20C20C",
+                                         "texelFetch(00I10D00D",
+                                         "mod(00C00C",
+                                         "transpose(E0B",
+                                         "imageAtomicMin(01R10D00D00E",
+                                         "imageAtomicMin(01R10D00D00D",
+                                         "textureGatherOffsets(00f20B00B70D",
+                                         "textureGather(00O20B",
+                                         "textureProjOffset(00Y30B20D00B",
+                                         "modf(10B10B",
+                                         "imageAtomicMax(01K00D00D",
+                                         "imageAtomicMax(01K00D00E",
+                                         "determinant(50B",
+                                         "imageAtomicCompSwap(01J20D00E00E",
+                                         "textureProj(00g10B00B",
+                                         "lessThan(20B20B",
+                                         "gl_MaxFragmentInputVectors",
+                                         "sign(20C",
+                                         "cosh(20B",
+                                         "sign(20D",
+                                         "atanh(00B",
+                                         "imageAtomicAnd(01V20D00D00E",
+                                         "imageAtomicAnd(01V20D00D00D",
+                                         "textureProj(00t10B",
+                                         "texture(00p20B00B",
+                                         "fma(10C10C10C",
+                                         "imageAtomicXor(01Y10D00D",
+                                         "imageAtomicXor(01Y10D00E",
+                                         "imageAtomicExchange(01N10D00D",
+                                         "imageAtomicAnd(01C20D00E",
+                                         "textureOffset(00d20B10D00B",
+                                         "textureOffset(00m20B00D",
+                                         "imageAtomicAnd(01C20D00D",
+                                         "lessThan(10E10E",
+                                         "imageAtomicCompSwap(01A10D00D00D",
+                                         "textureGrad(00X00B00B00B",
+                                         "textureProjLodOffset(00t30B00B00D",
+                                         "fma(30C30C30C",
+                                         "textureGrad(00v10B10B10B",
+                                         "textureProj(00N30B00B",
+                                         "step(00C00C",
+                                         "gl_MaxCombinedShaderOutputResources",
+                                         "texture(00I10B00B",
+                                         "texelFetch(00j00D",
+                                         "lessThan(20D20D",
+                                         "clamp(20C20C20C",
+                                         "imageAtomicXor(00z10D00E",
+                                         "all(10F",
+                                         "dFdyCoarse(00B",
+                                         "isinf(30B",
+                                         "textureGatherOffset(00a20B10D00D",
+                                         "textureGatherOffset(00I10B10D",
+                                         "textureProjOffset(00q30B10D",
+                                         "textureOffset(00L20B10D",
+                                         "lessThanEqual(30E30E",
+                                         "min(10E00E",
+                                         "imageAtomicXor(01a20D00E",
+                                         "imageAtomicXor(01a20D00D",
+                                         "textureProjOffset(00S30B20D",
+                                         "round(00C",
+                                         "round(00B",
+                                         "greaterThan(30D30D",
+                                         "texture(00U20B",
+                                         "imageAtomicCompSwap(01P10D00E00E",
+                                         "smoothstep(00C00C20C",
+                                         "texture2DRect(00O10B",
+                                         "imageAtomicAdd(01K00D00E",
+                                         "imageAtomicAdd(01K00D00D",
+                                         "noise2(20B",
+                                         "gl_MaxGeometryOutputVertices",
+                                         "step(20B20B",
+                                         "imageAtomicAnd(01b20D00E",
+                                         "findMSB(10E",
+                                         "findMSB(10D",
+                                         "interpolateAtOffset(00B10B",
+                                         "texture(00t00B",
+                                         "textureLodOffset(00S20B00B20D",
+                                         "textureQueryLod(00p00B",
+                                         "imageStore(00z10D30D",
+                                         "outerProduct(10B20B",
+                                         "fwidthFine(10B",
+                                         "cos(30B",
+                                         "unpackHalf2x16(00E",
+                                         "imageStore(01J20D30E",
+                                         "outerProduct(10B10B",
+                                         "imageAtomicOr(01M00D00D",
+                                         "gl_MaxComputeTextureImageUnits",
+                                         "imageAtomicMax(01Y10D00E",
+                                         "imageAtomicMax(01Y10D00D",
+                                         "sin(30B",
+                                         "imageAtomicAnd(01O10D00D",
+                                         "imageAtomicCompSwap(01Q10D00D00D00D",
+                                         "textureGather(00L20B00D",
+                                         "imageStore(01A10D30E",
+                                         "imageAtomicXor(01H20D00D",
+                                         "imageAtomicXor(01H20D00E",
+                                         "shadow1D(00m20B00B",
+                                         "max(10E10E",
+                                         "max(30B30B",
+                                         "clamp(10E10E10E",
+                                         "texture(00N10B",
+                                         "textureProjGrad(00t30B00B00B",
+                                         "imageAtomicOr(01E20D00D",
+                                         "imageAtomicOr(01E20D00E",
+                                         "texelFetchOffset(00a20D00D10D",
+                                         "imageLoad(01V20D00D",
+                                         "not(20F",
+                                         "imageAtomicExchange(01F20D00D",
+                                         "imageAtomicMax(01Q10D00D00D",
+                                         "imageAtomicMax(01Q10D00D00E",
+                                         "imageAtomicExchange(01F20D00B",
+                                         "imageStore(01L00D30D",
+                                         "outerProduct(20B20B",
+                                         "textureProjLodOffset(00R20B00B10D",
+                                         "textureOffset(00p10B00D",
+                                         "texture(00h20B",
+                                         "imageAtomicXor(01B20D00D",
+                                         "imageAtomicXor(01B20D00E",
+                                         "textureProjGrad(00J30B20B20B",
+                                         "imageAtomicOr(01R10D00D00E",
+                                         "imageAtomicOr(01R10D00D00D",
+                                         "textureLod(00X10B00B",
+                                         "gl_InvocationID",
+                                         "imageAtomicAnd(01R10D00D00D",
+                                         "imageAtomicAdd(01E20D00E",
+                                         "radians(10B",
+                                         "textureGatherOffset(00n10B00B10D",
+                                         "noise2(10B",
+                                         "textureQueryLod(00a10B",
+                                         "textureGather(00e20B00B",
+                                         "distance(10B10B",
+                                         "textureGrad(00Z20B20B20B",
+                                         "sign(00B",
+                                         "bitfieldReverse(00D",
+                                         "bitfieldReverse(00E",
+                                         "bitfieldExtract(30E00D00D",
+                                         "textureLod(00I10B00B",
+                                         "greaterThanEqual(10D10D",
+                                         "imageStore(01f00D30B",
+                                         "imageAtomicCompSwap(01I20D00E00E",
+                                         "degrees(30B",
+                                         "inversesqrt(30B",
+                                         "inversesqrt(30C",
+                                         "imageAtomicMin(01I20D00D",
+                                         "textureGather(00v20B00D",
+                                         "intBitsToFloat(20D",
+                                         "exp(20B",
+                                         "imageAtomicMax(01A10D00E",
+                                         "imageAtomicMax(01A10D00D",
+                                         "acosh(00B",
+                                         "log(10B",
+                                         "textureProjLodOffset(00S30B00B20D",
+                                         "textureGather(00L20B",
+                                         "textureProj(00n30B",
+                                         "textureQueryLod(00i00B",
+                                         "texture(00p20B",
+                                         "outerProduct(30B20B",
+                                         "texture(00S20B",
+                                         "atomicXor(00D00D",
+                                         "texelFetch(00Y20D00D",
+                                         "imageAtomicOr(01P10D00D",
+                                         "imageAtomicOr(01P10D00E",
+                                         "imageAtomicXor(01N10D00E",
+                                         "imageAtomicXor(01N10D00D",
+                                         "bitfieldExtract(10D00D00D",
+                                         "sign(30B",
+                                         "sign(30C",
+                                         "sign(30D",
+                                         "texture(00Y20B00B",
+                                         "dFdy(20B",
+                                         "textureProj(00Y30B",
+                                         "textureOffset(00X10B10D00B",
+                                         "memoryBarrierBuffer(",
+                                         "isinf(00B",
+                                         "isinf(00C",
+                                         "clamp(20D00D00D",
+                                         "texture2DProj(00I20B00B",
+                                         "mod(30B00B",
+                                         "imageAtomicAnd(01A10D00E",
+                                         "textureGatherOffsets(00O10B70D00D",
+                                         "textureGather(00f20B00B",
+                                         "textureProj(00m30B",
+                                         "greaterThan(20E20E",
+                                         "textureProjLod(00I30B00B",
+                                         "refract(00B00B00B",
+                                         "gl_MaxGeometryImageUniforms",
+                                         "imageAtomicMin(00y10D00D",
+                                         "imageAtomicMin(00y10D00E",
+                                         "imageAtomicMin(01X10D00D",
+                                         "imageAtomicMin(01X10D00E",
+                                         "textureSize(00e00D",
+                                         "texelFetch(00a20D00D",
+                                         "step(00C10C",
+                                         "frexp(30B30D",
+                                         "imageAtomicMin(01Y10D00E",
+                                         "texture(00t00B00B",
+                                         "min(30C00C",
+                                         "imageAtomicCompSwap(01X10D00E00E",
+                                         "texture(00I10B",
+                                         "gl_InstanceID",
+                                         "normalize(20B",
+                                         "normalize(20C",
+                                         "imageAtomicCompSwap(01H20D00D00D",
+                                         "inverse(F0B",
+                                         "imageLoad(01K00D",
+                                         "frexp(20C20D",
+                                         "atan(00B",
+                                         "textureGatherOffset(00R10B10D00D",
+                                         "imageAtomicMin(01h00D00E",
+                                         "imageAtomicMin(01h00D00D",
+                                         "greaterThan(30E30E",
+                                         "imageStore(01U20D00D30D",
+                                         "texelFetchOffset(00p10D00D00D",
+                                         "imageAtomicAnd(01J20D00D",
+                                         "imageAtomicAnd(01J20D00E",
+                                         "gl_DepthRange",
+                                         "imageAtomicMax(01S10D00D00D",
+                                         "imageAtomicCompSwap(01K00D00D00D",
+                                         "textureProj(00o30B",
+                                         "imageAtomicAdd(01I20D00E",
+                                         "bitfieldExtract(20D00D00D",
+                                         "texture(00L20B00B",
+                                         "imageAtomicOr(01L00D00E",
+                                         "imageAtomicOr(01L00D00D",
+                                         "mix(30D30D30F",
+                                         "imageAtomicExchange(01Z20D00B",
+                                         "imageAtomicExchange(01Z20D00E",
+                                         "imageAtomicExchange(01Z20D00D",
+                                         "imageAtomicExchange(01f00D00E",
+                                         "imageAtomicExchange(01f00D00D",
+                                         "imageLoad(01h00D",
+                                         "imageAtomicCompSwap(01E20D00E00E",
+                                         "textureProjOffset(00O30B10D",
+                                         "floor(10B",
+                                         "floor(10C",
+                                         "imageAtomicMax(01R10D00D00E",
+                                         "imageAtomicMax(01R10D00D00D",
+                                         "textureProjLodOffset(00o10B00B00D",
+                                         "textureGather(00x30B00D",
+                                         "interpolateAtSample(10B00D",
+                                         "imageAtomicMin(01F20D00E",
+                                         "imageAtomicMin(01F20D00D",
+                                         "outerProduct(10B30B",
+                                         "imageAtomicCompSwap(01O10D00E00E",
+                                         "cos(00B",
+                                         "imageAtomicXor(01F20D00E",
+                                         "frexp(00C00D",
+                                         "atomicCounterCompSwap(00G00E00E",
+                                         "textureOffset(00a20B10D00B",
+                                         "textureGather(00X10B",
+                                         "textureOffset(00R10B10D00B",
+                                         "textureGatherOffset(00d10B00B10D",
+                                         "gl_MaxFragmentImageUniforms",
+                                         "textureSize(00i00D",
+                                         "equal(20E20E",
+                                         "uaddCarry(00E00E00E",
+                                         "textureQueryLod(00T20B",
+                                         "textureCube(00K20B",
+                                         "imageAtomicMax(01U20D00D00E",
+                                         "imageAtomicMax(01U20D00D00D",
+                                         "matrixCompMult(90B90B",
+                                         "imageAtomicMin(01T20D00D00D",
+                                         "imageAtomicMin(01T20D00D00E",
+                                         "textureGradOffset(00p10B00B00B00D",
+                                         "textureProjLodOffset(00g30B00B00D",
+                                         "clamp(30E00E00E",
+                                         "asin(00B",
+                                         "textureProjOffset(00J30B20D00B",
+                                         "imageLoad(01W10D",
+                                         "texelFetch(00w00D",
+                                         "imageAtomicExchange(01b20D00B",
+                                         "notEqual(30E30E",
+                                         "lessThanEqual(10E10E",
+                                         "inversesqrt(20C",
+                                         "inversesqrt(20B",
+                                         "textureLod(00i20B00B",
+                                         "textureOffset(00u10B00D00B",
+                                         "reflect(00C00C",
+                                         "atomicAdd(00E00E",
+                                         "intBitsToFloat(30D",
+                                         "textureProjGradOffset(00v20B10B10B10D",
+                                         "textureGrad(00X10B10B10B",
+                                         "greaterThanEqual(30E30E",
+                                         "mix(20B20B20F",
+                                         "gl_MaxVertexAtomicCounters",
+                                         "mix(20B20B20B",
+                                         "any(10F",
+                                         "textureProjGradOffset(00d30B10B10B10D",
+                                         "imageLoad(01X10D",
+                                         "textureProjOffset(00I30B10D",
+                                         "imageAtomicExchange(01W10D00B",
+                                         "imageAtomicExchange(01W10D00E",
+                                         "imageAtomicExchange(01W10D00D",
+                                         "textureOffset(00X10B10D",
+                                         "imageAtomicXor(01K00D00E",
+                                         "texture(00R10B",
+                                         "imageAtomicAnd(01Z20D00E",
+                                         "imageStore(01M00D30E",
+                                         "radians(00B",
+                                         "imageStore(01Y10D30E",
+                                         "step(10B10B",
+                                         "gl_MaxDualSourceDrawBuffersEXT",
+                                         "imageAtomicAdd(01Y10D00D",
+                                         "imageAtomicAdd(01Y10D00E",
+                                         "bitfieldReverse(10E",
+                                         "bitfieldReverse(10D",
+                                         "imageStore(01g00D30D",
+                                         "textureProjGradOffset(00q20B10B10B10D",
+                                         "imageAtomicExchange(01S10D00D00E",
+                                         "atomicXor(00E00E",
+                                         "mix(00C00C00F",
+                                         "textureLodOffset(00g00B00B00D",
+                                         "greaterThan(30B30B",
+                                         "gl_MaxFragmentAtomicCounters",
+                                         "faceforward(20B20B20B",
+                                         "textureSize(00x00D",
+                                         "textureProj(00S30B00B",
+                                         "fma(20B20B20B",
+                                         "textureProjLod(00o10B00B",
+                                         "imageAtomicMin(01J20D00E",
+                                         "outerProduct(30B30B",
+                                         "exp(30B",
+                                         "bitCount(10E",
+                                         "bitCount(10D",
+                                         "log(00B",
+                                         "mix(00F00F00F",
+                                         "imageAtomicCompSwap(01M00D00D00D",
+                                         "imageAtomicAnd(01T20D00D00E",
+                                         "imageAtomicAnd(01T20D00D00D",
+                                         "subpassLoad(01l00D",
+                                         "imageStore(01N10D30B",
+                                         "acosh(30B",
+                                         "imageAtomicOr(01Y10D00E",
+                                         "imageAtomicOr(01Y10D00D",
+                                         "textureGradOffset(00X10B10B10B10D",
+                                         "texelFetchOffset(00X10D00D10D",
+                                         "packUnorm2x16(10B",
+                                         "texture(00h20B00B",
+                                         "umulExtended(20E20E20E20E",
+                                         "texture(00m20B00B",
+                                         "textureProjGradOffset(00g30B00B00B00D",
+                                         "textureProj(00o30B00B",
+                                         "textureCubeLod(00K20B00B",
+                                         "textureSize(00L00D",
+                                         "imageAtomicXor(01L00D00E",
+                                         "max(20E00E",
+                                         "textureProj(00S30B",
+                                         "dFdy(30B",
+                                         "imageAtomicMin(01W10D00D",
+                                         "isinf(10C",
+                                         "isinf(10B",
+                                         "textureGatherOffsets(00a20B70D",
+                                         "gl_MaxVertexTextureImageUnits",
+                                         "greaterThanEqual(30B30B",
+                                         "texture2DProjLodEXT(00I20B00B",
+                                         "gl_FrontFacing",
+                                         "imageStore(01C20D30D",
+                                         "textureProjOffset(00t10B00D00B",
+                                         "imageAtomicCompSwap(01Z20D00D00D",
+                                         "acos(10B",
+                                         "textureCube(00K20B00B",
+                                         "lessThan(10B10B",
+                                         "gl_MaxComputeAtomicCounterBuffers",
+                                         "textureSize(00f00D",
+                                         "imageLoad(01B20D",
+                                         "texelFetchOffset(00h10D00D00D",
+                                         "mod(20C00C",
+                                         "imageAtomicAnd(01g00D00D",
+                                         "gl_LastFragColorARM",
+                                         "lessThanEqual(20D20D",
+                                         "textureQueryLod(00k20B",
+                                         "textureProjLod(00Y30B00B",
+                                         "gl_SecondaryFragColorEXT",
+                                         "imageAtomicAnd(01U20D00D00D",
+                                         "imageAtomicAnd(01U20D00D00E",
+                                         "gl_BaseInstance",
+                                         "transpose(B0B",
+                                         "imageAtomicXor(01b20D00E",
+                                         "mix(20F20F20F",
+                                         "smoothstep(00B00B30B",
+                                         "imageAtomicExchange(01M00D00B",
+                                         "imageAtomicExchange(01F20D00E",
+                                         "imageAtomicExchange(01M00D00D",
+                                         "imageAtomicExchange(01M00D00E",
+                                         "imageAtomicCompSwap(01F20D00E00E",
+                                         "texelFetch(00N10D00D",
+                                         "textureSize(00a00D",
+                                         "imageAtomicXor(01T20D00D00D",
+                                         "textureProjOffset(00Y30B20D",
+                                         "textureOffset(00n20B10D",
+                                         "atan(30B",
+                                         "textureGatherOffsets(00R10B70D00D",
+                                         "imageAtomicMax(01b20D00D",
+                                         "ceil(10B",
+                                         "textureSize(00S00D",
+                                         "imageAtomicExchange(01S10D00D00B",
+                                         "atomicCounterDecrement(00G",
+                                         "ceil(30B",
+                                         "textureSize(00t00D",
+                                         "memoryBarrier(",
+                                         "texture(00f30B",
+                                         "imageSamples(01R",
+                                         "texelFetch(00R10D00D",
+                                         "sign(20B",
+                                         "smoothstep(30B30B30B",
+                                         "textureGrad(00R10B10B10B",
+                                         "min(00D00D",
+                                         "textureProj(00t10B00B",
+                                         "imageAtomicCompSwap(01W10D00E00E",
+                                         "imageAtomicAdd(01V20D00D00E",
+                                         "ldexp(20B20D",
+                                         "greaterThanEqual(30D30D",
+                                         "imageLoad(01D20D",
+                                         "findLSB(10E",
+                                         "texture(00Z20B00B",
+                                         "imageAtomicXor(01S10D00D00E",
+                                         "imageAtomicXor(01S10D00D00D",
+                                         "cos(10B",
+                                         "texelFetch(00v10D",
+                                         "texture(00e30B",
+                                         "imageStore(01W10D30B",
+                                         "textureSize(00T00D",
+                                         "imageAtomicAnd(01g00D00E",
+                                         "textureSize(00u00D",
+                                         "textureProjGradOffset(00Y30B20B20B20D",
+                                         "noise3(30B",
+                                         "textureGrad(00T20B20B20B",
+                                         "texture1DProj(00g10B00B",
+                                         "textureProjOffset(00d30B10D00B",
+                                         "textureGatherOffsets(00X10B70D",
+                                         "imageAtomicXor(01U20D00D00D",
+                                         "imageAtomicXor(01U20D00D00E",
+                                         "imageAtomicAdd(01h00D00D",
+                                         "imageAtomicAdd(01h00D00E",
+                                         "matrixCompMult(50B50B",
+                                         "equal(30B30B",
+                                         "imageAtomicExchange(01E20D00B",
+                                         "textureLod(00U20B00B",
+                                         "imageAtomicXor(01I20D00E",
+                                         "imageAtomicXor(01I20D00D",
+                                         "textureOffset(00h10B00D",
+                                         "textureLod(00p10B00B",
+                                         "max(20C20C",
+                                         "max(10B10B",
+                                         "gl_PointSize",
+                                         "imageAtomicCompSwap(01B20D00E00E",
+                                         "asin(10B",
+                                         "sinh(00B",
+                                         "imageAtomicAdd(01g00D00D",
+                                         "imageAtomicCompSwap(01h00D00E00E",
+                                         "textureOffset(00S20B20D",
+                                         "fma(20C20C20C",
+                                         "imageAtomicCompSwap(01N10D00D00D",
+                                         "textureProj(00R20B",
+                                         "greaterThan(10E10E",
+                                         "imageAtomicAnd(01M00D00E",
+                                         "imageAtomicAnd(01M00D00D",
+                                         "EmitVertex(",
+                                         "smoothstep(20B20B20B",
+                                         "textureSamples(00b",
+                                         "textureOffset(00J20B20D",
+                                         "texelFetch(00J20D00D",
+                                         "imageAtomicExchange(01V20D00D00E",
+                                         "imageAtomicExchange(01V20D00D00B",
+                                         "imageAtomicCompSwap(01Y10D00E00E",
+                                         "imageAtomicExchange(00y10D00B",
+                                         "imageAtomicExchange(00y10D00D",
+                                         "imageAtomicExchange(00y10D00E",
+                                         "gl_ViewID_OVR",
+                                         "radians(30B",
+                                         "fract(30B",
+                                         "imageAtomicAdd(01B20D00D",
+                                         "imageAtomicAdd(01B20D00E",
+                                         "imageAtomicMin(01H20D00E",
+                                         "uaddCarry(20E20E20E",
+                                         "textureProjGrad(00X30B10B10B",
+                                         "textureSamples(00P",
+                                         "textureProjOffset(00v20B10D",
+                                         "shadow2D(00d20B00B",
+                                         "texelFetchOffset(00o00D00D00D",
+                                         "textureSamples(00V",
+                                         "textureSamples(00W",
+                                         "textureProjGrad(00q30B10B10B",
+                                         "textureGatherOffset(00O10B10D",
+                                         "clamp(10D00D00D",
+                                         "gl_MaxComputeImageUniforms",
+                                         "textureLod(00L20B00B",
+                                         "imageAtomicExchange(01A10D00B",
+                                         "imageAtomicCompSwap(01V20D00D00D00D",
+                                         "imageAtomicExchange(01A10D00E",
+                                         "imageAtomicExchange(01A10D00D",
+                                         "imageAtomicXor(01b20D00D",
+                                         "texture(00n20B",
+                                         "ldexp(20C20D",
+                                         "clamp(00E00E00E",
+                                         "length(20B",
+                                         "ldexp(00B00D",
+                                         "imageAtomicExchange(01N10D00E",
+                                         "bitfieldInsert(00D00D00D00D",
+                                         "textureProjGrad(00Y30B20B20B",
+                                         "roundEven(30B",
+                                         "roundEven(30C",
+                                         "acosh(20B",
+                                         "atanh(10B",
+                                         "length(20C",
+                                         "clamp(10B10B10B",
+                                         "textureGatherOffset(00L20B10D00D",
+                                         "bitCount(00D",
+                                         "bitCount(00E",
+                                         "imageAtomicExchange(01N10D00B",
+                                         "floatBitsToInt(30B",
+                                         "max(20B00B",
+                                         "imageAtomicAdd(00z10D00D",
+                                         "texelFetchOffset(00Y20D00D20D",
+                                         "atomicExchange(00E00E",
+                                         "imageAtomicXor(01h00D00D",
+                                         "imageAtomicXor(01h00D00E",
+                                         "ldexp(30C30D",
+                                         "texture(00o00B",
+                                         "textureGatherOffsets(00X10B70D00D",
+                                         "lessThanEqual(20B20B",
+                                         "min(10B00B",
+                                         "textureQueryLod(00f10B",
+                                         "smoothstep(10C10C10C",
+                                         "textureGatherOffsets(00U20B70D",
+                                         "imageAtomicAnd(01L00D00D",
+                                         "imageAtomicAnd(01L00D00E",
+                                         "mix(30F30F30F",
+                                         "abs(20D",
+                                         "abs(20C",
+                                         "abs(20B",
+                                         "lessThanEqual(10B10B",
+                                         "imageAtomicOr(01f00D00E",
+                                         "imageAtomicOr(01f00D00D",
+                                         "imageAtomicOr(01a20D00D",
+                                         "mix(00B00B00B",
+                                         "mix(00B00B00F",
+                                         "textureGather(00s30B00D",
+                                         "textureProj(00I20B",
+                                         "imageAtomicExchange(01B20D00B",
+                                         "textureLodOffset(00p10B00B00D",
+                                         "gl_MaxVertexAtomicCounterBuffers",
+                                         "unpackDouble2x32(00C",
+                                         "acos(00B",
+                                         "textureGradOffset(00J20B20B20B20D",
+                                         "fma(00C00C00C",
+                                         "texture2DGradEXT(00I10B10B10B",
+                                         "imageAtomicCompSwap(01G20D00D00D",
+                                         "imageAtomicAnd(01I20D00D",
+                                         "texture2DProjGradEXT(00I30B10B10B",
+                                         "fma(30B30B30B",
+                                         "imageAtomicAdd(01L00D00D",
+                                         "texture(00i20B00B",
+                                         "gl_MaxComputeWorkGroupCount",
+                                         "clamp(20C00C00C",
+                                         "imageAtomicMax(01X10D00E",
+                                         "imageAtomicCompSwap(00y10D00E00E",
+                                         "mix(30E30E30F",
+                                         "imageAtomicMax(01b20D00E",
+                                         "imageAtomicMin(01G20D00D",
+                                         "imageAtomicMin(01G20D00E",
+                                         "textureGatherOffsets(00I10B70D",
+                                         "imageAtomicExchange(01S10D00D00D",
+                                         "atan(20B",
+                                         "imageAtomicCompSwap(01Z20D00E00E",
+                                         "interpolateAtSample(30B00D",
+                                         "dFdxCoarse(30B",
+                                         "texture(00M10B",
+                                         "min(10B10B",
+                                         "textureLodOffset(00h10B00B00D",
+                                         "EndStreamPrimitive(00D",
+                                         "pow(10B10B",
+                                         "texture(00Y20B",
+                                         "imageAtomicXor(01P10D00D",
+                                         "texture(00X10B00B",
+                                         "frexp(00B00D",
+                                         "texture2D(00I10B",
+                                         "imageLoad(01O10D",
+                                         "ceil(20C",
+                                         "ceil(20B",
+                                         "imageAtomicMin(01b20D00E",
+                                         "imageAtomicMin(01b20D00D",
+                                         "imageAtomicMax(01P10D00D",
+                                         "imageAtomicMax(01P10D00E",
+                                         "imageAtomicExchange(01P10D00B",
+                                         "textureProjOffset(00R20B10D",
+                                         "imageStore(01V20D00D30E",
+                                         "imageAtomicCompSwap(01T20D00D00E00E",
+                                         "subpassLoad(01m00D",
+                                         "textureOffset(00I10B10D",
+                                         "min(20B00B",
+                                         "reflect(00B00B",
+                                         "noise4(10B",
+                                         "sqrt(10C",
+                                         "sqrt(10B",
+                                         "imageAtomicXor(01Z20D00D",
+                                         "imageAtomicXor(01Z20D00E",
+                                         "clamp(20E20E20E",
+                                         "textureGradOffset(00g00B00B00B00D",
+                                         "textureGather(00q20B",
+                                         "noise3(00B",
+                                         "imageAtomicOr(01G20D00D",
+                                         "imageAtomicOr(01G20D00E",
+                                         "imageAtomicMin(01C20D00D",
+                                         "imageAtomicMin(01C20D00E",
+                                         "imageAtomicAnd(01F20D00E",
+                                         "textureProjLod(00d30B00B",
+                                         "imageStore(01a20D30D",
+                                         "imageLoad(01H20D",
+                                         "textureProjGradOffset(00I20B10B10B10D",
+                                         "interpolateAtSample(20B00D",
+                                         "reflect(10B10B",
+                                         "refract(10B10B00B",
+                                         "imageAtomicMax(01h00D00D",
+                                         "mix(20C20C20F",
+                                         "imageAtomicExchange(01X10D00D",
+                                         "imageAtomicExchange(01X10D00E",
+                                         "mix(20C20C20C",
+                                         "textureOffset(00v10B10D",
+                                         "imageAtomicMin(01P10D00D",
+                                         "sinh(30B",
+                                         "textureSize(00m00D",
+                                         "textureQueryLod(00e20B",
+                                         "asinh(20B",
+                                         "imageAtomicAdd(01C20D00D",
+                                         "imageAtomicCompSwap(01I20D00D00D",
+                                         "textureProj(00O20B",
+                                         "imageAtomicCompSwap(01M00D00E00E",
+                                         "frexp(10B10D",
+                                         "inverse(50B",
+                                         "dot(10B10B",
+                                         "imageAtomicExchange(01T20D00D00D",
+                                         "imageAtomicExchange(01T20D00D00E",
+                                         "noise2(00B",
+                                         "textureProjGradOffset(00o10B00B00B00D",
+                                         "radians(20B",
+                                         "atomicCompSwap(00E00E00E",
+                                         "textureGrad(00I00B00B00B",
+                                         "textureGrad(00Y20B20B20B",
+                                         "gl_MaxVertexUniformVectors",
+                                         "textureOffset(00o00B00D00B",
+                                         "ftransform(",
+                                         "textureProj(00X20B",
+                                         "textureProjOffset(00n30B10D",
+                                         "gl_MaxGeometryUniformComponents",
+                                         "greaterThanEqual(20E20E",
+                                         "textureProj(00M20B",
+                                         "texture3DProjLod(00J30B00B",
+                                         "isinf(30C",
+                                         "imageAtomicAdd(01S10D00D00D",
+                                         "mix(10D10D10F",
+                                         "textureProjGrad(00g10B00B00B",
+                                         "log(20B",
+                                         "imageAtomicMax(01D20D00E",
+                                         "imageAtomicMax(01D20D00D",
+                                         "textureOffset(00h10B00D00B",
+                                         "modf(30B30B",
+                                         "roundEven(20C",
+                                         "roundEven(20B",
+                                         "outerProduct(30B10B",
+                                         "textureProj(00J30B",
+                                         "imageAtomicOr(00y10D00D",
+                                         "imageAtomicOr(00y10D00E",
+                                         "imageAtomicOr(01F20D00E",
+                                         "imageAtomicOr(01F20D00D",
+                                         "textureLodOffset(00t00B00B00D",
+                                         "floatBitsToInt(20B",
+                                         "texelFetch(00U20D00D",
+                                         "max(00D00D",
+                                         "atomicMin(00E00E",
+                                         "imageAtomicMin(01Q10D00D00D",
+                                         "imageAtomicMin(01Q10D00D00E",
+                                         "textureGradOffset(00v10B10B10B10D",
+                                         "textureGrad(00n20B10B10B",
+                                         "imageLoad(01S10D00D",
+                                         "max(20E20E",
+                                         "imageAtomicCompSwap(01F20D00D00D",
+                                         "abs(10D",
+                                         "abs(10B",
+                                         "abs(10C",
+                                         "gl_FragDepthEXT",
+                                         "imageAtomicAdd(01V20D00D00D",
+                                         "modf(30C30C",
+                                         "imageAtomicExchange(01g00D00E",
+                                         "textureGrad(00i20B00B00B",
+                                         "textureProj(00g10B",
+                                         "equal(20B20B",
+                                         "textureProjLodOffset(00X20B00B10D",
+                                         "max(30C00C",
+                                         "imageAtomicMax(01W10D00D",
+                                         "textureGatherOffsets(00a20B70D00D",
+                                         "texture(00U20B00B",
+                                         "textureProj(00I30B",
+                                         "mix(00E00E00F",
+                                         "imageAtomicCompSwap(01h00D00D00D",
+                                         "mix(00D00D00F",
+                                         "textureProjOffset(00q20B10D",
+                                         "texture(00i20B",
+                                         "textureGradOffset(00a20B10B10B10D",
+                                         "smoothstep(00B00B20B",
+                                         "textureLod(00s30B00B",
+                                         "imageAtomicOr(01C20D00D",
+                                         "imageAtomicOr(01C20D00E",
+                                         "imageAtomicXor(01g00D00E",
+                                         "notEqual(30B30B",
+                                         "imageAtomicCompSwap(01W10D00D00D",
+                                         "textureGatherOffset(00f20B00B10D",
+                                         "imageLoad(01T20D00D",
+                                         "imageSize(00y",
+                                         "imageAtomicMin(01W10D00E",
+                                         "imageSize(00z",
+                                         "mod(10C10C",
+                                         "imageAtomicXor(01g00D00D",
+                                         "faceforward(00C00C00C",
+                                         "textureGrad(00a20B10B10B",
+                                         "imageAtomicXor(01R10D00D00D",
+                                         "imageAtomicXor(01T20D00D00E",
+                                         "dFdxCoarse(00B",
+                                         "imageAtomicMin(01a20D00D",
+                                         "texture(00J20B00B",
+                                         "refract(20B20B00B",
+                                         "ceil(30C",
+                                         "gl_MaxGeometryOutputComponents",
+                                         "noise1(30B",
+                                         "log2(30B",
+                                         "textureProjGrad(00d30B10B10B",
+                                         "mod(20C20C",
+                                         "fract(30C",
+                                         "texelFetch(00t00D00D",
+                                         "imageAtomicXor(01L00D00D",
+                                         "max(30E30E",
+                                         "gl_MaxFragmentAtomicCounterBuffers",
+                                         "gl_in",
+                                         "noise4(00B",
+                                         "distance(10C10C",
+                                         "textureProjLodOffset(00J30B00B20D",
+                                         "imageAtomicMax(01H20D00E",
+                                         "imageAtomicMax(01H20D00D",
+                                         "imageStore(01h00D30E",
+                                         "textureGatherOffsets(00d10B00B70D",
+                                         "texelFetch(00c20D00D",
+                                         "sqrt(00B",
+                                         "sqrt(00C",
+                                         "textureProjLod(00R30B00B",
+                                         "noise3(10B",
+                                         "texelFetch(00q10D",
+                                         "imageAtomicAnd(01F20D00D",
+                                         "textureLod(00m20B00B",
+                                         "textureProjOffset(00m30B00D00B",
+                                         "textureProjGrad(00v30B10B10B",
+                                         "clamp(20D20D20D",
+                                         "imageAtomicMin(01P10D00E",
+                                         "imageAtomicAdd(01C20D00E",
+                                         "clamp(00C00C00C",
+                                         "imageAtomicCompSwap(01b20D00E00E",
+                                         "max(10E00E",
+                                         "textureGrad(00U20B10B10B",
+                                         "imageAtomicCompSwap(01B20D00D00D",
+                                         "imageLoad(00z10D",
+                                         "clamp(30C00C00C",
+                                         "sinh(20B",
+                                         "matrixCompMult(E0BE0B",
+                                         "fwidthFine(00B",
+                                         "gl_PerVertex",
+                                         "textureGradOffset(00m20B00B00B00D",
+                                         "textureQueryLevels(00p",
+                                         "gl_WorkGroupSize",
+                                         "asinh(30B",
+                                         "cross(20C20C",
+                                         "textureGather(00a20B",
+                                         "textureProjGradOffset(00O20B10B10B10D",
+                                         "pow(30B30B",
+                                         "imageAtomicCompSwap(01G20D00E00E",
+                                         "smoothstep(10B10B10B",
+                                         "textureProj(00O30B",
+                                         "imageAtomicAdd(01Q10D00D00E",
+                                         "textureQueryLod(00R10B",
+                                         "imageAtomicCompSwap(01T20D00D00D00D",
+                                         "imageAtomicAdd(01R10D00D00D",
+                                         "imageAtomicAdd(01R10D00D00E",
+                                         "imageAtomicExchange(01E20D00D",
+                                         "imageAtomicExchange(01E20D00E",
+                                         "isnan(00B",
+                                         "isnan(00C",
+                                         "imulExtended(10D10D10D10D",
+                                         "textureProjGrad(00o10B00B00B",
+                                         "refract(10C10C00B",
+                                         "min(00E00E",
+                                         "texture2DProj(00I30B",
+                                         "textureGradOffset(00I10B10B10B10D",
+                                         "textureLodOffset(00J20B00B20D",
+                                         "notEqual(20B20B",
+                                         "atomicCompSwap(00D00D00D",
+                                         "imageAtomicOr(01W10D00E",
+                                         "imageAtomicOr(01W10D00D",
+                                         "textureOffset(00i20B00D",
+                                         "dFdyFine(00B",
+                                         "textureLod(00a20B00B",
+                                         "textureProj(00N30B",
+                                         "refract(30C30C00B",
+                                         "equal(30D30D",
+                                         "packSnorm2x16(10B",
+                                         "floatBitsToUint(30B",
+                                         "imageLoad(00y10D",
+                                         "textureOffset(00R10B10D",
+                                         "textureProjGrad(00q20B10B10B",
+                                         "textureProjGradOffset(00R20B10B10B10D",
+                                         "ldexp(30B30D",
+                                         "max(30B00B",
+                                         "imageAtomicAdd(01Q10D00D00D",
+                                         "atomicCounterOr(00G00E",
+                                         "step(30B30B",
+                                         "imageAtomicOr(01T20D00D00D",
+                                         "imageAtomicOr(01T20D00D00E",
+                                         "textureProj(00I30B00B",
+                                         "imageAtomicExchange(01D20D00E",
+                                         "textureOffset(00g00B00D00B",
+                                         "imageAtomicExchange(01D20D00B",
+                                         "imageAtomicMin(01g00D00E",
+                                         "abs(00D",
+                                         "abs(00C",
+                                         "abs(00B",
+                                         "textureLod(00R10B00B",
+                                         "dFdxCoarse(10B",
+                                         "texture1D(00g00B",
+                                         "frexp(10C10D",
+                                         "imageAtomicMax(01B20D00D",
+                                         "imageAtomicAdd(01g00D00E",
+                                         "texture2DLod(00I10B00B",
+                                         "textureProjGradOffset(00X20B10B10B10D",
+                                         "round(20C",
+                                         "EndPrimitive(",
+                                         "step(00B30B",
+                                         "round(20B",
+                                         "equal(30E30E",
+                                         "imageAtomicCompSwap(01R10D00D00E00E",
+                                         "step(00C20C",
+                                         "dot(00C00C",
+                                         "max(30C30C",
+                                         "atomicOr(00D00D",
+                                         "texture2DProj(00M20B",
+                                         "notEqual(10D10D",
+                                         "textureSize(00V",
+                                         "imageAtomicAnd(01h00D00D",
+                                         "min(20C00C",
+                                         "imageAtomicAdd(01G20D00E",
+                                         "imageAtomicAdd(01G20D00D",
+                                         "findLSB(30D",
+                                         "findLSB(30E",
+                                         "textureProj(00X20B00B",
+                                         "shadow2D(00d20B",
+                                         "imageAtomicAdd(01N10D00E",
+                                         "imageAtomicAdd(01N10D00D",
+                                         "textureGatherOffset(00U20B10D",
+                                         "faceforward(10B10B10B",
+                                         "imageAtomicAnd(01h00D00E",
+                                         "min(10D00D",
+                                         "imageAtomicOr(01B20D00E",
+                                         "imageAtomicOr(01B20D00D",
+                                         "EmitStreamVertex(00D",
+                                         "imageAtomicCompSwap(01J20D00D00D",
+                                         "all(20F",
+                                         "imageSize(01J",
+                                         "imageSize(01K",
+                                         "imageSize(01H",
+                                         "imageSize(01I",
+                                         "packHalf2x16(10B",
+                                         "textureProj(00I20B00B",
+                                         "imageSize(01L",
+                                         "imageSize(01M",
+                                         "imageSize(01B",
+                                         "imageSize(01C",
+                                         "imageSize(01A",
+                                         "imageSize(01F",
+                                         "imageSize(01G",
+                                         "imageSize(01D",
+                                         "imageSize(01E",
+                                         "imageSize(01Z",
+                                         "imageAtomicExchange(01L00D00B",
+                                         "imageAtomicMax(01Z20D00E",
+                                         "texelFetch(00X10D00D",
+                                         "notEqual(30F30F",
+                                         "imageSize(01R",
+                                         "imageSize(01S",
+                                         "imageSize(01P",
+                                         "imageSize(01Q",
+                                         "imageSize(01V",
+                                         "textureQueryLod(00g00B",
+                                         "imageSize(01T",
+                                         "imageSize(01U",
+                                         "imageSize(01h",
+                                         "fract(20C",
+                                         "fract(20B",
+                                         "textureGatherOffset(00X10B10D",
+                                         "imageSize(01c",
+                                         "imageSize(01a",
+                                         "imageSize(01f",
+                                         "texture2DProjGradEXT(00I20B10B10B",
+                                         "imageSize(01d",
+                                         "textureLod(00S20B00B",
+                                         "step(30C30C",
+                                         "imageAtomicMin(01J20D00D",
+                                         "gl_FragDepth",
+                                         "textureGather(00x30B",
+                                         "mix(30B30B30F",
+                                         "mix(30B30B30B",
+                                         "textureGather(00Z20B00D",
+                                         "noise4(30B",
+                                         "sqrt(30C",
+                                         "sqrt(30B",
+                                         "imageStore(01E20D30B",
+                                         "exp(00B",
+                                         "max(30D30D",
+                                         "gl_MaxGeometryTextureImageUnits",
+                                         "interpolateAtCentroid(10B",
+                                         "texture(00q10B",
+                                         "textureSize(00M00D",
+                                         "textureSamples(00c",
+                                         "angle_BaseInstance",
+                                         "mix(10F10F10F",
+                                         "textureGradOffset(00U20B10B10B10D",
+                                         "gl_Position",
+                                         "textureGradOffset(00O10B10B10B10D",
+                                         "textureProj(00M30B",
+                                         "textureGradOffset(00L20B10B10B10D",
+                                         "imageAtomicExchange(01V20D00D00D",
+                                         "imageAtomicExchange(01J20D00B",
+                                         "imageAtomicExchange(01J20D00E",
+                                         "imageAtomicExchange(01J20D00D",
+                                         "textureQueryLod(00l20B",
+                                         "imageAtomicOr(01M00D00E",
+                                         "dot(20B20B",
+                                         "textureProjGrad(00v20B10B10B",
+                                         "textureProjLod(00S30B00B",
+                                         "textureProjGrad(00R20B10B10B",
+                                         "imageAtomicMax(00z10D00E",
+                                         "imageAtomicMax(00z10D00D",
+                                         "normalize(30C",
+                                         "normalize(30B",
+                                         "textureOffset(00O10B10D",
+                                         "textureProjGrad(00I20B10B10B",
+                                         "textureGather(00e20B",
+                                         "imageAtomicMax(01V20D00D00E",
+                                         "texture2D(00M10B",
+                                         "imageAtomicAdd(01a20D00E",
+                                         "fwidthFine(30B",
+                                         "textureGather(00K20B00D",
+                                         "textureCubeLodEXT(00K20B00B",
+                                         "textureGather(00T20B00D",
+                                         "textureProj(00N20B",
+                                         "textureQueryLod(00I10B",
+                                         "imageAtomicCompSwap(01A10D00E00E",
+                                         "dFdyFine(10B",
+                                         "modf(10C10C",
+                                         "imageAtomicMax(01E20D00D",
+                                         "imageAtomicMax(01E20D00E",
+                                         "textureProjLodOffset(00X30B00B10D",
+                                         "textureProjLod(00m30B00B",
+                                         "textureProjOffset(00g30B00D00B",
+                                         "texelFetchOffset(00U20D00D10D",
+                                         "imageAtomicCompSwap(00z10D00E00E",
+                                         "imageAtomicMin(01D20D00E",
+                                         "textureProjGradOffset(00q30B10B10B10D",
+                                         "textureGradOffset(00d20B10B10B10D",
+                                         "fwidthCoarse(20B",
+                                         "textureProjOffset(00d30B10D",
+                                         "equal(20F20F",
+                                         "",
+                                         "mix(20C20C00C",
+                                         "usubBorrow(10E10E10E",
+                                         "imageStore(01S10D00D30E",
+                                         "equal(10B10B",
+                                         "imageAtomicExchange(01Q10D00D00D",
+                                         "imageAtomicExchange(01Q10D00D00E",
+                                         "imageAtomicExchange(01Q10D00D00B",
+                                         "textureLodOffset(00U20B00B10D",
+                                         "isnan(10C",
+                                         "isnan(10B",
+                                         "imageAtomicMin(01H20D00D",
+                                         "imageAtomicXor(01A10D00D",
+                                         "imageAtomicXor(01A10D00E",
+                                         "imageAtomicCompSwap(01C20D00D00D",
+                                         "textureGrad(00R00B00B00B",
+                                         "imageAtomicXor(01W10D00D",
+                                         "imageAtomicXor(01W10D00E",
+                                         "atomicMin(00D00D",
+                                         "textureSize(00X00D",
+                                         "greaterThan(10B10B",
+                                         "mix(00C00C00C",
+                                         "clamp(30D00D00D",
+                                         "mix(20E20E20F",
+                                         "floatBitsToInt(10B",
+                                         "textureProjOffset(00R30B10D00B",
+                                         "textureGather(00U20B00D",
+                                         "floatBitsToInt(00B",
+                                         "imageLoad(01a20D",
+                                         "floatBitsToUint(00B",
+                                         "min(30C30C",
+                                         "textureSamples(00Q",
+                                         "textureGradOffset(00i20B00B00B00D",
+                                         "imageAtomicXor(00z10D00D",
+                                         "texture2DRectProj(00O20B",
+                                         "modf(20C20C",
+                                         "tan(20B",
+                                         "floor(00C",
+                                         "floor(00B",
+                                         "imageAtomicMax(01O10D00E",
+                                         "imageAtomicMax(01O10D00D",
+                                         "mod(30C30C",
+                                         "gl_DrawID",
+                                         "textureOffset(00t00B00D",
+                                         "texture3DLod(00J20B00B",
+                                         "texture(00R10B00B",
+                                         "modf(00B00B",
+                                         "notEqual(20D20D",
+                                         "imageAtomicExchange(01R10D00D00E",
+                                         "imageAtomicExchange(01R10D00D00D",
+                                         "ldexp(10C10D",
+                                         "imageAtomicXor(00y10D00E",
+                                         "imageAtomicXor(00y10D00D",
+                                         "determinant(A0B",
+                                         "textureLodOffset(00i20B00B00D",
+                                         "imageStore(01D20D30E",
+                                         "shadow1DLod(00m20B00B",
+                                         "imageAtomicOr(01I20D00E",
+                                         "distance(00C00C",
+                                         "isnan(30B",
+                                         "textureProjOffset(00o30B00D",
+                                         "lessThanEqual(30D30D",
+                                         "textureProj(00M30B00B",
+                                         "texture2DProj(00M30B",
+                                         "atomicCounterMax(00G00E",
+                                         "atomicCounterExchange(00G00E",
+                                         "textureGrad(00I10B10B10B",
+                                         "step(00B20B",
+                                         "texture2DProjLod(00I20B00B",
+                                         "step(00C30C",
+                                         "yuv_2_rgb(20B00H",
+                                         "texelFetch(00b10D00D",
+                                         "textureProj(00J30B00B",
+                                         "textureGather(00R10B",
+                                         "imageAtomicCompSwap(01K00D00E00E",
+                                         "imageAtomicOr(01V20D00D00D",
+                                         "imageAtomicOr(01V20D00D00E",
+                                         "imageAtomicExchange(01P10D00D",
+                                         "imageLoad(01L00D",
+                                         "min(10D10D",
+                                         "all(30F",
+                                         "imageAtomicExchange(01P10D00E",
+                                         "imageAtomicMax(01a20D00D",
+                                         "imageAtomicAnd(01S10D00D00E",
+                                         "imageAtomicAnd(01S10D00D00D",
+                                         "angle_BaseVertex",
+                                         "bitfieldReverse(20D",
+                                         "bitfieldReverse(20E",
+                                         "imageAtomicExchange(01I20D00D",
+                                         "imageAtomicExchange(01I20D00E",
+                                         "imageAtomicExchange(01I20D00B",
+                                         "gl_MaxGeometryInputComponents",
+                                         "texture(00u20B",
+                                         "textureGather(00v20B",
+                                         "fract(10B",
+                                         "fract(10C",
+                                         "textureGatherOffset(00O10B10D00D",
+                                         "textureQueryLod(00K20B",
+                                         "textureLodOffset(00I10B00B10D",
+                                         "imageAtomicCompSwap(01S10D00D00E00E",
+                                         "noise4(20B",
+                                         "textureOffset(00U20B10D",
+                                         "min(30B00B",
+                                         "imageAtomicMax(00y10D00D",
+                                         "imageAtomicMax(00y10D00E",
+                                         "atomicAnd(00D00D",
+                                         "gl_FragColor",
+                                         "exp(10B",
+                                         "bitCount(30E",
+                                         "bitCount(30D",
+                                         "unpackUnorm2x16(00E",
+                                         "sqrt(20B",
+                                         "sqrt(20C",
+                                         "textureGrad(00L20B10B10B",
+                                         "interpolateAtCentroid(00B",
+                                         "textureSize(00o00D",
+                                         "gl_MaxImageUnits",
+                                         "textureProjGrad(00o30B00B00B",
+                                         "packUnorm4x8(30B",
+                                         "texelFetch(00P10D00D",
+                                         "texture(00O10B",
+                                         "imageAtomicMin(01M00D00D",
+                                         "imageAtomicMin(01M00D00E",
+                                         "texture(00e30B00B",
+                                         "imageAtomicMin(01O10D00E",
+                                         "imageAtomicMin(01O10D00D",
+                                         "imageAtomicExchange(01B20D00E",
+                                         "imageAtomicExchange(01B20D00D",
+                                         "gl_FragCoord",
+                                         "imageAtomicMax(01X10D00D",
+                                         "textureGrad(00u10B00B00B",
+                                         "fwidthFine(20B",
+                                         "textureQueryLod(00o00B",
+                                         "imageAtomicAnd(01E20D00E",
+                                         "imageAtomicAnd(01E20D00D",
+                                         "normalize(00B",
+                                         "normalize(00C",
+                                         "clamp(10C00C00C",
+                                         "imageAtomicCompSwap(01f00D00E00E",
+                                         "imageAtomicOr(01A10D00E",
+                                         "imageAtomicOr(01A10D00D",
+                                         "imageAtomicOr(01K00D00D",
+                                         "imageAtomicOr(01K00D00E",
+                                         "atomicMax(00D00D",
+                                         "textureProjGrad(00m30B00B00B",
+                                         "imageAtomicAnd(01R10D00D00E",
+                                         "floatBitsToUint(10B",
+                                         "textureLod(00J20B00B",
+                                         "imageAtomicExchange(01D20D00D",
+                                         "textureGrad(00O10B10B10B",
+                                         "dFdyFine(20B",
+                                         "textureSize(00I00D",
+                                         "gl_MaxComputeWorkGroupSize",
+                                         "texelFetchOffset(00R10D00D10D",
+                                         "dFdxFine(10B",
+                                         "imageAtomicAnd(01K00D00E",
+                                         "imageAtomicAnd(01K00D00D",
+                                         "textureLodOffset(00X10B00B10D",
+                                         "texture(00T20B00B",
+                                         "textureGatherOffsets(00n10B00B70D",
+                                         "imageAtomicExchange(01K00D00D",
+                                         "imageAtomicCompSwap(00y10D00D00D",
+                                         "log(30B",
+                                         "notEqual(20F20F",
+                                         "allInvocationsEqual(00F",
+                                         "imageStore(01G20D30E",
+                                         "dFdyCoarse(30B",
+                                         "textureProjLod(00R20B00B",
+                                         "notEqual(30D30D",
+                                         "fwidthCoarse(30B",
+                                         "textureProjOffset(00I20B10D",
+                                         "imageStore(01X10D30D",
+                                         "textureQueryLevels(00l",
+                                         "textureQueryLevels(00m",
+                                         "textureQueryLevels(00o",
+                                         "textureQueryLevels(00h",
+                                         "textureQueryLevels(00i",
+                                         "textureQueryLevels(00k",
+                                         "textureQueryLevels(00d",
+                                         "textureQueryLevels(00e",
+                                         "textureQueryLevels(00f",
+                                         "textureQueryLevels(00g",
+                                         "gl_MaxDrawBuffers",
+                                         "textureQueryLevels(00a",
+                                         "atomicCounterMin(00G00E",
+                                         "textureGradOffset(00u10B00B00B00D",
+                                         "textureQueryLevels(00x",
+                                         "textureQueryLevels(00t",
+                                         "textureQueryLevels(00u",
+                                         "imulExtended(20D20D20D20D",
+                                         "any(30F",
+                                         "distance(30B30B",
+                                         "textureQueryLevels(00s",
+                                         "textureQueryLevels(00L",
+                                         "textureQueryLevels(00I",
+                                         "textureQueryLevels(00J",
+                                         "textureQueryLevels(00K",
+                                         "imageAtomicExchange(01L00D00D",
+                                         "imageAtomicAnd(01W10D00D",
+                                         "imageAtomicAnd(01W10D00E",
+                                         "texture3D(00J20B00B",
+                                         "texture1DLod(00g00B00B",
+                                         "textureQueryLevels(00X",
+                                         "textureQueryLevels(00Y",
+                                         "textureQueryLevels(00Z",
+                                         "dot(30B30B",
+                                         "textureQueryLevels(00T",
+                                         "textureQueryLevels(00U",
+                                         "textureQueryLevels(00R",
+                                         "textureQueryLevels(00S",
+                                         "gl_MaxTextureImageUnits",
+                                         "usubBorrow(20E20E20E",
+                                         "textureProj(00t30B00B",
+                                         "shadow1DProj(00m30B00B",
+                                         "clamp(30B00B00B",
+                                         "texture2DRectProj(00O30B",
+                                         "imageAtomicMax(01B20D00E",
+                                         "max(10D00D",
+                                         "textureGradOffset(00n20B10B10B10D",
+                                         "clamp(00D00D00D",
+                                         "floor(30B",
+                                         "floor(30C",
+                                         "imageStore(01P10D30E",
+                                         "textureProjGradOffset(00S30B20B20B20D",
+                                         "reflect(30C30C",
+                                         "gl_PointCoord",
+                                         "imageAtomicOr(01D20D00E",
+                                         "textureGatherOffset(00v10B10D",
+                                         "imageAtomicOr(01D20D00D",
+                                         "packDouble2x32(10E",
+                                         "clamp(10B00B00B",
+                                         "imageStore(01F20D30D",
+                                         "texelFetchOffset(00S20D00D20D",
+                                         "lessThan(10D10D",
+                                         "textureSize(00g00D",
+                                         "textureGatherOffset(00U20B10D00D",
+                                         "textureGatherOffset(00q10B10D00D",
+                                         "textureGather(00I10B00D",
+                                         "texture1DProjLod(00g30B00B",
+                                         "texelFetch(00V10D00D",
+                                         "imageAtomicExchange(01h00D00E",
+                                         "imageAtomicExchange(01h00D00D",
+                                         "atan(30B30B",
+                                         "imageAtomicExchange(01h00D00B",
+                                         "textureGatherOffsets(00R10B70D",
+                                         "imageAtomicMax(01a20D00E",
+                                         "textureProjLod(00g30B00B",
+                                         "max(00B00B",
+                                         "imageAtomicOr(01J20D00E",
+                                         "imageAtomicOr(01J20D00D",
+                                         "imageAtomicMax(01F20D00E",
+                                         "imageAtomicMax(01F20D00D",
+                                         "exp2(20B",
+                                         "smoothstep(30C30C30C",
+                                         "imageAtomicExchange(00z10D00B",
+                                         "imageAtomicExchange(00z10D00E",
+                                         "imageAtomicExchange(00z10D00D",
+                                         "textureProj(00q20B",
+                                         "textureProjLod(00t10B00B",
+                                         "imageAtomicExchange(01K00D00E",
+                                         "imageAtomicExchange(01K00D00B",
+                                         "gl_MaxCombinedTextureImageUnits",
+                                         "textureSize(00k00D",
+                                         "reflect(20B20B",
+                                         "imageAtomicXor(01V20D00D00E",
+                                         "imageAtomicXor(01V20D00D00D",
+                                         "equal(10F10F",
+                                         "imageLoad(01f00D",
+                                         "acos(30B",
+                                         "dFdx(10B",
+                                         "bitfieldReverse(30E",
+                                         "bitfieldReverse(30D",
+                                         "texture1DProj(00g30B",
+                                         "fract(00C",
+                                         "fract(00B",
+                                         "min(30E00E",
+                                         "gl_MinProgramTexelOffset",
+                                         "interpolateAtOffset(20B10B",
+                                         "gl_MaxGeometryTotalOutputComponents",
+                                         "reflect(30B30B",
+                                         "textureGatherOffsets(00I10B70D00D",
+                                         "interpolateAtCentroid(30B",
+                                         "textureGather(00s30B",
+                                         "imageAtomicXor(01X10D00E",
+                                         "imageAtomicXor(01X10D00D",
+                                         "imageStore(01Z20D30B",
+                                         "texture1D(00g00B00B",
+                                         "pow(00B00B",
+                                         "mod(00B00B",
+                                         "faceforward(30C30C30C",
+                                         "roundEven(10B",
+                                         "roundEven(10C",
+                                         "atanh(30B",
+                                         "textureLod(00K20B00B",
+                                         "bitCount(20D",
+                                         "bitCount(20E",
+                                         "texelFetch(00L20D00D",
+                                         "dFdxFine(00B",
+                                         "distance(20B20B",
+                                         "textureGradOffset(00q10B10B10B10D",
+                                         "uaddCarry(30E30E30E",
+                                         "textureSize(00U00D",
+                                         "textureProjOffset(00o10B00D00B",
+                                         "gl_MaxCombinedImageUniforms",
+                                         "atomicCounterXor(00G00E",
+                                         "imageAtomicOr(01g00D00D",
+                                         "imageAtomicOr(01g00D00E",
+                                         "gl_GlobalInvocationID",
+                                         "gl_VertexID",
+                                         "imageAtomicMin(01L00D00E",
+                                         "smoothstep(20C20C20C",
+                                         "imageAtomicCompSwap(01U20D00D00D00D",
+                                         "atomicOr(00E00E",
+                                         "imageAtomicExchange(01T20D00D00B",
+                                         "mix(10B10B10F",
+                                         "reflect(10C10C",
+                                         "mix(10B10B10B",
+                                         "textureProj(00Y30B00B",
+                                         "imageAtomicMax(01I20D00D",
+                                         "imageAtomicMax(01I20D00E",
+                                         "frexp(20B20D",
+                                         "textureGatherOffset(00I10B10D00D",
+                                         "notEqual(20E20E",
+                                         "textureLodOffset(00d20B00B10D",
+                                         "inverse(A0B",
+                                         "textureProjGrad(00X20B10B10B",
+                                         "imageLoad(01J20D",
+                                         "textureSize(00Y00D",
+                                         "atan(20B20B",
+                                         "usubBorrow(00E00E00E",
+                                         "imageAtomicXor(01M00D00E",
+                                         "imageAtomicXor(01M00D00D",
+                                         "dFdyFine(30B",
+                                         "textureQueryLod(00s20B",
+                                         "imageAtomicAnd(01N10D00D",
+                                         "texture(00v10B",
+                                         "subpassLoad(01n00D",
+                                         "textureProjLodOffset(00g10B00B00D",
+                                         "step(10C10C",
+                                         "textureQueryLod(00x20B",
+                                         "fma(10B10B10B",
+                                         "smoothstep(00B00B10B",
+                                         "imageAtomicCompSwap(01a20D00D00D",
+                                         "imageSize(01N",
+                                         "textureLod(00u10B00B",
+                                         "textureProjGradOffset(00m30B00B00B00D",
+                                         "fwidthCoarse(00B",
+                                         "dFdyCoarse(20B",
+                                         "textureProjGradOffset(00o30B00B00B00D",
+                                         "textureProj(00g30B00B",
+                                         "bitfieldExtract(00E00D00D",
+                                         "imageStore(01I20D30D",
+                                         "distance(30C30C",
+                                         "any(20F",
+                                         "textureGatherOffsets(00L20B70D",
+                                         "textureLod(00g00B00B",
+                                         "sin(10B",
+                                         "textureSize(00N00D",
+                                         "mod(20B20B",
+                                         "imageAtomicOr(01h00D00E",
+                                         "imageAtomicOr(01h00D00D",
+                                         "textureGrad(00k30B20B20B",
+                                         "textureProjOffset(00o10B00D",
+                                         "imageAtomicMin(01A10D00E",
+                                         "imageAtomicMin(01A10D00D",
+                                         "textureGradOffset(00f30B10B10B10D",
+                                         "max(20D20D",
+                                         "max(10D10D",
+                                         "imageAtomicCompSwap(01N10D00E00E",
+                                         "textureGradOffset(00t00B00B00B00D",
+                                         "refract(30B30B00B",
+                                         "floor(20C",
+                                         "floor(20B",
+                                         "texelFetchOffset(00t00D00D00D",
+                                         "imageAtomicOr(01a20D00E",
+                                         "matrixCompMult(F0BF0B",
+                                         "umulExtended(10E10E10E10E",
+                                         "texture(00d20B00B",
+                                         "imageAtomicAdd(01Z20D00D",
+                                         "imageAtomicAdd(01Z20D00E",
+                                         "umulExtended(30E30E30E30E",
+                                         "textureGatherOffsets(00q10B70D00D",
+                                         "textureGradOffset(00Y20B20B20B20D",
+                                         "textureGatherOffset(00a20B10D",
+                                         "textureGrad(00f30B10B10B",
+                                         "atomicCounterSubtract(00G00E",
+                                         "imageAtomicXor(01C20D00E",
+                                         "modf(20B20B",
+                                         "imageAtomicAnd(01Y10D00D",
+                                         "imageAtomicAnd(01Y10D00E",
+                                         "noise1(00B",
+                                         "imageLoad(01M00D",
+                                         "imageAtomicCompSwap(01L00D00E00E",
+                                         "length(30C",
+                                         "length(30B",
+                                         "mod(30B30B",
+                                         "mix(10C10C10F",
+                                         "imageAtomicMin(00z10D00E",
+                                         "imageAtomicMin(00z10D00D",
+                                         "exp2(30B",
+                                         "allInvocations(00F",
+                                         "max(20C00C",
+                                         "texture3DProj(00J30B00B",
+                                         "imageLoad(01Q10D00D",
+                                         "textureProjLod(00X30B00B",
+                                         "textureProjGradOffset(00I30B10B10B10D",
+                                         "cosh(30B",
+                                         "textureProj(00q30B",
+                                         "textureOffset(00S20B20D00B",
+                                         "usubBorrow(30E30E30E",
+                                         "textureProjOffset(00R20B10D00B",
+                                         "imageAtomicXor(01f00D00D",
+                                         "imageAtomicXor(01f00D00E",
+                                         "textureOffset(00t00B00D00B",
+                                         "textureOffset(00i20B00D00B",
+                                         "texture3DProj(00J30B",
+                                         "matrixCompMult(B0BB0B",
+                                         "lessThan(30B30B",
+                                         "cross(20B20B",
+                                         "imageSize(01O",
+                                         "textureGrad(00q10B10B10B",
+                                         "clamp(20B00B00B",
+                                         "dFdx(00B",
+                                         "findLSB(00D",
+                                         "textureProjLodOffset(00o30B00B00D",
+                                         "textureProj(00R20B00B",
+                                         "acos(20B",
+                                         "texelFetch(00r00D",
+                                         "imageAtomicAnd(01B20D00D",
+                                         "max(20B20B",
+                                         "lessThan(20E20E",
+                                         "textureProjOffset(00g10B00D00B",
+                                         "equal(30F30F",
+                                         "sign(00C",
+                                         "cosh(00B",
+                                         "bitfieldExtract(00D00D00D",
+                                         "imageAtomicMin(01E20D00D",
+                                         "imageAtomicMin(01E20D00E",
+                                         "textureLod(00Z20B00B",
+                                         "sign(00D",
+                                         "textureOffset(00Y20B20D",
+                                         "transpose(60B",
+                                         "imageAtomicExchange(01L00D00E",
+                                         "imageAtomicAdd(01O10D00D",
+                                         "imageAtomicAdd(01O10D00E",
+                                         "faceforward(00B00B00B",
+                                         "gl_NumWorkGroups",
+                                         "imageAtomicOr(01O10D00E",
+                                         "imageAtomicOr(01O10D00D",
+                                         "imageAtomicAdd(01b20D00D",
+                                         "interpolateAtCentroid(20B",
+                                         "textureProjLodOffset(00R30B00B10D",
+                                         "textureGrad(00h10B00B00B",
+                                         "imageAtomicExchange(01U20D00D00B",
+                                         "texture1DProj(00g30B00B",
+                                         "textureQueryLod(00h00B",
+                                         "imageAtomicExchange(01U20D00D00E",
+                                         "modf(00C00C",
+                                         "textureProjLod(00t30B00B",
+                                         "textureOffset(00o00B00D",
+                                         "imageAtomicExchange(01U20D00D00D",
+                                         "textureGather(00U20B",
+                                         "imageStore(01H20D30B",
+                                         "texelFetch(00Q20D00D",
+                                         "roundEven(00C",
+                                         "roundEven(00B",
+                                         "texelFetchOffset(00O10D10D",
+                                         "atanh(20B",
+                                         "clamp(10E00E00E",
+                                         "dFdxFine(30B",
+                                         "imageAtomicAdd(01L00D00E",
+                                         "textureQueryLod(00J20B",
+                                         "textureProjOffset(00X30B10D",
+                                         "gl_MaxFragmentUniformVectors",
+                                         "texture2DProjLod(00I30B00B",
+                                         "interpolateAtOffset(10B10B",
+                                         "max(10C10C",
+                                         "texelFetch(00g00D00D",
+                                         "abs(30B",
+                                         "bitfieldInsert(10E10E00D00D",
+                                         "packSnorm4x8(30B",
+                                         "mix(10B10B00B",
+                                         "imageSize(01b",
+                                         "clamp(30D30D30D",
+                                         "textureQueryLod(00d10B",
+                                         "mod(10C00C",
+                                         "imageAtomicMax(01G20D00D",
+                                         "imageAtomicMax(01G20D00E",
+                                         "imageStore(01R10D00D30D",
+                                         "determinant(F0B",
+                                         "transpose(A0B",
+                                         "pow(20B20B",
+                                         "imageSize(01g",
+                                         "imageAtomicExchange(01G20D00B",
+                                         "imageSize(01e",
+                                         "imageAtomicExchange(01G20D00D",
+                                         "imageAtomicExchange(01G20D00E",
+                                         "imageLoad(01Y10D",
+                                         "imageAtomicMax(01g00D00D",
+                                         "imageAtomicMax(01g00D00E",
+                                         "textureProj(00v30B",
+                                         "textureProjGrad(00O20B10B10B",
+                                         "log2(20B",
+                                         "dot(30C30C",
+                                         "fwidthCoarse(10B",
+                                         "textureProjOffset(00I20B10D00B",
+                                         "textureGatherOffsets(00U20B70D00D",
+                                         "notEqual(10F10F",
+                                         "textureGatherOffsets(00O10B70D",
+                                         "smoothstep(00B00B00B",
+                                         "textureProjLodOffset(00d30B00B10D",
+                                         "imageAtomicAnd(01P10D00E",
+                                         "imageAtomicAnd(01P10D00D",
+                                         "textureProjLodOffset(00I30B00B10D",
+                                         "gl_MaxCombinedAtomicCounters",
+                                         "bitfieldInsert(10D10D00D00D",
+                                         "imageAtomicAdd(00y10D00E",
+                                         "imageAtomicAdd(00y10D00D",
+                                         "imageAtomicAnd(01Q10D00D00E",
+                                         "imageAtomicAnd(01Q10D00D00D",
+                                         "imageAtomicCompSwap(01L00D00D00D",
+                                         "textureGather(00k30B",
+                                         "texture(00J20B",
+                                         "lessThanEqual(10D10D",
+                                         "textureProjOffset(00o30B00D00B",
+                                         "gl_MaxVaryingVectors",
+                                         "textureSize(00d00D",
+                                         "sin(00B",
+                                         "imageLoad(01N10D",
+                                         "uaddCarry(10E10E10E",
+                                         "imageAtomicOr(01Z20D00E",
+                                         "imageAtomicOr(01Z20D00D",
+                                         "mix(10C10C00C",
+                                         "atomicCounterIncrement(00G",
+                                         "imageAtomicAdd(01J20D00D",
+                                         "imageAtomicAdd(01J20D00E",
+                                         "imageAtomicCompSwap(01S10D00D00D00D",
+                                         "imageAtomicMax(01W10D00E",
+                                         "textureProj(00o10B00B",
+                                         "imageAtomicAdd(01U20D00D00D",
+                                         "imageAtomicAdd(01U20D00D00E",
+                                         "textureProjOffset(00m30B00D",
+                                         "imageAtomicExchange(01Y10D00B",
+                                         "equal(10E10E",
+                                         "imageAtomicExchange(01Y10D00E",
+                                         "imageAtomicExchange(01Y10D00D",
+                                         "imageAtomicExchange(01O10D00B",
+                                         "imageAtomicExchange(01O10D00E",
+                                         "textureProjOffset(00J30B20D",
+                                         "imageAtomicXor(01D20D00D",
+                                         "imageAtomicXor(01D20D00E",
+                                         "notEqual(10E10E",
+                                         "min(10C10C",
+                                         "textureProjGrad(00t10B00B00B",
+                                         "textureGather(00q20B00D",
+                                         "imageAtomicAnd(01B20D00E",
+                                         "imageAtomicAdd(01S10D00D00E",
+                                         "imageAtomicCompSwap(01O10D00D00D",
+                                         "shadow1DProjLod(00m30B00B",
+                                         "imageAtomicMax(01f00D00E",
+                                         "imageAtomicMax(01f00D00D",
+                                         "texture(00u20B00B",
+                                         "textureLodOffset(00R10B00B10D",
+                                         "trunc(10B",
+                                         "trunc(10C",
+                                         "gl_MaxComputeAtomicCounters",
+                                         "texelFetch(00u10D00D",
+                                         "dot(20C20C",
+                                         "gl_DepthRangeParameters",
+                                         "textureGather(00f20B",
+                                         "textureGatherOffsets(00L20B70D00D",
+                                         "noise1(10B",
+                                         "textureProjGrad(00g30B00B00B",
+                                         "shadow2DProj(00d30B",
+                                         "textureProj(00d30B00B",
+                                         "sign(10B",
+                                         "max(00E00E",
+                                         "texture(00a20B00B",
+                                         "textureProj(00o10B",
+                                         "refract(20C20C00B",
+                                         "textureProj(00M20B00B",
+                                         "imageLoad(01A10D",
+                                         "textureProjOffset(00X30B10D00B",
+                                         "exp2(00B",
+                                         "imageAtomicExchange(01H20D00B",
+                                         "texelFetchOffset(00u10D00D00D",
+                                         "imageAtomicCompSwap(01H20D00E00E",
+                                         "imageAtomicExchange(01H20D00E",
+                                         "imageAtomicExchange(01H20D00D",
+                                         "textureGatherOffset(00q10B10D",
+                                         "textureGather(00a20B00D",
+                                         "imageStore(01Q10D00D30B",
+                                         "ldexp(00C00D",
+                                         "textureSize(00s00D",
+                                         "imageAtomicXor(01P10D00E",
+                                         "imageAtomicOr(01I20D00D",
+                                         "texture(00N10B00B",
+                                         "gl_PrimitiveID",
+                                         "imageAtomicOr(01X10D00D",
+                                         "imageAtomicCompSwap(01Y10D00D00D",
+                                         "imageAtomicOr(01X10D00E",
+                                         "textureProjGrad(00I30B10B10B",
+                                         "gl_Layer",
+                                         "textureOffset(00d20B10D",
+                                         "dFdx(30B",
+                                         "imageAtomicMin(01V20D00D00D",
+                                         "imageAtomicMin(01V20D00D00E",
+                                         "gl_LastFragColor",
+                                         "textureProjGradOffset(00t30B00B00B00D",
+                                         "min(20E20E",
+                                         "asin(20B",
+                                         "imageAtomicCompSwap(01U20D00D00E00E",
+                                         "texture(00l30B00B",
+                                         "texture1DProjLod(00g10B00B",
+                                         "fwidth(10B",
+                                         "dFdy(00B",
+                                         "shadow2DLod(00d20B00B",
+                                         "texture1DProj(00g10B",
+                                         "lessThan(30E30E",
+                                         "imulExtended(30D30D30D30D",
+                                         "transpose(70B",
+                                         "imulExtended(00D00D00D00D",
+                                         "textureGatherOffsets(00q10B70D",
+                                         "imageAtomicAdd(01F20D00D",
+                                         "imageAtomicAdd(01F20D00E",
+                                         "texture(00S20B00B",
+                                         "textureLod(00Y20B00B",
+                                         "faceforward(10C10C10C",
+                                         "textureQueryLod(00u00B",
+                                         "min(20D00D",
+                                         "imageAtomicCompSwap(01P10D00D00D",
+                                         "uintBitsToFloat(00E",
+                                         "dFdxFine(20B",
+                                         "imageAtomicMin(01L00D00D",
+                                         "imageAtomicExchange(01g00D00D",
+                                         "bitfieldInsert(20D20D00D00D",
+                                         "mix(30B30B00B",
+                                         "textureQueryLod(00U10B",
+                                         "imageAtomicAnd(01N10D00E",
+                                         "tanh(00B",
+                                         "imageStore(00y10D30B",
+                                         "max(10C00C",
+                                         "matrixCompMult(D0BD0B",
+                                         "textureGatherOffsets(00v10B70D00D",
+                                         "gl_MaxComputeUniformComponents",
+                                         "imageAtomicAnd(01X10D00E",
+                                         "shadow2DProjLod(00d30B00B",
+                                         "imageAtomicAnd(01X10D00D",
+                                         "min(30B30B",
+                                         "reflect(20C20C",
+                                         "texelFetch(00h10D00D",
+                                         "memoryBarrierAtomicCounter(",
+                                         "bitfieldInsert(00E00E00D00D",
+                                         "imageAtomicMin(01Z20D00E",
+                                         "imageAtomicMin(01Z20D00D",
+                                         "imageAtomicAdd(01b20D00E",
+                                         "imageAtomicMin(01a20D00E",
+                                         "textureGrad(00d20B10B10B",
+                                         "atan(10B",
+                                         "imageAtomicMax(01T20D00D00D",
+                                         "imageAtomicMax(01T20D00D00E",
+                                         "imageAtomicCompSwap(01g00D00D00D",
+                                         "clamp(30C30C30C",
+                                         "textureProj(00v20B",
+                                         "step(00B10B",
+                                         "textureProjLod(00I20B00B",
+                                         "rgb_2_yuv(20B00H",
+                                         "imageStore(01B20D30B",
+                                         "imageLoad(01P10D",
+                                         "texture(00T20B",
+                                         "log2(10B",
+                                         "imageAtomicAnd(01D20D00D",
+                                         "imageAtomicAnd(01D20D00E",
+                                         "findLSB(20E",
+                                         "findLSB(20D",
+                                         "imageAtomicMin(01f00D00E",
+                                         "imageAtomicMin(01f00D00D",
+                                         "noise2(30B",
+                                         "imageAtomicOr(01U20D00D00E",
+                                         "greaterThanEqual(10B10B",
+                                         "imageAtomicXor(01K00D00D",
+                                         "clamp(10D10D10D",
+                                         "texelFetch(00M10D00D",
+                                         "textureQueryLod(00Y20B",
+                                         "transpose(F0B",
+                                         "textureOffset(00Y20B20D00B",
+                                         "textureGradOffset(00S20B20B20B20D",
+                                         "imageAtomicOr(01U20D00D00D",
+                                         "clamp(30E30E30E",
+                                         "textureSize(00R00D",
+                                         "imageAtomicAdd(01f00D00D",
+                                         "acosh(10B",
+                                         "imageAtomicAdd(01f00D00E",
+                                         "imageLoad(01b20D",
+                                         "textureOffset(00L20B10D00B",
+                                         "mod(20B00B",
+                                         "imageLoad(01U20D00D",
+                                         "textureProjLod(00J30B00B",
+                                         "subpassLoad(01i",
+                                         "subpassLoad(01k",
+                                         "transpose(90B",
+                                         "mix(30C30C00C",
+                                         "atomicAnd(00E00E",
+                                         "max(20D00D",
+                                         "texelFetchOffset(00I10D00D10D",
+                                         "textureQueryLod(00L10B",
+                                         "atomicCounter(00G",
+                                         "textureGrad(00m20B00B00B",
+                                         "noise3(20B",
+                                         "bitfieldInsert(30D30D00D00D",
+                                         "min(10C00C",
+                                         "greaterThan(10D10D",
+                                         "bitfieldExtract(10E00D00D",
+                                         "textureGradOffset(00h10B00B00B00D",
+                                         "imageAtomicMax(01V20D00D00D",
+                                         "texture2D(00I10B00B",
+                                         "greaterThan(20D20D",
+                                         "noise1(20B",
+                                         "textureProjLodOffset(00t10B00B00D",
+                                         "textureProjOffset(00O20B10D",
+                                         "trunc(00B",
+                                         "length(10C",
+                                         "length(10B",
+                                         "imageLoad(01R10D00D",
+                                         "imageAtomicAdd(01H20D00D",
+                                         "imageAtomicAdd(01H20D00E",
+                                         "subpassLoad(01j",
+                                         "dot(00B00B",
+                                         "tan(30B",
+                                         "textureLod(00T20B00B",
+                                         "textureProjGrad(00R30B10B10B",
+                                         "exp2(10B",
+                                         "textureProjOffset(00X20B10D00B",
+                                         "textureProjGradOffset(00X30B10B10B10D",
+                                         "matrixCompMult(A0BA0B",
+                                         "textureGatherOffsets(00v10B70D",
+                                         "textureGrad(00S20B20B20B",
+                                         "round(30B",
+                                         "round(30C",
+                                         "anyInvocation(00F",
+                                         "textureGrad(00x30B20B20B",
+                                         "imageAtomicCompSwap(01D20D00E00E",
+                                         "textureProjLod(00o30B00B",
+                                         "smoothstep(00C00C10C",
+                                         "interpolateAtSample(00B00D",
+                                         "dFdx(20B",
+                                         "texture(00L20B",
+                                         "barrier(",
+                                         "imageAtomicAdd(01a20D00D",
+                                         "textureGather(00k30B00D",
+                                         "findMSB(20D",
+                                         "textureGatherOffset(00L20B10D",
+                                         "imageAtomicMin(01S10D00D00D",
+                                         "imageAtomicMin(01S10D00D00E",
+                                         "textureProjOffset(00S30B20D00B",
+                                         "imageAtomicAdd(01D20D00D",
+                                         "normalize(10C",
+                                         "unpackSnorm4x8(00E",
+                                         "imageLoad(01C20D",
+                                         "imageAtomicMax(01C20D00D",
+                                         "imageAtomicMax(01C20D00E",
+                                         "textureGather(00l30B00B",
+                                         "normalize(10B",
+                                         "asin(30B",
+                                         "isnan(20B",
+                                         "isnan(20C",
+                                         "fwidth(00B",
+                                         "dFdy(10B",
+                                         "imageAtomicAdd(01P10D00E",
+                                         "imageAtomicAdd(01P10D00D",
+                                         "max(30E00E",
+                                         "textureLod(00d20B00B",
+                                         "textureOffset(00q10B10D",
+                                         "gl_LastFragData",
+                                         "mod(10B00B",
+                                         "texture(00g00B00B",
+                                         "uintBitsToFloat(10E",
+                                         "textureProjOffset(00t30B00D",
+                                         "matrixCompMult(70B70B",
+                                         "imageAtomicAdd(01I20D00D",
+                                         "imageAtomicMax(01M00D00D",
+                                         "imageAtomicMax(01M00D00E",
+                                         "textureLod(00k30B00B",
+                                         "imageAtomicAdd(01E20D00D",
+                                         "textureLodOffset(00Y20B00B20D",
+                                         "refract(00C00C00B",
+                                         "log2(00B",
+                                         "tanh(10B",
+                                         "imageAtomicMin(01I20D00E",
+                                         "textureLod(00h10B00B",
+                                         "imageStore(01b20D30E",
+                                         "textureGather(00O20B00D",
+                                         "gl_LocalInvocationID",
+                                         "clamp(00B00B00B",
+                                         "textureGather(00d10B",
+                                         "gl_MaxGeometryAtomicCounterBuffers",
+                                         "textureOffset(00p10B00D00B",
+                                         "imageAtomicExchange(01f00D00B",
+                                         "clamp(10C10C10C",
+                                         "outerProduct(20B10B",
+                                         "textureProjOffset(00t10B00D",
+                                         "isinf(20C",
+                                         "textureGrad(00e30B20B20B",
+                                         "textureSize(00J00D",
+                                         "textureQueryLod(00Z20B",
+                                         "dot(10C10C",
+                                         "textureProjGrad(00n30B10B10B",
+                                         "imageAtomicMin(01U20D00D00E",
+                                         "imageAtomicMin(01U20D00D00D",
+                                         "texture2DProjLodEXT(00I30B00B",
+                                         "imageAtomicMax(01N10D00D",
+                                         "imageAtomicMax(01N10D00E",
+                                         "imageAtomicAnd(01b20D00D",
+                                         "step(00B00B",
+                                         "texture2DLodEXT(00I10B00B",
+                                         "texture(00K20B00B",
+                                         "textureProjGradOffset(00n30B10B10B10D",
+                                         "textureGrad(00J20B20B20B",
+                                         "imageAtomicCompSwap(01V20D00D00E00E",
+                                         "textureOffset(00U20B10D00B",
+                                         "intBitsToFloat(10D",
+                                         "min(20C20C",
+                                         "findLSB(10D",
+                                         "textureProjLodOffset(00Y30B00B20D",
+                                         "imageAtomicMax(01h00D00E",
+                                         "texture3D(00J20B",
+                                         "gl_SecondaryFragDataEXT",
+                                         "imageAtomicAdd(01X10D00E",
+                                         "faceforward(20C20C20C",
+                                         "imageAtomicAnd(01O10D00E",
+                                         "imageAtomicAdd(01X10D00D",
+                                         "textureGather(00n10B00B",
+                                         "textureGather(00X10B00D",
+                                         "imageAtomicMax(01L00D00E",
+                                         "imageAtomicMax(01L00D00D",
+                                         "imageAtomicXor(01G20D00E",
+                                         "imageAtomicXor(01G20D00D",
+                                         "textureOffset(00a20B10D",
+                                         "imageAtomicExchange(01X10D00B",
+                                         "min(30E30E",
+                                         "texture2DProj(00I30B00B",
+                                         "textureQueryLod(00X10B",
+                                         "imageAtomicAnd(01I20D00E",
+                                         "textureCubeGradEXT(00K20B20B20B",
+                                         "min(00B00B",
+                                         "textureGradOffset(00o00B00B00B00D",
+                                         "mix(30C30C30F",
+                                         "mix(30C30C30C",
+                                         "gl_WorkGroupID",
+                                         "degrees(00B",
+                                         "imageAtomicMax(01J20D00E",
+                                         "imageAtomicMax(01J20D00D",
+                                         "imageAtomicMin(01D20D00D",
+                                         "atomicExchange(00D00D",
+                                         "textureOffset(00m20B00D00B",
+                                         "gl_MaxGeometryAtomicCounters",
+                                         "textureOffset(00f30B10D",
+                                         "imageAtomicExchange(01a20D00D",
+                                         "imageAtomicExchange(01a20D00E",
+                                         "imageAtomicExchange(01a20D00B",
+                                         "matrixCompMult(60B60B",
+                                         "imageAtomicCompSwap(00z10D00D00D",
+                                         "textureProj(00t30B",
+                                         "textureProjGradOffset(00t10B00B00B00D",
+                                         "unpackSnorm2x16(00E",
+                                         "lessThan(30D30D",
+                                         "atan(00B00B",
+                                         "textureQueryLod(00S20B",
+                                         "notEqual(10B10B",
+                                         "imageLoad(01G20D",
+                                         "trunc(30B",
+                                         "trunc(30C",
+                                         "length(00B",
+                                         "length(00C",
+                                         "imageAtomicAnd(01H20D00D",
+                                         "imageAtomicAnd(01H20D00E",
+                                         "textureProj(00X30B00B",
+                                         "imageAtomicExchange(01O10D00D",
+                                         "imageAtomicCompSwap(01C20D00E00E",
+                                         "tan(00B",
+                                         "min(20E00E",
+                                         "textureLod(00x30B00B",
+                                         "textureSize(00j",
+                                         "textureSize(00n",
+                                         "imageAtomicXor(01F20D00D",
+                                         "textureSize(00c",
+                                         "textureSize(00b",
+                                         "min(20B20B",
+                                         "textureSize(00q",
+                                         "textureSize(00r",
+                                         "textureSize(00w",
+                                         "textureSize(00v",
+                                         "bitfieldInsert(20E20E00D00D",
+                                         "gl_MaxProgramTexelOffset",
+                                         "textureSize(00O",
+                                         "imageAtomicAnd(01a20D00E",
+                                         "imageAtomicMin(01g00D00D",
+                                         "trunc(00C",
+                                         "imageAtomicAnd(01a20D00D",
+                                         "textureSize(00Q",
+                                         "textureSize(00P",
+                                         "imageAtomicAdd(01M00D00E",
+                                         "imageAtomicAdd(01M00D00D",
+                                         "textureSize(00W",
+                                         "textureProjLod(00X20B00B",
+                                         "smoothstep(00C00C00C",
+                                         "atomicCounterAnd(00G00E",
+                                         "faceforward(30B30B30B",
+                                         "distance(20C20C",
+                                         "atomicCounterAdd(00G00E",
+                                         "imageStore(01O10D30D",
+                                         "texture(00X10B",
+                                         "ceil(00C",
+                                         "ceil(00B",
+                                         "distance(00B00B",
+                                         "texelFetch(00O10D",
+                                         "imageAtomicMin(01N10D00D",
+                                         "imageAtomicMin(01N10D00E",
+                                         "imageAtomicExchange(01C20D00D",
+                                         "imageAtomicExchange(01C20D00E",
+                                         "textureGrad(00s30B20B20B",
+                                         "textureGather(00I10B",
+                                         "imageAtomicExchange(01C20D00B",
+                                         "min(30D30D",
+                                         "findMSB(30E",
+                                         "findMSB(30D",
+                                         "textureGradOffset(00R10B10B10B10D",
+                                         "fwidth(30B",
+                                         "textureGrad(00K20B20B20B",
+                                         "texelFetch(00S20D00D",
+                                         "max(10B00B",
+                                         "textureProjGradOffset(00R30B10B10B10D",
+                                         "texelFetchOffset(00L20D00D10D",
+                                         "isnan(30C",
+                                         "transpose(50B",
+                                         "greaterThanEqual(20D20D",
+                                         "asinh(00B",
+                                         "gl_PrimitiveIDIn",
+                                         "textureGather(00Z20B",
+                                         "textureGrad(00p10B00B00B",
+                                         "textureProjOffset(00v30B10D",
+                                         "greaterThan(20B20B",
+                                         "min(20D20D",
+                                         "texelFetchOffset(00g00D00D00D",
+                                         "imageAtomicCompSwap(01g00D00E00E",
+                                         "imageAtomicCompSwap(01Q10D00D00E00E",
+                                         "imageAtomicXor(01O10D00D",
+                                         "imageAtomicXor(01O10D00E",
+                                         "tanh(20B",
+                                         "textureProj(00m30B00B",
+                                         "sin(20B",
+                                         "smoothstep(00C00C30C",
+                                         "textureSize(00l00D",
+                                         "textureLod(00o00B00B",
+                                         "imageAtomicMin(01K00D00D",
+                                         "imageAtomicMin(01K00D00E",
+                                         "textureOffset(00I10B10D00B",
+                                         "imageAtomicAnd(00z10D00D",
+                                         "imageAtomicAnd(00z10D00E",
+                                         "gl_MaxAtomicCounterBufferSize",
+                                         "textureOffset(00J20B20D00B",
+                                         "lessThanEqual(20E20E",
+                                         "gl_BaseVertex",
+                                         "textureOffset(00g00B00D",
+                                         "textureProj(00g30B",
+                                         "imageLoad(01Z20D",
+                                         "bitfieldInsert(30E30E00D00D",
+                                         "bitfieldExtract(20E00D00D",
+                                         "uintBitsToFloat(20E",
+                                         "unpackUnorm4x8(00E",
+                                         "mod(10B10B",
+                                         "gl_LocalInvocationIndex",
+                                         "imageAtomicAdd(01W10D00D",
+                                         "imageAtomicAdd(01W10D00E",
+                                         "gl_MaxVertexImageUniforms",
+                                         "equal(20D20D",
+                                         "gl_MaxCombinedAtomicCounterBuffers",
+                                         "mix(10E10E10F",
+                                         "textureGather(00R10B00D",
+                                         "textureSize(00Z00D",
+                                         "bitfieldExtract(30D00D00D",
+                                         "imageAtomicXor(01J20D00D",
+                                         "imageAtomicXor(01J20D00E",
+                                         "imageStore(01T20D00D30B",
+                                         "intBitsToFloat(00D",
+                                         "textureLodOffset(00m20B00B00D",
+                                         "findLSB(00E",
+                                         "texelFetch(00p10D00D",
+                                         "textureGather(00d10B00B",
+                                         "shadow2DProj(00d30B00B",
+                                         "inversesqrt(10B",
+                                         "inversesqrt(10C",
+                                         "abs(30D",
+                                         "transpose(D0B",
+                                         "abs(30C",
+                                         "textureProjGrad(00O30B10B10B",
+                                         "imageAtomicMax(01Z20D00D",
+                                         "",
+                                         "imageLoad(01E20D",
+                                         "textureProj(00N20B00B",
+                                         "gl_FragData",
+                                         "dFdxCoarse(20B",
+                                         "clamp(20E00E00E",
+                                         "textureProj(00d30B",
+                                         "gl_MaxVertexOutputVectors",
+                                         "shadow1D(00m20B",
+                                         "textureOffset(00u10B00D",
+                                         "cosh(10B",
+                                         "sign(10C",
+                                         "imageAtomicAnd(01G20D00E",
+                                         "imageAtomicAnd(01G20D00D",
+                                         "sign(10D",
+                                         "umulExtended(00E00E00E00E",
+                                         "gl_MaxVertexAttribs",
+                                         "",
+                                         "texture(00a20B",
+                                         "imageAtomicAdd(01T20D00D00E",
+                                         "imageAtomicAdd(01T20D00D00D",
+                                         "imageAtomicExchange(01g00D00B",
+                                         "ldexp(10B10D",
+                                         "textureProjOffset(00g30B00D",
+                                         "texture(00Z20B",
+                                         "degrees(10B",
+                                         "texture(00K20B",
+                                         "sinh(10B",
+                                         "texture(00m20B",
+                                         "imageAtomicXor(01C20D00D",
+                                         "not(30F",
+                                         "textureProjLodOffset(00I20B00B10D",
+                                         "textureGather(00K20B",
+                                         "textureGatherOffset(00R10B10D",
+                                         "memoryBarrierShared(",
+                                         "clamp(20B20B20B",
+                                         "texelFetch(00W20D00D",
+                                         "textureProjLod(00g10B00B",
+                                         "trunc(20C",
+                                         "trunc(20B",
+                                         "textureProjOffset(00I30B10D00B",
+                                         "max(00C00C",
+                                         "tan(10B",
+                                         "texture(00g00B",
+                                         "textureLodOffset(00L20B00B10D",
+                                         "textureLodOffset(00u10B00B00D",
+                                         "imageAtomicAnd(00y10D00E",
+                                         "imageAtomicAnd(00y10D00D",
+                                         "isinf(20B",
+                                         "dFdyCoarse(10B",
+                                         "textureGatherOffset(00X10B10D00D",
+                                         "min(10E10E",
+                                         "memoryBarrierImage(",
+                                         "round(10B",
+                                         "round(10C",
+                                         "textureProjLodOffset(00m30B00B00D",
+                                         "textureProjGradOffset(00g10B00B00B00D",
+                                         "textureProj(00R30B",
+                                         "shadow1DProj(00m30B",
+                                         "texture(00f30B00B",
+                                         "fma(00B00B00B",
+                                         "imageAtomicOr(01b20D00E",
+                                         "imageAtomicOr(01b20D00D",
+                                         "textureGatherOffset(00v10B10D00D",
+                                         "atomicMax(00E00E",
+                                         "imageAtomicMin(01B20D00E",
+                                         "imageAtomicMin(01B20D00D",
+                                         "textureQueryLod(00t00B",
+                                         "textureProjOffset(00R30B10D",
+                                         "textureProj(00X30B",
+                                         "findMSB(00D",
+                                         "findMSB(00E",
+                                         "textureProjOffset(00X20B10D",
+                                         "imageAtomicCompSwap(01X10D00D00D",
+                                         "frexp(30C30D",
+                                         "mix(10C10C10C",
+                                         "min(30D00D",
+                                         "texture(00M10B00B",
+                                         "fwidth(20B",
+                                         "imageAtomicOr(01S10D00D00D",
+                                         "imageAtomicOr(01S10D00D00E",
+                                         "mod(30C00C",
+                                         "imageAtomicAdd(01A10D00D",
+                                         "imageAtomicAdd(01A10D00E",
+                                         "texture(00o00B00B",
+                                         "imageAtomicOr(01H20D00E",
+                                         "imageAtomicOr(01H20D00D",
+                                         "cos(20B",
+                                         "textureGather(00T20B",
+                                         "textureProjGradOffset(00J30B20B20B20D",
+                                         "asinh(10B",
+                                         "texelFetchOffset(00v10D10D",
+                                         "imageAtomicXor(01E20D00E",
+                                         "imageAtomicXor(01E20D00D"};
+
+// Flat array of offsets from a symbol into the rules table.
+constexpr uint16_t kMangledOffsets[] = {
+    0,     // textureProj_00R30B00B
+    2,     // interpolateAtOffset_30B10B
+    3,     // textureProjOffset_00g10B00D
+    4,     // imageAtomicOr_00z10D00D
+    5,     // texture2DProj_00I20B
+    7,     // textureProjGradOffset_00v30B10B10B10D
+    8,     // texelFetch_00o00D00D
+    9,     // imageLoad_01g00D
+    10,    // imageLoad_01I20D
+    12,    // tanh_30B
+    14,    // imageAtomicCompSwap_01E20D00D00D
+    15,    // textureQueryLod_00m00B
+    16,    // imageAtomicCompSwap_01f00D00D00D
+    17,    // not_10F
+    19,    // findMSB_20E
+    21,    // lessThanEqual_30B30B
+    23,    // imageAtomicAdd_00z10D00E
+    24,    // textureLod_00t00B00B
+    25,    // textureProjGradOffset_00O30B10B10B10D
+    26,    // outerProduct_20B30B
+    28,    // imageAtomicOr_00z10D00E
+    29,    // imageAtomicAnd_01f00D00D
+    30,    // imageAtomicAnd_01f00D00E
+    31,    // imageSamples_01V
+    32,    // imageSamples_01U
+    33,    // imageSamples_01T
+    34,    // imageSamples_01S
+    35,    // mix_20B20B00B
+    37,    // imageSamples_01Q
+    38,    // textureLodOffset_00o00B00B00D
+    39,    // uintBitsToFloat_30E
+    41,    // imageAtomicExchange_01R10D00D00B
+    42,    // textureSize_00K00D
+    44,    // textureSize_00h00D
+    45,    // gl_MaxAtomicCounterBindings
+    47,    // texelFetchOffset_00q10D10D
+    48,    // greaterThanEqual_10E10E
+    50,    // texture_00d20B
+    52,    // atan_10B10B
+    54,    // clamp_30B30B30B
+    56,    // imageAtomicCompSwap_01a20D00E00E
+    57,    // imageAtomicCompSwap_01R10D00D00D00D
+    58,    // textureLodOffset_00a20B00B10D
+    60,    // imageStore_01K00D30B
+    61,    // greaterThanEqual_20B20B
+    63,    // imageLoad_01F20D
+    65,    // ceil_10C
+    66,    // imageAtomicCompSwap_01b20D00D00D
+    67,    // imageAtomicAnd_01A10D00D
+    68,    // imageAtomicAdd_01D20D00E
+    69,    // atomicAdd_00D00D
+    71,    // textureSize_00p00D
+    72,    // floatBitsToUint_20B
+    74,    // textureProjOffset_00t30B00D00B
+    75,    // imageAtomicOr_01Q10D00D00D
+    76,    // imageAtomicOr_01Q10D00D00E
+    77,    // mix_20D20D20F
+    78,    // degrees_20B
+    80,    // imageAtomicMin_01Y10D00D
+    81,    // imageAtomicAnd_01Z20D00D
+    82,    // imageAtomicCompSwap_01D20D00D00D
+    83,    // min_00C00C
+    84,    // imageAtomicMax_01S10D00D00E
+    85,    // imageAtomicXor_01R10D00D00E
+    86,    // imageAtomicXor_01Q10D00D00E
+    87,    // inversesqrt_00C
+    88,    // inversesqrt_00B
+    90,    // imageAtomicXor_01Q10D00D00D
+    91,    // texelFetchOffset_00J20D00D20D
+    93,    // textureProjGrad_00S30B20B20B
+    95,    // equal_10D10D
+    97,    // max_30D00D
+    99,    // groupMemoryBarrier_
+    101,   // imageAtomicOr_01N10D00D
+    102,   // imageAtomicOr_01N10D00E
+    103,   // imageAtomicExchange_01b20D00E
+    104,   // imageAtomicExchange_01b20D00D
+    105,   // step_20C20C
+    106,   // texelFetch_00I10D00D
+    108,   // mod_00C00C
+    109,   // transpose_E0B
+    111,   // imageAtomicMin_01R10D00D00E
+    112,   // imageAtomicMin_01R10D00D00D
+    113,   // textureGatherOffsets_00f20B00B70D
+    114,   // textureGather_00O20B
+    115,   // textureProjOffset_00Y30B20D00B
+    117,   // modf_10B10B
+    119,   // imageAtomicMax_01K00D00D
+    120,   // imageAtomicMax_01K00D00E
+    121,   // determinant_50B
+    122,   // imageAtomicCompSwap_01J20D00E00E
+    123,   // textureProj_00g10B00B
+    124,   // lessThan_20B20B
+    126,   // gl_MaxFragmentInputVectors
+    128,   // sign_20C
+    129,   // cosh_20B
+    131,   // sign_20D
+    133,   // atanh_00B
+    135,   // imageAtomicAnd_01V20D00D00E
+    136,   // imageAtomicAnd_01V20D00D00D
+    137,   // textureProj_00t10B
+    138,   // texture_00p20B00B
+    139,   // fma_10C10C10C
+    140,   // imageAtomicXor_01Y10D00D
+    141,   // imageAtomicXor_01Y10D00E
+    142,   // imageAtomicExchange_01N10D00D
+    143,   // imageAtomicAnd_01C20D00E
+    144,   // textureOffset_00d20B10D00B
+    146,   // textureOffset_00m20B00D
+    147,   // imageAtomicAnd_01C20D00D
+    148,   // lessThan_10E10E
+    150,   // imageAtomicCompSwap_01A10D00D00D
+    151,   // textureGrad_00X00B00B00B
+    152,   // textureProjLodOffset_00t30B00B00D
+    153,   // fma_30C30C30C
+    154,   // textureGrad_00v10B10B10B
+    155,   // textureProj_00N30B00B
+    156,   // step_00C00C
+    157,   // gl_MaxCombinedShaderOutputResources
+    159,   // texture_00I10B00B
+    161,   // texelFetch_00j00D
+    162,   // lessThan_20D20D
+    164,   // clamp_20C20C20C
+    165,   // imageAtomicXor_00z10D00E
+    166,   // all_10F
+    168,   // dFdyCoarse_00B
+    169,   // isinf_30B
+    171,   // textureGatherOffset_00a20B10D00D
+    173,   // textureGatherOffset_00I10B10D
+    175,   // textureProjOffset_00q30B10D
+    176,   // textureOffset_00L20B10D
+    178,   // lessThanEqual_30E30E
+    180,   // min_10E00E
+    182,   // imageAtomicXor_01a20D00E
+    183,   // imageAtomicXor_01a20D00D
+    184,   // textureProjOffset_00S30B20D
+    186,   // round_00C
+    187,   // round_00B
+    189,   // greaterThan_30D30D
+    191,   // texture_00U20B
+    193,   // imageAtomicCompSwap_01P10D00E00E
+    194,   // smoothstep_00C00C20C
+    195,   // texture2DRect_00O10B
+    196,   // imageAtomicAdd_01K00D00E
+    197,   // imageAtomicAdd_01K00D00D
+    198,   // noise2_20B
+    199,   // gl_MaxGeometryOutputVertices
+    200,   // step_20B20B
+    202,   // imageAtomicAnd_01b20D00E
+    203,   // findMSB_10E
+    205,   // findMSB_10D
+    207,   // interpolateAtOffset_00B10B
+    208,   // texture_00t00B
+    209,   // textureLodOffset_00S20B00B20D
+    211,   // textureQueryLod_00p00B
+    212,   // imageStore_00z10D30D
+    214,   // outerProduct_10B20B
+    216,   // fwidthFine_10B
+    217,   // cos_30B
+    219,   // unpackHalf2x16_00E
+    221,   // imageStore_01J20D30E
+    223,   // outerProduct_10B10B
+    225,   // imageAtomicOr_01M00D00D
+    226,   // gl_MaxComputeTextureImageUnits
+    228,   // imageAtomicMax_01Y10D00E
+    229,   // imageAtomicMax_01Y10D00D
+    230,   // sin_30B
+    232,   // imageAtomicAnd_01O10D00D
+    233,   // imageAtomicCompSwap_01Q10D00D00D00D
+    234,   // textureGather_00L20B00D
+    236,   // imageStore_01A10D30E
+    238,   // imageAtomicXor_01H20D00D
+    239,   // imageAtomicXor_01H20D00E
+    240,   // shadow1D_00m20B00B
+    241,   // max_10E10E
+    243,   // max_30B30B
+    245,   // clamp_10E10E10E
+    247,   // texture_00N10B
+    248,   // textureProjGrad_00t30B00B00B
+    249,   // imageAtomicOr_01E20D00D
+    250,   // imageAtomicOr_01E20D00E
+    251,   // texelFetchOffset_00a20D00D10D
+    253,   // imageLoad_01V20D00D
+    254,   // not_20F
+    256,   // imageAtomicExchange_01F20D00D
+    257,   // imageAtomicMax_01Q10D00D00D
+    258,   // imageAtomicMax_01Q10D00D00E
+    259,   // imageAtomicExchange_01F20D00B
+    260,   // imageStore_01L00D30D
+    261,   // outerProduct_20B20B
+    263,   // textureProjLodOffset_00R20B00B10D
+    265,   // textureOffset_00p10B00D
+    266,   // texture_00h20B
+    267,   // imageAtomicXor_01B20D00D
+    268,   // imageAtomicXor_01B20D00E
+    269,   // textureProjGrad_00J30B20B20B
+    271,   // imageAtomicOr_01R10D00D00E
+    272,   // imageAtomicOr_01R10D00D00D
+    273,   // textureLod_00X10B00B
+    275,   // gl_InvocationID
+    276,   // imageAtomicAnd_01R10D00D00D
+    277,   // imageAtomicAdd_01E20D00E
+    278,   // radians_10B
+    280,   // textureGatherOffset_00n10B00B10D
+    281,   // noise2_10B
+    282,   // textureQueryLod_00a10B
+    283,   // textureGather_00e20B00B
+    285,   // distance_10B10B
+    287,   // textureGrad_00Z20B20B20B
+    289,   // sign_00B
+    291,   // bitfieldReverse_00D
+    293,   // bitfieldReverse_00E
+    295,   // bitfieldExtract_30E00D00D
+    297,   // textureLod_00I10B00B
+    299,   // greaterThanEqual_10D10D
+    301,   // imageStore_01f00D30B
+    302,   // imageAtomicCompSwap_01I20D00E00E
+    303,   // degrees_30B
+    305,   // inversesqrt_30B
+    307,   // inversesqrt_30C
+    308,   // imageAtomicMin_01I20D00D
+    309,   // textureGather_00v20B00D
+    310,   // intBitsToFloat_20D
+    312,   // exp_20B
+    314,   // imageAtomicMax_01A10D00E
+    315,   // imageAtomicMax_01A10D00D
+    316,   // acosh_00B
+    318,   // log_10B
+    320,   // textureProjLodOffset_00S30B00B20D
+    322,   // textureGather_00L20B
+    324,   // textureProj_00n30B
+    325,   // textureQueryLod_00i00B
+    326,   // texture_00p20B
+    327,   // outerProduct_30B20B
+    329,   // texture_00S20B
+    331,   // atomicXor_00D00D
+    333,   // texelFetch_00Y20D00D
+    335,   // imageAtomicOr_01P10D00D
+    336,   // imageAtomicOr_01P10D00E
+    337,   // imageAtomicXor_01N10D00E
+    338,   // imageAtomicXor_01N10D00D
+    339,   // bitfieldExtract_10D00D00D
+    341,   // sign_30B
+    343,   // sign_30C
+    344,   // sign_30D
+    346,   // texture_00Y20B00B
+    348,   // dFdy_20B
+    351,   // textureProj_00Y30B
+    353,   // textureOffset_00X10B10D00B
+    355,   // memoryBarrierBuffer_
+    357,   // isinf_00B
+    359,   // isinf_00C
+    360,   // clamp_20D00D00D
+    362,   // texture2DProj_00I20B00B
+    364,   // mod_30B00B
+    366,   // imageAtomicAnd_01A10D00E
+    367,   // textureGatherOffsets_00O10B70D00D
+    368,   // textureGather_00f20B00B
+    370,   // textureProj_00m30B
+    371,   // greaterThan_20E20E
+    373,   // textureProjLod_00I30B00B
+    375,   // refract_00B00B00B
+    377,   // gl_MaxGeometryImageUniforms
+    378,   // imageAtomicMin_00y10D00D
+    379,   // imageAtomicMin_00y10D00E
+    380,   // imageAtomicMin_01X10D00D
+    381,   // imageAtomicMin_01X10D00E
+    382,   // textureSize_00e00D
+    384,   // texelFetch_00a20D00D
+    386,   // step_00C10C
+    387,   // frexp_30B30D
+    389,   // imageAtomicMin_01Y10D00E
+    390,   // texture_00t00B00B
+    391,   // min_30C00C
+    392,   // imageAtomicCompSwap_01X10D00E00E
+    393,   // texture_00I10B
+    395,   // gl_InstanceID
+    397,   // normalize_20B
+    399,   // normalize_20C
+    400,   // imageAtomicCompSwap_01H20D00D00D
+    401,   // inverse_F0B
+    403,   // imageLoad_01K00D
+    404,   // frexp_20C20D
+    405,   // atan_00B
+    407,   // textureGatherOffset_00R10B10D00D
+    409,   // imageAtomicMin_01h00D00E
+    410,   // imageAtomicMin_01h00D00D
+    411,   // greaterThan_30E30E
+    413,   // imageStore_01U20D00D30D
+    414,   // texelFetchOffset_00p10D00D00D
+    415,   // imageAtomicAnd_01J20D00D
+    416,   // imageAtomicAnd_01J20D00E
+    417,   // gl_DepthRange
+    419,   // imageAtomicMax_01S10D00D00D
+    420,   // imageAtomicCompSwap_01K00D00D00D
+    421,   // textureProj_00o30B
+    422,   // imageAtomicAdd_01I20D00E
+    423,   // bitfieldExtract_20D00D00D
+    425,   // texture_00L20B00B
+    427,   // imageAtomicOr_01L00D00E
+    428,   // imageAtomicOr_01L00D00D
+    429,   // mix_30D30D30F
+    430,   // imageAtomicExchange_01Z20D00B
+    431,   // imageAtomicExchange_01Z20D00E
+    432,   // imageAtomicExchange_01Z20D00D
+    433,   // imageAtomicExchange_01f00D00E
+    434,   // imageAtomicExchange_01f00D00D
+    435,   // imageLoad_01h00D
+    436,   // imageAtomicCompSwap_01E20D00E00E
+    437,   // textureProjOffset_00O30B10D
+    438,   // floor_10B
+    440,   // floor_10C
+    441,   // imageAtomicMax_01R10D00D00E
+    442,   // imageAtomicMax_01R10D00D00D
+    443,   // textureProjLodOffset_00o10B00B00D
+    444,   // textureGather_00x30B00D
+    445,   // interpolateAtSample_10B00D
+    446,   // imageAtomicMin_01F20D00E
+    447,   // imageAtomicMin_01F20D00D
+    448,   // outerProduct_10B30B
+    450,   // imageAtomicCompSwap_01O10D00E00E
+    451,   // cos_00B
+    453,   // imageAtomicXor_01F20D00E
+    454,   // frexp_00C00D
+    455,   // atomicCounterCompSwap_00G00E00E
+    456,   // textureOffset_00a20B10D00B
+    458,   // textureGather_00X10B
+    460,   // textureOffset_00R10B10D00B
+    462,   // textureGatherOffset_00d10B00B10D
+    464,   // gl_MaxFragmentImageUniforms
+    466,   // textureSize_00i00D
+    467,   // equal_20E20E
+    469,   // uaddCarry_00E00E00E
+    471,   // textureQueryLod_00T20B
+    472,   // textureCube_00K20B
+    474,   // imageAtomicMax_01U20D00D00E
+    475,   // imageAtomicMax_01U20D00D00D
+    476,   // matrixCompMult_90B90B
+    477,   // imageAtomicMin_01T20D00D00D
+    478,   // imageAtomicMin_01T20D00D00E
+    479,   // textureGradOffset_00p10B00B00B00D
+    480,   // textureProjLodOffset_00g30B00B00D
+    481,   // clamp_30E00E00E
+    483,   // asin_00B
+    485,   // textureProjOffset_00J30B20D00B
+    487,   // imageLoad_01W10D
+    488,   // texelFetch_00w00D
+    489,   // imageAtomicExchange_01b20D00B
+    490,   // notEqual_30E30E
+    492,   // lessThanEqual_10E10E
+    494,   // inversesqrt_20C
+    495,   // inversesqrt_20B
+    497,   // textureLod_00i20B00B
+    498,   // textureOffset_00u10B00D00B
+    499,   // reflect_00C00C
+    500,   // atomicAdd_00E00E
+    502,   // intBitsToFloat_30D
+    504,   // textureProjGradOffset_00v20B10B10B10D
+    505,   // textureGrad_00X10B10B10B
+    507,   // greaterThanEqual_30E30E
+    509,   // mix_20B20B20F
+    511,   // gl_MaxVertexAtomicCounters
+    513,   // mix_20B20B20B
+    515,   // any_10F
+    517,   // textureProjGradOffset_00d30B10B10B10D
+    519,   // imageLoad_01X10D
+    520,   // textureProjOffset_00I30B10D
+    522,   // imageAtomicExchange_01W10D00B
+    523,   // imageAtomicExchange_01W10D00E
+    524,   // imageAtomicExchange_01W10D00D
+    525,   // textureOffset_00X10B10D
+    527,   // imageAtomicXor_01K00D00E
+    528,   // texture_00R10B
+    530,   // imageAtomicAnd_01Z20D00E
+    531,   // imageStore_01M00D30E
+    532,   // radians_00B
+    534,   // imageStore_01Y10D30E
+    535,   // step_10B10B
+    537,   // gl_MaxDualSourceDrawBuffersEXT
+    538,   // imageAtomicAdd_01Y10D00D
+    539,   // imageAtomicAdd_01Y10D00E
+    540,   // bitfieldReverse_10E
+    542,   // bitfieldReverse_10D
+    544,   // imageStore_01g00D30D
+    545,   // textureProjGradOffset_00q20B10B10B10D
+    546,   // imageAtomicExchange_01S10D00D00E
+    547,   // atomicXor_00E00E
+    549,   // mix_00C00C00F
+    550,   // textureLodOffset_00g00B00B00D
+    551,   // greaterThan_30B30B
+    553,   // gl_MaxFragmentAtomicCounters
+    555,   // faceforward_20B20B20B
+    557,   // textureSize_00x00D
+    558,   // textureProj_00S30B00B
+    560,   // fma_20B20B20B
+    561,   // textureProjLod_00o10B00B
+    562,   // imageAtomicMin_01J20D00E
+    563,   // outerProduct_30B30B
+    565,   // exp_30B
+    567,   // bitCount_10E
+    569,   // bitCount_10D
+    571,   // log_00B
+    573,   // mix_00F00F00F
+    574,   // imageAtomicCompSwap_01M00D00D00D
+    575,   // imageAtomicAnd_01T20D00D00E
+    576,   // imageAtomicAnd_01T20D00D00D
+    577,   // subpassLoad_01l00D
+    578,   // imageStore_01N10D30B
+    579,   // acosh_30B
+    581,   // imageAtomicOr_01Y10D00E
+    582,   // imageAtomicOr_01Y10D00D
+    583,   // textureGradOffset_00X10B10B10B10D
+    585,   // texelFetchOffset_00X10D00D10D
+    587,   // packUnorm2x16_10B
+    589,   // texture_00h20B00B
+    590,   // umulExtended_20E20E20E20E
+    592,   // texture_00m20B00B
+    593,   // textureProjGradOffset_00g30B00B00B00D
+    594,   // textureProj_00o30B00B
+    595,   // textureCubeLod_00K20B00B
+    597,   // textureSize_00L00D
+    599,   // imageAtomicXor_01L00D00E
+    600,   // max_20E00E
+    602,   // textureProj_00S30B
+    604,   // dFdy_30B
+    607,   // imageAtomicMin_01W10D00D
+    608,   // isinf_10C
+    609,   // isinf_10B
+    611,   // textureGatherOffsets_00a20B70D
+    612,   // gl_MaxVertexTextureImageUnits
+    614,   // greaterThanEqual_30B30B
+    616,   // texture2DProjLodEXT_00I20B00B
+    617,   // gl_FrontFacing
+    619,   // imageStore_01C20D30D
+    621,   // textureProjOffset_00t10B00D00B
+    622,   // imageAtomicCompSwap_01Z20D00D00D
+    623,   // acos_10B
+    625,   // textureCube_00K20B00B
+    627,   // lessThan_10B10B
+    629,   // gl_MaxComputeAtomicCounterBuffers
+    631,   // textureSize_00f00D
+    633,   // imageLoad_01B20D
+    635,   // texelFetchOffset_00h10D00D00D
+    636,   // mod_20C00C
+    637,   // imageAtomicAnd_01g00D00D
+    638,   // gl_LastFragColorARM
+    639,   // lessThanEqual_20D20D
+    641,   // textureQueryLod_00k20B
+    642,   // textureProjLod_00Y30B00B
+    644,   // gl_SecondaryFragColorEXT
+    645,   // imageAtomicAnd_01U20D00D00D
+    646,   // imageAtomicAnd_01U20D00D00E
+    647,   // gl_BaseInstance
+    648,   // transpose_B0B
+    650,   // imageAtomicXor_01b20D00E
+    651,   // mix_20F20F20F
+    652,   // smoothstep_00B00B30B
+    654,   // imageAtomicExchange_01M00D00B
+    655,   // imageAtomicExchange_01F20D00E
+    656,   // imageAtomicExchange_01M00D00D
+    657,   // imageAtomicExchange_01M00D00E
+    658,   // imageAtomicCompSwap_01F20D00E00E
+    659,   // texelFetch_00N10D00D
+    660,   // textureSize_00a00D
+    662,   // imageAtomicXor_01T20D00D00D
+    663,   // textureProjOffset_00Y30B20D
+    665,   // textureOffset_00n20B10D
+    666,   // atan_30B
+    668,   // textureGatherOffsets_00R10B70D00D
+    669,   // imageAtomicMax_01b20D00D
+    670,   // ceil_10B
+    672,   // textureSize_00S00D
+    674,   // imageAtomicExchange_01S10D00D00B
+    675,   // atomicCounterDecrement_00G
+    677,   // ceil_30B
+    679,   // textureSize_00t00D
+    680,   // memoryBarrier_
+    682,   // texture_00f30B
+    684,   // imageSamples_01R
+    685,   // texelFetch_00R10D00D
+    687,   // sign_20B
+    689,   // smoothstep_30B30B30B
+    691,   // textureGrad_00R10B10B10B
+    693,   // min_00D00D
+    695,   // textureProj_00t10B00B
+    696,   // imageAtomicCompSwap_01W10D00E00E
+    697,   // imageAtomicAdd_01V20D00D00E
+    698,   // ldexp_20B20D
+    700,   // greaterThanEqual_30D30D
+    702,   // imageLoad_01D20D
+    704,   // findLSB_10E
+    706,   // texture_00Z20B00B
+    708,   // imageAtomicXor_01S10D00D00E
+    709,   // imageAtomicXor_01S10D00D00D
+    710,   // cos_10B
+    712,   // texelFetch_00v10D
+    713,   // texture_00e30B
+    715,   // imageStore_01W10D30B
+    716,   // textureSize_00T00D
+    718,   // imageAtomicAnd_01g00D00E
+    719,   // textureSize_00u00D
+    720,   // textureProjGradOffset_00Y30B20B20B20D
+    722,   // noise3_30B
+    723,   // textureGrad_00T20B20B20B
+    725,   // texture1DProj_00g10B00B
+    726,   // textureProjOffset_00d30B10D00B
+    728,   // textureGatherOffsets_00X10B70D
+    729,   // imageAtomicXor_01U20D00D00D
+    730,   // imageAtomicXor_01U20D00D00E
+    731,   // imageAtomicAdd_01h00D00D
+    732,   // imageAtomicAdd_01h00D00E
+    733,   // matrixCompMult_50B50B
+    735,   // equal_30B30B
+    737,   // imageAtomicExchange_01E20D00B
+    738,   // textureLod_00U20B00B
+    740,   // imageAtomicXor_01I20D00E
+    741,   // imageAtomicXor_01I20D00D
+    742,   // textureOffset_00h10B00D
+    743,   // textureLod_00p10B00B
+    744,   // max_20C20C
+    745,   // max_10B10B
+    747,   // gl_PointSize
+    749,   // imageAtomicCompSwap_01B20D00E00E
+    750,   // asin_10B
+    752,   // sinh_00B
+    754,   // imageAtomicAdd_01g00D00D
+    755,   // imageAtomicCompSwap_01h00D00E00E
+    756,   // textureOffset_00S20B20D
+    758,   // fma_20C20C20C
+    759,   // imageAtomicCompSwap_01N10D00D00D
+    760,   // textureProj_00R20B
+    762,   // greaterThan_10E10E
+    764,   // imageAtomicAnd_01M00D00E
+    765,   // imageAtomicAnd_01M00D00D
+    766,   // EmitVertex_
+    768,   // smoothstep_20B20B20B
+    770,   // textureSamples_00b
+    771,   // textureOffset_00J20B20D
+    773,   // texelFetch_00J20D00D
+    775,   // imageAtomicExchange_01V20D00D00E
+    776,   // imageAtomicExchange_01V20D00D00B
+    777,   // imageAtomicCompSwap_01Y10D00E00E
+    778,   // imageAtomicExchange_00y10D00B
+    779,   // imageAtomicExchange_00y10D00D
+    780,   // imageAtomicExchange_00y10D00E
+    781,   // gl_ViewID_OVR
+    782,   // radians_30B
+    784,   // fract_30B
+    786,   // imageAtomicAdd_01B20D00D
+    787,   // imageAtomicAdd_01B20D00E
+    788,   // imageAtomicMin_01H20D00E
+    789,   // uaddCarry_20E20E20E
+    791,   // textureProjGrad_00X30B10B10B
+    793,   // textureSamples_00P
+    794,   // textureProjOffset_00v20B10D
+    795,   // shadow2D_00d20B00B
+    796,   // texelFetchOffset_00o00D00D00D
+    797,   // textureSamples_00V
+    798,   // textureSamples_00W
+    799,   // textureProjGrad_00q30B10B10B
+    800,   // textureGatherOffset_00O10B10D
+    801,   // clamp_10D00D00D
+    803,   // gl_MaxComputeImageUniforms
+    805,   // textureLod_00L20B00B
+    807,   // imageAtomicExchange_01A10D00B
+    808,   // imageAtomicCompSwap_01V20D00D00D00D
+    809,   // imageAtomicExchange_01A10D00E
+    810,   // imageAtomicExchange_01A10D00D
+    811,   // imageAtomicXor_01b20D00D
+    812,   // texture_00n20B
+    813,   // ldexp_20C20D
+    814,   // clamp_00E00E00E
+    816,   // length_20B
+    818,   // ldexp_00B00D
+    820,   // imageAtomicExchange_01N10D00E
+    821,   // bitfieldInsert_00D00D00D00D
+    823,   // textureProjGrad_00Y30B20B20B
+    825,   // roundEven_30B
+    827,   // roundEven_30C
+    828,   // acosh_20B
+    830,   // atanh_10B
+    832,   // length_20C
+    833,   // clamp_10B10B10B
+    835,   // textureGatherOffset_00L20B10D00D
+    837,   // bitCount_00D
+    839,   // bitCount_00E
+    841,   // imageAtomicExchange_01N10D00B
+    842,   // floatBitsToInt_30B
+    844,   // max_20B00B
+    846,   // imageAtomicAdd_00z10D00D
+    847,   // texelFetchOffset_00Y20D00D20D
+    849,   // atomicExchange_00E00E
+    851,   // imageAtomicXor_01h00D00D
+    852,   // imageAtomicXor_01h00D00E
+    853,   // ldexp_30C30D
+    854,   // texture_00o00B
+    855,   // textureGatherOffsets_00X10B70D00D
+    856,   // lessThanEqual_20B20B
+    858,   // min_10B00B
+    860,   // textureQueryLod_00f10B
+    861,   // smoothstep_10C10C10C
+    862,   // textureGatherOffsets_00U20B70D
+    863,   // imageAtomicAnd_01L00D00D
+    864,   // imageAtomicAnd_01L00D00E
+    865,   // mix_30F30F30F
+    866,   // abs_20D
+    868,   // abs_20C
+    869,   // abs_20B
+    871,   // lessThanEqual_10B10B
+    873,   // imageAtomicOr_01f00D00E
+    874,   // imageAtomicOr_01f00D00D
+    875,   // imageAtomicOr_01a20D00D
+    876,   // mix_00B00B00B
+    878,   // mix_00B00B00F
+    880,   // textureGather_00s30B00D
+    881,   // textureProj_00I20B
+    883,   // imageAtomicExchange_01B20D00B
+    884,   // textureLodOffset_00p10B00B00D
+    885,   // gl_MaxVertexAtomicCounterBuffers
+    887,   // unpackDouble2x32_00C
+    888,   // acos_00B
+    890,   // textureGradOffset_00J20B20B20B20D
+    892,   // fma_00C00C00C
+    893,   // texture2DGradEXT_00I10B10B10B
+    894,   // imageAtomicCompSwap_01G20D00D00D
+    895,   // imageAtomicAnd_01I20D00D
+    896,   // texture2DProjGradEXT_00I30B10B10B
+    897,   // fma_30B30B30B
+    898,   // imageAtomicAdd_01L00D00D
+    899,   // texture_00i20B00B
+    900,   // gl_MaxComputeWorkGroupCount
+    902,   // clamp_20C00C00C
+    903,   // imageAtomicMax_01X10D00E
+    904,   // imageAtomicCompSwap_00y10D00E00E
+    905,   // mix_30E30E30F
+    906,   // imageAtomicMax_01b20D00E
+    907,   // imageAtomicMin_01G20D00D
+    908,   // imageAtomicMin_01G20D00E
+    909,   // textureGatherOffsets_00I10B70D
+    910,   // imageAtomicExchange_01S10D00D00D
+    911,   // atan_20B
+    913,   // imageAtomicCompSwap_01Z20D00E00E
+    914,   // interpolateAtSample_30B00D
+    915,   // dFdxCoarse_30B
+    916,   // texture_00M10B
+    917,   // min_10B10B
+    919,   // textureLodOffset_00h10B00B00D
+    920,   // EndStreamPrimitive_00D
+    921,   // pow_10B10B
+    923,   // texture_00Y20B
+    925,   // imageAtomicXor_01P10D00D
+    926,   // texture_00X10B00B
+    928,   // frexp_00B00D
+    930,   // texture2D_00I10B
+    932,   // imageLoad_01O10D
+    933,   // ceil_20C
+    934,   // ceil_20B
+    936,   // imageAtomicMin_01b20D00E
+    937,   // imageAtomicMin_01b20D00D
+    938,   // imageAtomicMax_01P10D00D
+    939,   // imageAtomicMax_01P10D00E
+    940,   // imageAtomicExchange_01P10D00B
+    941,   // textureProjOffset_00R20B10D
+    943,   // imageStore_01V20D00D30E
+    944,   // imageAtomicCompSwap_01T20D00D00E00E
+    945,   // subpassLoad_01m00D
+    946,   // textureOffset_00I10B10D
+    948,   // min_20B00B
+    950,   // reflect_00B00B
+    952,   // noise4_10B
+    953,   // sqrt_10C
+    954,   // sqrt_10B
+    956,   // imageAtomicXor_01Z20D00D
+    957,   // imageAtomicXor_01Z20D00E
+    958,   // clamp_20E20E20E
+    960,   // textureGradOffset_00g00B00B00B00D
+    961,   // textureGather_00q20B
+    962,   // noise3_00B
+    963,   // imageAtomicOr_01G20D00D
+    964,   // imageAtomicOr_01G20D00E
+    965,   // imageAtomicMin_01C20D00D
+    966,   // imageAtomicMin_01C20D00E
+    967,   // imageAtomicAnd_01F20D00E
+    968,   // textureProjLod_00d30B00B
+    970,   // imageStore_01a20D30D
+    971,   // imageLoad_01H20D
+    973,   // textureProjGradOffset_00I20B10B10B10D
+    975,   // interpolateAtSample_20B00D
+    976,   // reflect_10B10B
+    978,   // refract_10B10B00B
+    980,   // imageAtomicMax_01h00D00D
+    981,   // mix_20C20C20F
+    982,   // imageAtomicExchange_01X10D00D
+    983,   // imageAtomicExchange_01X10D00E
+    984,   // mix_20C20C20C
+    985,   // textureOffset_00v10B10D
+    986,   // imageAtomicMin_01P10D00D
+    987,   // sinh_30B
+    989,   // textureSize_00m00D
+    990,   // textureQueryLod_00e20B
+    991,   // asinh_20B
+    993,   // imageAtomicAdd_01C20D00D
+    994,   // imageAtomicCompSwap_01I20D00D00D
+    995,   // textureProj_00O20B
+    997,   // imageAtomicCompSwap_01M00D00E00E
+    998,   // frexp_10B10D
+    1000,  // inverse_50B
+    1002,  // dot_10B10B
+    1004,  // imageAtomicExchange_01T20D00D00D
+    1005,  // imageAtomicExchange_01T20D00D00E
+    1006,  // noise2_00B
+    1007,  // textureProjGradOffset_00o10B00B00B00D
+    1008,  // radians_20B
+    1010,  // atomicCompSwap_00E00E00E
+    1012,  // textureGrad_00I00B00B00B
+    1013,  // textureGrad_00Y20B20B20B
+    1015,  // gl_MaxVertexUniformVectors
+    1017,  // textureOffset_00o00B00D00B
+    1018,  // ftransform_
+    1019,  // textureProj_00X20B
+    1021,  // textureProjOffset_00n30B10D
+    1022,  // gl_MaxGeometryUniformComponents
+    1023,  // greaterThanEqual_20E20E
+    1025,  // textureProj_00M20B
+    1026,  // texture3DProjLod_00J30B00B
+    1028,  // isinf_30C
+    1029,  // imageAtomicAdd_01S10D00D00D
+    1030,  // mix_10D10D10F
+    1031,  // textureProjGrad_00g10B00B00B
+    1032,  // log_20B
+    1034,  // imageAtomicMax_01D20D00E
+    1035,  // imageAtomicMax_01D20D00D
+    1036,  // textureOffset_00h10B00D00B
+    1037,  // modf_30B30B
+    1039,  // roundEven_20C
+    1040,  // roundEven_20B
+    1042,  // outerProduct_30B10B
+    1044,  // textureProj_00J30B
+    1046,  // imageAtomicOr_00y10D00D
+    1047,  // imageAtomicOr_00y10D00E
+    1048,  // imageAtomicOr_01F20D00E
+    1049,  // imageAtomicOr_01F20D00D
+    1050,  // textureLodOffset_00t00B00B00D
+    1051,  // floatBitsToInt_20B
+    1053,  // texelFetch_00U20D00D
+    1055,  // max_00D00D
+    1057,  // atomicMin_00E00E
+    1059,  // imageAtomicMin_01Q10D00D00D
+    1060,  // imageAtomicMin_01Q10D00D00E
+    1061,  // textureGradOffset_00v10B10B10B10D
+    1062,  // textureGrad_00n20B10B10B
+    1063,  // imageLoad_01S10D00D
+    1064,  // max_20E20E
+    1066,  // imageAtomicCompSwap_01F20D00D00D
+    1067,  // abs_10D
+    1069,  // abs_10B
+    1071,  // abs_10C
+    1072,  // gl_FragDepthEXT
+    1073,  // imageAtomicAdd_01V20D00D00D
+    1074,  // modf_30C30C
+    1075,  // imageAtomicExchange_01g00D00E
+    1076,  // textureGrad_00i20B00B00B
+    1077,  // textureProj_00g10B
+    1078,  // equal_20B20B
+    1080,  // textureProjLodOffset_00X20B00B10D
+    1082,  // max_30C00C
+    1083,  // imageAtomicMax_01W10D00D
+    1084,  // textureGatherOffsets_00a20B70D00D
+    1085,  // texture_00U20B00B
+    1087,  // textureProj_00I30B
+    1089,  // mix_00E00E00F
+    1090,  // imageAtomicCompSwap_01h00D00D00D
+    1091,  // mix_00D00D00F
+    1092,  // textureProjOffset_00q20B10D
+    1093,  // texture_00i20B
+    1094,  // textureGradOffset_00a20B10B10B10D
+    1096,  // smoothstep_00B00B20B
+    1098,  // textureLod_00s30B00B
+    1099,  // imageAtomicOr_01C20D00D
+    1100,  // imageAtomicOr_01C20D00E
+    1101,  // imageAtomicXor_01g00D00E
+    1102,  // notEqual_30B30B
+    1104,  // imageAtomicCompSwap_01W10D00D00D
+    1105,  // textureGatherOffset_00f20B00B10D
+    1107,  // imageLoad_01T20D00D
+    1108,  // imageSize_00y
+    1110,  // imageAtomicMin_01W10D00E
+    1111,  // imageSize_00z
+    1113,  // mod_10C10C
+    1114,  // imageAtomicXor_01g00D00D
+    1115,  // faceforward_00C00C00C
+    1116,  // textureGrad_00a20B10B10B
+    1118,  // imageAtomicXor_01R10D00D00D
+    1119,  // imageAtomicXor_01T20D00D00E
+    1120,  // dFdxCoarse_00B
+    1121,  // imageAtomicMin_01a20D00D
+    1122,  // texture_00J20B00B
+    1124,  // refract_20B20B00B
+    1126,  // ceil_30C
+    1127,  // gl_MaxGeometryOutputComponents
+    1128,  // noise1_30B
+    1129,  // log2_30B
+    1131,  // textureProjGrad_00d30B10B10B
+    1133,  // mod_20C20C
+    1134,  // fract_30C
+    1135,  // texelFetch_00t00D00D
+    1136,  // imageAtomicXor_01L00D00D
+    1137,  // max_30E30E
+    1139,  // gl_MaxFragmentAtomicCounterBuffers
+    1141,  // gl_in
+    1142,  // noise4_00B
+    1143,  // distance_10C10C
+    1144,  // textureProjLodOffset_00J30B00B20D
+    1146,  // imageAtomicMax_01H20D00E
+    1147,  // imageAtomicMax_01H20D00D
+    1148,  // imageStore_01h00D30E
+    1149,  // textureGatherOffsets_00d10B00B70D
+    1150,  // texelFetch_00c20D00D
+    1152,  // sqrt_00B
+    1154,  // sqrt_00C
+    1155,  // textureProjLod_00R30B00B
+    1157,  // noise3_10B
+    1158,  // texelFetch_00q10D
+    1159,  // imageAtomicAnd_01F20D00D
+    1160,  // textureLod_00m20B00B
+    1161,  // textureProjOffset_00m30B00D00B
+    1162,  // textureProjGrad_00v30B10B10B
+    1163,  // clamp_20D20D20D
+    1165,  // imageAtomicMin_01P10D00E
+    1166,  // imageAtomicAdd_01C20D00E
+    1167,  // clamp_00C00C00C
+    1168,  // imageAtomicCompSwap_01b20D00E00E
+    1169,  // max_10E00E
+    1171,  // textureGrad_00U20B10B10B
+    1173,  // imageAtomicCompSwap_01B20D00D00D
+    1174,  // imageLoad_00z10D
+    1176,  // clamp_30C00C00C
+    1177,  // sinh_20B
+    1179,  // matrixCompMult_E0BE0B
+    1180,  // fwidthFine_00B
+    1181,  // gl_PerVertex
+    1182,  // textureGradOffset_00m20B00B00B00D
+    1183,  // textureQueryLevels_00p
+    1184,  // gl_WorkGroupSize
+    1186,  // asinh_30B
+    1188,  // cross_20C20C
+    1189,  // textureGather_00a20B
+    1191,  // textureProjGradOffset_00O20B10B10B10D
+    1192,  // pow_30B30B
+    1194,  // imageAtomicCompSwap_01G20D00E00E
+    1195,  // smoothstep_10B10B10B
+    1197,  // textureProj_00O30B
+    1199,  // imageAtomicAdd_01Q10D00D00E
+    1200,  // textureQueryLod_00R10B
+    1201,  // imageAtomicCompSwap_01T20D00D00D00D
+    1202,  // imageAtomicAdd_01R10D00D00D
+    1203,  // imageAtomicAdd_01R10D00D00E
+    1204,  // imageAtomicExchange_01E20D00D
+    1205,  // imageAtomicExchange_01E20D00E
+    1206,  // isnan_00B
+    1208,  // isnan_00C
+    1209,  // imulExtended_10D10D10D10D
+    1211,  // textureProjGrad_00o10B00B00B
+    1212,  // refract_10C10C00B
+    1213,  // min_00E00E
+    1215,  // texture2DProj_00I30B
+    1217,  // textureGradOffset_00I10B10B10B10D
+    1219,  // textureLodOffset_00J20B00B20D
+    1221,  // notEqual_20B20B
+    1223,  // atomicCompSwap_00D00D00D
+    1225,  // imageAtomicOr_01W10D00E
+    1226,  // imageAtomicOr_01W10D00D
+    1227,  // textureOffset_00i20B00D
+    1228,  // dFdyFine_00B
+    1229,  // textureLod_00a20B00B
+    1231,  // textureProj_00N30B
+    1232,  // refract_30C30C00B
+    1233,  // equal_30D30D
+    1235,  // packSnorm2x16_10B
+    1237,  // floatBitsToUint_30B
+    1239,  // imageLoad_00y10D
+    1241,  // textureOffset_00R10B10D
+    1243,  // textureProjGrad_00q20B10B10B
+    1244,  // textureProjGradOffset_00R20B10B10B10D
+    1246,  // ldexp_30B30D
+    1248,  // max_30B00B
+    1250,  // imageAtomicAdd_01Q10D00D00D
+    1251,  // atomicCounterOr_00G00E
+    1252,  // step_30B30B
+    1254,  // imageAtomicOr_01T20D00D00D
+    1255,  // imageAtomicOr_01T20D00D00E
+    1256,  // textureProj_00I30B00B
+    1258,  // imageAtomicExchange_01D20D00E
+    1259,  // textureOffset_00g00B00D00B
+    1260,  // imageAtomicExchange_01D20D00B
+    1261,  // imageAtomicMin_01g00D00E
+    1262,  // abs_00D
+    1264,  // abs_00C
+    1265,  // abs_00B
+    1267,  // textureLod_00R10B00B
+    1269,  // dFdxCoarse_10B
+    1270,  // texture1D_00g00B
+    1271,  // frexp_10C10D
+    1272,  // imageAtomicMax_01B20D00D
+    1273,  // imageAtomicAdd_01g00D00E
+    1274,  // texture2DLod_00I10B00B
+    1276,  // textureProjGradOffset_00X20B10B10B10D
+    1278,  // round_20C
+    1279,  // EndPrimitive_
+    1281,  // step_00B30B
+    1283,  // round_20B
+    1285,  // equal_30E30E
+    1287,  // imageAtomicCompSwap_01R10D00D00E00E
+    1288,  // step_00C20C
+    1289,  // dot_00C00C
+    1290,  // max_30C30C
+    1291,  // atomicOr_00D00D
+    1293,  // texture2DProj_00M20B
+    1294,  // notEqual_10D10D
+    1296,  // textureSize_00V
+    1299,  // imageAtomicAnd_01h00D00D
+    1300,  // min_20C00C
+    1301,  // imageAtomicAdd_01G20D00E
+    1302,  // imageAtomicAdd_01G20D00D
+    1303,  // findLSB_30D
+    1305,  // findLSB_30E
+    1307,  // textureProj_00X20B00B
+    1309,  // shadow2D_00d20B
+    1310,  // imageAtomicAdd_01N10D00E
+    1311,  // imageAtomicAdd_01N10D00D
+    1312,  // textureGatherOffset_00U20B10D
+    1314,  // faceforward_10B10B10B
+    1316,  // imageAtomicAnd_01h00D00E
+    1317,  // min_10D00D
+    1319,  // imageAtomicOr_01B20D00E
+    1320,  // imageAtomicOr_01B20D00D
+    1321,  // EmitStreamVertex_00D
+    1322,  // imageAtomicCompSwap_01J20D00D00D
+    1323,  // all_20F
+    1325,  // imageSize_01J
+    1327,  // imageSize_01K
+    1328,  // imageSize_01H
+    1330,  // imageSize_01I
+    1332,  // packHalf2x16_10B
+    1334,  // textureProj_00I20B00B
+    1336,  // imageSize_01L
+    1337,  // imageSize_01M
+    1338,  // imageSize_01B
+    1340,  // imageSize_01C
+    1342,  // imageSize_01A
+    1344,  // imageSize_01F
+    1346,  // imageSize_01G
+    1348,  // imageSize_01D
+    1350,  // imageSize_01E
+    1352,  // imageSize_01Z
+    1353,  // imageAtomicExchange_01L00D00B
+    1354,  // imageAtomicMax_01Z20D00E
+    1355,  // texelFetch_00X10D00D
+    1357,  // notEqual_30F30F
+    1359,  // imageSize_01R
+    1360,  // imageSize_01S
+    1361,  // imageSize_01P
+    1362,  // imageSize_01Q
+    1363,  // imageSize_01V
+    1364,  // textureQueryLod_00g00B
+    1365,  // imageSize_01T
+    1366,  // imageSize_01U
+    1367,  // imageSize_01h
+    1368,  // fract_20C
+    1369,  // fract_20B
+    1371,  // textureGatherOffset_00X10B10D
+    1373,  // imageSize_01c
+    1374,  // imageSize_01a
+    1375,  // imageSize_01f
+    1376,  // texture2DProjGradEXT_00I20B10B10B
+    1377,  // imageSize_01d
+    1378,  // textureLod_00S20B00B
+    1380,  // step_30C30C
+    1381,  // imageAtomicMin_01J20D00D
+    1382,  // gl_FragDepth
+    1384,  // textureGather_00x30B
+    1385,  // mix_30B30B30F
+    1387,  // mix_30B30B30B
+    1389,  // textureGather_00Z20B00D
+    1391,  // noise4_30B
+    1392,  // sqrt_30C
+    1393,  // sqrt_30B
+    1395,  // imageStore_01E20D30B
+    1397,  // exp_00B
+    1399,  // max_30D30D
+    1401,  // gl_MaxGeometryTextureImageUnits
+    1402,  // interpolateAtCentroid_10B
+    1403,  // texture_00q10B
+    1404,  // textureSize_00M00D
+    1405,  // textureSamples_00c
+    1406,  // angle_BaseInstance
+    1407,  // mix_10F10F10F
+    1408,  // textureGradOffset_00U20B10B10B10D
+    1410,  // gl_Position
+    1413,  // textureGradOffset_00O10B10B10B10D
+    1414,  // textureProj_00M30B
+    1415,  // textureGradOffset_00L20B10B10B10D
+    1417,  // imageAtomicExchange_01V20D00D00D
+    1418,  // imageAtomicExchange_01J20D00B
+    1419,  // imageAtomicExchange_01J20D00E
+    1420,  // imageAtomicExchange_01J20D00D
+    1421,  // textureQueryLod_00l20B
+    1422,  // imageAtomicOr_01M00D00E
+    1423,  // dot_20B20B
+    1425,  // textureProjGrad_00v20B10B10B
+    1426,  // textureProjLod_00S30B00B
+    1428,  // textureProjGrad_00R20B10B10B
+    1430,  // imageAtomicMax_00z10D00E
+    1431,  // imageAtomicMax_00z10D00D
+    1432,  // normalize_30C
+    1433,  // normalize_30B
+    1435,  // textureOffset_00O10B10D
+    1436,  // textureProjGrad_00I20B10B10B
+    1438,  // textureGather_00e20B
+    1439,  // imageAtomicMax_01V20D00D00E
+    1440,  // texture2D_00M10B
+    1441,  // imageAtomicAdd_01a20D00E
+    1442,  // fwidthFine_30B
+    1443,  // textureGather_00K20B00D
+    1445,  // textureCubeLodEXT_00K20B00B
+    1446,  // textureGather_00T20B00D
+    1448,  // textureProj_00N20B
+    1449,  // textureQueryLod_00I10B
+    1450,  // imageAtomicCompSwap_01A10D00E00E
+    1451,  // dFdyFine_10B
+    1452,  // modf_10C10C
+    1453,  // imageAtomicMax_01E20D00D
+    1454,  // imageAtomicMax_01E20D00E
+    1455,  // textureProjLodOffset_00X30B00B10D
+    1457,  // textureProjLod_00m30B00B
+    1458,  // textureProjOffset_00g30B00D00B
+    1459,  // texelFetchOffset_00U20D00D10D
+    1461,  // imageAtomicCompSwap_00z10D00E00E
+    1462,  // imageAtomicMin_01D20D00E
+    1463,  // textureProjGradOffset_00q30B10B10B10D
+    1464,  // textureGradOffset_00d20B10B10B10D
+    1466,  // fwidthCoarse_20B
+    1467,  // textureProjOffset_00d30B10D
+    1469,  // equal_20F20F
+    1471,  // Empty
+    1471,  // mix_20C20C00C
+    1472,  // usubBorrow_10E10E10E
+    1474,  // imageStore_01S10D00D30E
+    1475,  // equal_10B10B
+    1477,  // imageAtomicExchange_01Q10D00D00D
+    1478,  // imageAtomicExchange_01Q10D00D00E
+    1479,  // imageAtomicExchange_01Q10D00D00B
+    1480,  // textureLodOffset_00U20B00B10D
+    1482,  // isnan_10C
+    1483,  // isnan_10B
+    1485,  // imageAtomicMin_01H20D00D
+    1486,  // imageAtomicXor_01A10D00D
+    1487,  // imageAtomicXor_01A10D00E
+    1488,  // imageAtomicCompSwap_01C20D00D00D
+    1489,  // textureGrad_00R00B00B00B
+    1490,  // imageAtomicXor_01W10D00D
+    1491,  // imageAtomicXor_01W10D00E
+    1492,  // atomicMin_00D00D
+    1494,  // textureSize_00X00D
+    1496,  // greaterThan_10B10B
+    1498,  // mix_00C00C00C
+    1499,  // clamp_30D00D00D
+    1501,  // mix_20E20E20F
+    1502,  // floatBitsToInt_10B
+    1504,  // textureProjOffset_00R30B10D00B
+    1506,  // textureGather_00U20B00D
+    1508,  // floatBitsToInt_00B
+    1510,  // imageLoad_01a20D
+    1511,  // floatBitsToUint_00B
+    1513,  // min_30C30C
+    1514,  // textureSamples_00Q
+    1515,  // textureGradOffset_00i20B00B00B00D
+    1516,  // imageAtomicXor_00z10D00D
+    1517,  // texture2DRectProj_00O20B
+    1518,  // modf_20C20C
+    1519,  // tan_20B
+    1521,  // floor_00C
+    1522,  // floor_00B
+    1524,  // imageAtomicMax_01O10D00E
+    1525,  // imageAtomicMax_01O10D00D
+    1526,  // mod_30C30C
+    1527,  // gl_DrawID
+    1528,  // textureOffset_00t00B00D
+    1529,  // texture3DLod_00J20B00B
+    1531,  // texture_00R10B00B
+    1533,  // modf_00B00B
+    1535,  // notEqual_20D20D
+    1537,  // imageAtomicExchange_01R10D00D00E
+    1538,  // imageAtomicExchange_01R10D00D00D
+    1539,  // ldexp_10C10D
+    1540,  // imageAtomicXor_00y10D00E
+    1541,  // imageAtomicXor_00y10D00D
+    1542,  // determinant_A0B
+    1543,  // textureLodOffset_00i20B00B00D
+    1544,  // imageStore_01D20D30E
+    1546,  // shadow1DLod_00m20B00B
+    1547,  // imageAtomicOr_01I20D00E
+    1548,  // distance_00C00C
+    1549,  // isnan_30B
+    1551,  // textureProjOffset_00o30B00D
+    1552,  // lessThanEqual_30D30D
+    1554,  // textureProj_00M30B00B
+    1555,  // texture2DProj_00M30B
+    1556,  // atomicCounterMax_00G00E
+    1557,  // atomicCounterExchange_00G00E
+    1558,  // textureGrad_00I10B10B10B
+    1560,  // step_00B20B
+    1562,  // texture2DProjLod_00I20B00B
+    1564,  // step_00C30C
+    1565,  // yuv_2_rgb_20B00H
+    1566,  // texelFetch_00b10D00D
+    1569,  // textureProj_00J30B00B
+    1571,  // textureGather_00R10B
+    1573,  // imageAtomicCompSwap_01K00D00E00E
+    1574,  // imageAtomicOr_01V20D00D00D
+    1575,  // imageAtomicOr_01V20D00D00E
+    1576,  // imageAtomicExchange_01P10D00D
+    1577,  // imageLoad_01L00D
+    1578,  // min_10D10D
+    1580,  // all_30F
+    1582,  // imageAtomicExchange_01P10D00E
+    1583,  // imageAtomicMax_01a20D00D
+    1584,  // imageAtomicAnd_01S10D00D00E
+    1585,  // imageAtomicAnd_01S10D00D00D
+    1586,  // angle_BaseVertex
+    1587,  // bitfieldReverse_20D
+    1589,  // bitfieldReverse_20E
+    1591,  // imageAtomicExchange_01I20D00D
+    1592,  // imageAtomicExchange_01I20D00E
+    1593,  // imageAtomicExchange_01I20D00B
+    1594,  // gl_MaxGeometryInputComponents
+    1595,  // texture_00u20B
+    1596,  // textureGather_00v20B
+    1597,  // fract_10B
+    1599,  // fract_10C
+    1600,  // textureGatherOffset_00O10B10D00D
+    1601,  // textureQueryLod_00K20B
+    1602,  // textureLodOffset_00I10B00B10D
+    1604,  // imageAtomicCompSwap_01S10D00D00E00E
+    1605,  // noise4_20B
+    1606,  // textureOffset_00U20B10D
+    1608,  // min_30B00B
+    1610,  // imageAtomicMax_00y10D00D
+    1611,  // imageAtomicMax_00y10D00E
+    1612,  // atomicAnd_00D00D
+    1614,  // gl_FragColor
+    1616,  // exp_10B
+    1618,  // bitCount_30E
+    1620,  // bitCount_30D
+    1622,  // unpackUnorm2x16_00E
+    1624,  // sqrt_20B
+    1626,  // sqrt_20C
+    1627,  // textureGrad_00L20B10B10B
+    1629,  // interpolateAtCentroid_00B
+    1630,  // textureSize_00o00D
+    1631,  // gl_MaxImageUnits
+    1633,  // textureProjGrad_00o30B00B00B
+    1634,  // packUnorm4x8_30B
+    1636,  // texelFetch_00P10D00D
+    1639,  // texture_00O10B
+    1641,  // imageAtomicMin_01M00D00D
+    1642,  // imageAtomicMin_01M00D00E
+    1643,  // texture_00e30B00B
+    1645,  // imageAtomicMin_01O10D00E
+    1646,  // imageAtomicMin_01O10D00D
+    1647,  // imageAtomicExchange_01B20D00E
+    1648,  // imageAtomicExchange_01B20D00D
+    1649,  // gl_FragCoord
+    1651,  // imageAtomicMax_01X10D00D
+    1652,  // textureGrad_00u10B00B00B
+    1653,  // fwidthFine_20B
+    1654,  // textureQueryLod_00o00B
+    1655,  // imageAtomicAnd_01E20D00E
+    1656,  // imageAtomicAnd_01E20D00D
+    1657,  // normalize_00B
+    1659,  // normalize_00C
+    1660,  // clamp_10C00C00C
+    1661,  // imageAtomicCompSwap_01f00D00E00E
+    1662,  // imageAtomicOr_01A10D00E
+    1663,  // imageAtomicOr_01A10D00D
+    1664,  // imageAtomicOr_01K00D00D
+    1665,  // imageAtomicOr_01K00D00E
+    1666,  // atomicMax_00D00D
+    1668,  // textureProjGrad_00m30B00B00B
+    1669,  // imageAtomicAnd_01R10D00D00E
+    1670,  // floatBitsToUint_10B
+    1672,  // textureLod_00J20B00B
+    1674,  // imageAtomicExchange_01D20D00D
+    1675,  // textureGrad_00O10B10B10B
+    1676,  // dFdyFine_20B
+    1677,  // textureSize_00I00D
+    1679,  // gl_MaxComputeWorkGroupSize
+    1681,  // texelFetchOffset_00R10D00D10D
+    1683,  // dFdxFine_10B
+    1684,  // imageAtomicAnd_01K00D00E
+    1685,  // imageAtomicAnd_01K00D00D
+    1686,  // textureLodOffset_00X10B00B10D
+    1688,  // texture_00T20B00B
+    1690,  // textureGatherOffsets_00n10B00B70D
+    1691,  // imageAtomicExchange_01K00D00D
+    1692,  // imageAtomicCompSwap_00y10D00D00D
+    1693,  // log_30B
+    1695,  // notEqual_20F20F
+    1697,  // allInvocationsEqual_00F
+    1698,  // imageStore_01G20D30E
+    1700,  // dFdyCoarse_30B
+    1701,  // textureProjLod_00R20B00B
+    1703,  // notEqual_30D30D
+    1705,  // fwidthCoarse_30B
+    1706,  // textureProjOffset_00I20B10D
+    1708,  // imageStore_01X10D30D
+    1709,  // textureQueryLevels_00l
+    1710,  // textureQueryLevels_00m
+    1711,  // textureQueryLevels_00o
+    1712,  // textureQueryLevels_00h
+    1713,  // textureQueryLevels_00i
+    1714,  // textureQueryLevels_00k
+    1715,  // textureQueryLevels_00d
+    1716,  // textureQueryLevels_00e
+    1717,  // textureQueryLevels_00f
+    1718,  // textureQueryLevels_00g
+    1719,  // gl_MaxDrawBuffers
+    1721,  // textureQueryLevels_00a
+    1722,  // atomicCounterMin_00G00E
+    1723,  // textureGradOffset_00u10B00B00B00D
+    1724,  // textureQueryLevels_00x
+    1725,  // textureQueryLevels_00t
+    1726,  // textureQueryLevels_00u
+    1727,  // imulExtended_20D20D20D20D
+    1729,  // any_30F
+    1731,  // distance_30B30B
+    1733,  // textureQueryLevels_00s
+    1734,  // textureQueryLevels_00L
+    1735,  // textureQueryLevels_00I
+    1736,  // textureQueryLevels_00J
+    1737,  // textureQueryLevels_00K
+    1738,  // imageAtomicExchange_01L00D00D
+    1739,  // imageAtomicAnd_01W10D00D
+    1740,  // imageAtomicAnd_01W10D00E
+    1741,  // texture3D_00J20B00B
+    1743,  // texture1DLod_00g00B00B
+    1744,  // textureQueryLevels_00X
+    1745,  // textureQueryLevels_00Y
+    1746,  // textureQueryLevels_00Z
+    1747,  // dot_30B30B
+    1749,  // textureQueryLevels_00T
+    1750,  // textureQueryLevels_00U
+    1751,  // textureQueryLevels_00R
+    1752,  // textureQueryLevels_00S
+    1753,  // gl_MaxTextureImageUnits
+    1755,  // usubBorrow_20E20E20E
+    1757,  // textureProj_00t30B00B
+    1758,  // shadow1DProj_00m30B00B
+    1759,  // clamp_30B00B00B
+    1761,  // texture2DRectProj_00O30B
+    1762,  // imageAtomicMax_01B20D00E
+    1763,  // max_10D00D
+    1765,  // textureGradOffset_00n20B10B10B10D
+    1766,  // clamp_00D00D00D
+    1768,  // floor_30B
+    1770,  // floor_30C
+    1771,  // imageStore_01P10D30E
+    1772,  // textureProjGradOffset_00S30B20B20B20D
+    1774,  // reflect_30C30C
+    1775,  // gl_PointCoord
+    1777,  // imageAtomicOr_01D20D00E
+    1778,  // textureGatherOffset_00v10B10D
+    1779,  // imageAtomicOr_01D20D00D
+    1780,  // packDouble2x32_10E
+    1781,  // clamp_10B00B00B
+    1783,  // imageStore_01F20D30D
+    1785,  // texelFetchOffset_00S20D00D20D
+    1787,  // lessThan_10D10D
+    1789,  // textureSize_00g00D
+    1790,  // textureGatherOffset_00U20B10D00D
+    1792,  // textureGatherOffset_00q10B10D00D
+    1793,  // textureGather_00I10B00D
+    1795,  // texture1DProjLod_00g30B00B
+    1796,  // texelFetch_00V10D00D
+    1799,  // imageAtomicExchange_01h00D00E
+    1800,  // imageAtomicExchange_01h00D00D
+    1801,  // atan_30B30B
+    1803,  // imageAtomicExchange_01h00D00B
+    1804,  // textureGatherOffsets_00R10B70D
+    1805,  // imageAtomicMax_01a20D00E
+    1806,  // textureProjLod_00g30B00B
+    1807,  // max_00B00B
+    1809,  // imageAtomicOr_01J20D00E
+    1810,  // imageAtomicOr_01J20D00D
+    1811,  // imageAtomicMax_01F20D00E
+    1812,  // imageAtomicMax_01F20D00D
+    1813,  // exp2_20B
+    1815,  // smoothstep_30C30C30C
+    1816,  // imageAtomicExchange_00z10D00B
+    1817,  // imageAtomicExchange_00z10D00E
+    1818,  // imageAtomicExchange_00z10D00D
+    1819,  // textureProj_00q20B
+    1820,  // textureProjLod_00t10B00B
+    1821,  // imageAtomicExchange_01K00D00E
+    1822,  // imageAtomicExchange_01K00D00B
+    1823,  // gl_MaxCombinedTextureImageUnits
+    1825,  // textureSize_00k00D
+    1826,  // reflect_20B20B
+    1828,  // imageAtomicXor_01V20D00D00E
+    1829,  // imageAtomicXor_01V20D00D00D
+    1830,  // equal_10F10F
+    1832,  // imageLoad_01f00D
+    1833,  // acos_30B
+    1835,  // dFdx_10B
+    1838,  // bitfieldReverse_30E
+    1840,  // bitfieldReverse_30D
+    1842,  // texture1DProj_00g30B
+    1843,  // fract_00C
+    1844,  // fract_00B
+    1846,  // min_30E00E
+    1848,  // gl_MinProgramTexelOffset
+    1850,  // interpolateAtOffset_20B10B
+    1851,  // gl_MaxGeometryTotalOutputComponents
+    1852,  // reflect_30B30B
+    1854,  // textureGatherOffsets_00I10B70D00D
+    1855,  // interpolateAtCentroid_30B
+    1856,  // textureGather_00s30B
+    1857,  // imageAtomicXor_01X10D00E
+    1858,  // imageAtomicXor_01X10D00D
+    1859,  // imageStore_01Z20D30B
+    1860,  // texture1D_00g00B00B
+    1861,  // pow_00B00B
+    1863,  // mod_00B00B
+    1865,  // faceforward_30C30C30C
+    1866,  // roundEven_10B
+    1868,  // roundEven_10C
+    1869,  // atanh_30B
+    1871,  // textureLod_00K20B00B
+    1873,  // bitCount_20D
+    1875,  // bitCount_20E
+    1877,  // texelFetch_00L20D00D
+    1879,  // dFdxFine_00B
+    1880,  // distance_20B20B
+    1882,  // textureGradOffset_00q10B10B10B10D
+    1883,  // uaddCarry_30E30E30E
+    1885,  // textureSize_00U00D
+    1887,  // textureProjOffset_00o10B00D00B
+    1888,  // gl_MaxCombinedImageUniforms
+    1890,  // atomicCounterXor_00G00E
+    1891,  // imageAtomicOr_01g00D00D
+    1892,  // imageAtomicOr_01g00D00E
+    1893,  // gl_GlobalInvocationID
+    1895,  // gl_VertexID
+    1897,  // imageAtomicMin_01L00D00E
+    1898,  // smoothstep_20C20C20C
+    1899,  // imageAtomicCompSwap_01U20D00D00D00D
+    1900,  // atomicOr_00E00E
+    1902,  // imageAtomicExchange_01T20D00D00B
+    1903,  // mix_10B10B10F
+    1905,  // reflect_10C10C
+    1906,  // mix_10B10B10B
+    1908,  // textureProj_00Y30B00B
+    1910,  // imageAtomicMax_01I20D00D
+    1911,  // imageAtomicMax_01I20D00E
+    1912,  // frexp_20B20D
+    1914,  // textureGatherOffset_00I10B10D00D
+    1916,  // notEqual_20E20E
+    1918,  // textureLodOffset_00d20B00B10D
+    1920,  // inverse_A0B
+    1922,  // textureProjGrad_00X20B10B10B
+    1924,  // imageLoad_01J20D
+    1926,  // textureSize_00Y00D
+    1928,  // atan_20B20B
+    1930,  // usubBorrow_00E00E00E
+    1932,  // imageAtomicXor_01M00D00E
+    1933,  // imageAtomicXor_01M00D00D
+    1934,  // dFdyFine_30B
+    1935,  // textureQueryLod_00s20B
+    1936,  // imageAtomicAnd_01N10D00D
+    1937,  // texture_00v10B
+    1938,  // subpassLoad_01n00D
+    1939,  // textureProjLodOffset_00g10B00B00D
+    1940,  // step_10C10C
+    1941,  // textureQueryLod_00x20B
+    1942,  // fma_10B10B10B
+    1943,  // smoothstep_00B00B10B
+    1945,  // imageAtomicCompSwap_01a20D00D00D
+    1946,  // imageSize_01N
+    1947,  // textureLod_00u10B00B
+    1948,  // textureProjGradOffset_00m30B00B00B00D
+    1949,  // fwidthCoarse_00B
+    1950,  // dFdyCoarse_20B
+    1951,  // textureProjGradOffset_00o30B00B00B00D
+    1952,  // textureProj_00g30B00B
+    1953,  // bitfieldExtract_00E00D00D
+    1955,  // imageStore_01I20D30D
+    1957,  // distance_30C30C
+    1958,  // any_20F
+    1960,  // textureGatherOffsets_00L20B70D
+    1961,  // textureLod_00g00B00B
+    1962,  // sin_10B
+    1964,  // textureSize_00N00D
+    1965,  // mod_20B20B
+    1967,  // imageAtomicOr_01h00D00E
+    1968,  // imageAtomicOr_01h00D00D
+    1969,  // textureGrad_00k30B20B20B
+    1970,  // textureProjOffset_00o10B00D
+    1971,  // imageAtomicMin_01A10D00E
+    1972,  // imageAtomicMin_01A10D00D
+    1973,  // textureGradOffset_00f30B10B10B10D
+    1975,  // max_20D20D
+    1977,  // max_10D10D
+    1979,  // imageAtomicCompSwap_01N10D00E00E
+    1980,  // textureGradOffset_00t00B00B00B00D
+    1981,  // refract_30B30B00B
+    1983,  // floor_20C
+    1984,  // floor_20B
+    1986,  // texelFetchOffset_00t00D00D00D
+    1987,  // imageAtomicOr_01a20D00E
+    1988,  // matrixCompMult_F0BF0B
+    1990,  // umulExtended_10E10E10E10E
+    1992,  // texture_00d20B00B
+    1994,  // imageAtomicAdd_01Z20D00D
+    1995,  // imageAtomicAdd_01Z20D00E
+    1996,  // umulExtended_30E30E30E30E
+    1998,  // textureGatherOffsets_00q10B70D00D
+    1999,  // textureGradOffset_00Y20B20B20B20D
+    2001,  // textureGatherOffset_00a20B10D
+    2003,  // textureGrad_00f30B10B10B
+    2005,  // atomicCounterSubtract_00G00E
+    2006,  // imageAtomicXor_01C20D00E
+    2007,  // modf_20B20B
+    2009,  // imageAtomicAnd_01Y10D00D
+    2010,  // imageAtomicAnd_01Y10D00E
+    2011,  // noise1_00B
+    2012,  // imageLoad_01M00D
+    2013,  // imageAtomicCompSwap_01L00D00E00E
+    2014,  // length_30C
+    2015,  // length_30B
+    2017,  // mod_30B30B
+    2019,  // mix_10C10C10F
+    2020,  // imageAtomicMin_00z10D00E
+    2021,  // imageAtomicMin_00z10D00D
+    2022,  // exp2_30B
+    2024,  // allInvocations_00F
+    2025,  // max_20C00C
+    2026,  // texture3DProj_00J30B00B
+    2028,  // imageLoad_01Q10D00D
+    2029,  // textureProjLod_00X30B00B
+    2031,  // textureProjGradOffset_00I30B10B10B10D
+    2033,  // cosh_30B
+    2035,  // textureProj_00q30B
+    2036,  // textureOffset_00S20B20D00B
+    2038,  // usubBorrow_30E30E30E
+    2040,  // textureProjOffset_00R20B10D00B
+    2042,  // imageAtomicXor_01f00D00D
+    2043,  // imageAtomicXor_01f00D00E
+    2044,  // textureOffset_00t00B00D00B
+    2045,  // textureOffset_00i20B00D00B
+    2046,  // texture3DProj_00J30B
+    2048,  // matrixCompMult_B0BB0B
+    2049,  // lessThan_30B30B
+    2051,  // cross_20B20B
+    2053,  // imageSize_01O
+    2054,  // textureGrad_00q10B10B10B
+    2055,  // clamp_20B00B00B
+    2057,  // dFdx_00B
+    2060,  // findLSB_00D
+    2062,  // textureProjLodOffset_00o30B00B00D
+    2063,  // textureProj_00R20B00B
+    2065,  // acos_20B
+    2067,  // texelFetch_00r00D
+    2068,  // imageAtomicAnd_01B20D00D
+    2069,  // max_20B20B
+    2071,  // lessThan_20E20E
+    2073,  // textureProjOffset_00g10B00D00B
+    2074,  // equal_30F30F
+    2076,  // sign_00C
+    2077,  // cosh_00B
+    2079,  // bitfieldExtract_00D00D00D
+    2081,  // imageAtomicMin_01E20D00D
+    2082,  // imageAtomicMin_01E20D00E
+    2083,  // textureLod_00Z20B00B
+    2085,  // sign_00D
+    2087,  // textureOffset_00Y20B20D
+    2089,  // transpose_60B
+    2091,  // imageAtomicExchange_01L00D00E
+    2092,  // imageAtomicAdd_01O10D00D
+    2093,  // imageAtomicAdd_01O10D00E
+    2094,  // faceforward_00B00B00B
+    2096,  // gl_NumWorkGroups
+    2098,  // imageAtomicOr_01O10D00E
+    2099,  // imageAtomicOr_01O10D00D
+    2100,  // imageAtomicAdd_01b20D00D
+    2101,  // interpolateAtCentroid_20B
+    2102,  // textureProjLodOffset_00R30B00B10D
+    2104,  // textureGrad_00h10B00B00B
+    2105,  // imageAtomicExchange_01U20D00D00B
+    2106,  // texture1DProj_00g30B00B
+    2107,  // textureQueryLod_00h00B
+    2108,  // imageAtomicExchange_01U20D00D00E
+    2109,  // modf_00C00C
+    2110,  // textureProjLod_00t30B00B
+    2111,  // textureOffset_00o00B00D
+    2112,  // imageAtomicExchange_01U20D00D00D
+    2113,  // textureGather_00U20B
+    2115,  // imageStore_01H20D30B
+    2117,  // texelFetch_00Q20D00D
+    2119,  // roundEven_00C
+    2120,  // roundEven_00B
+    2122,  // texelFetchOffset_00O10D10D
+    2123,  // atanh_20B
+    2125,  // clamp_10E00E00E
+    2127,  // dFdxFine_30B
+    2128,  // imageAtomicAdd_01L00D00E
+    2129,  // textureQueryLod_00J20B
+    2130,  // textureProjOffset_00X30B10D
+    2132,  // gl_MaxFragmentUniformVectors
+    2134,  // texture2DProjLod_00I30B00B
+    2136,  // interpolateAtOffset_10B10B
+    2137,  // max_10C10C
+    2138,  // texelFetch_00g00D00D
+    2139,  // abs_30B
+    2141,  // bitfieldInsert_10E10E00D00D
+    2143,  // packSnorm4x8_30B
+    2145,  // mix_10B10B00B
+    2147,  // imageSize_01b
+    2148,  // clamp_30D30D30D
+    2150,  // textureQueryLod_00d10B
+    2151,  // mod_10C00C
+    2152,  // imageAtomicMax_01G20D00D
+    2153,  // imageAtomicMax_01G20D00E
+    2154,  // imageStore_01R10D00D30D
+    2155,  // determinant_F0B
+    2156,  // transpose_A0B
+    2158,  // pow_20B20B
+    2160,  // imageSize_01g
+    2161,  // imageAtomicExchange_01G20D00B
+    2162,  // imageSize_01e
+    2163,  // imageAtomicExchange_01G20D00D
+    2164,  // imageAtomicExchange_01G20D00E
+    2165,  // imageLoad_01Y10D
+    2166,  // imageAtomicMax_01g00D00D
+    2167,  // imageAtomicMax_01g00D00E
+    2168,  // textureProj_00v30B
+    2169,  // textureProjGrad_00O20B10B10B
+    2170,  // log2_20B
+    2172,  // dot_30C30C
+    2173,  // fwidthCoarse_10B
+    2174,  // textureProjOffset_00I20B10D00B
+    2176,  // textureGatherOffsets_00U20B70D00D
+    2177,  // notEqual_10F10F
+    2179,  // textureGatherOffsets_00O10B70D
+    2180,  // smoothstep_00B00B00B
+    2182,  // textureProjLodOffset_00d30B00B10D
+    2184,  // imageAtomicAnd_01P10D00E
+    2185,  // imageAtomicAnd_01P10D00D
+    2186,  // textureProjLodOffset_00I30B00B10D
+    2188,  // gl_MaxCombinedAtomicCounters
+    2190,  // bitfieldInsert_10D10D00D00D
+    2192,  // imageAtomicAdd_00y10D00E
+    2193,  // imageAtomicAdd_00y10D00D
+    2194,  // imageAtomicAnd_01Q10D00D00E
+    2195,  // imageAtomicAnd_01Q10D00D00D
+    2196,  // imageAtomicCompSwap_01L00D00D00D
+    2197,  // textureGather_00k30B
+    2198,  // texture_00J20B
+    2200,  // lessThanEqual_10D10D
+    2202,  // textureProjOffset_00o30B00D00B
+    2203,  // gl_MaxVaryingVectors
+    2205,  // textureSize_00d00D
+    2207,  // sin_00B
+    2209,  // imageLoad_01N10D
+    2210,  // uaddCarry_10E10E10E
+    2212,  // imageAtomicOr_01Z20D00E
+    2213,  // imageAtomicOr_01Z20D00D
+    2214,  // mix_10C10C00C
+    2215,  // atomicCounterIncrement_00G
+    2217,  // imageAtomicAdd_01J20D00D
+    2218,  // imageAtomicAdd_01J20D00E
+    2219,  // imageAtomicCompSwap_01S10D00D00D00D
+    2220,  // imageAtomicMax_01W10D00E
+    2221,  // textureProj_00o10B00B
+    2222,  // imageAtomicAdd_01U20D00D00D
+    2223,  // imageAtomicAdd_01U20D00D00E
+    2224,  // textureProjOffset_00m30B00D
+    2225,  // imageAtomicExchange_01Y10D00B
+    2226,  // equal_10E10E
+    2228,  // imageAtomicExchange_01Y10D00E
+    2229,  // imageAtomicExchange_01Y10D00D
+    2230,  // imageAtomicExchange_01O10D00B
+    2231,  // imageAtomicExchange_01O10D00E
+    2232,  // textureProjOffset_00J30B20D
+    2234,  // imageAtomicXor_01D20D00D
+    2235,  // imageAtomicXor_01D20D00E
+    2236,  // notEqual_10E10E
+    2238,  // min_10C10C
+    2239,  // textureProjGrad_00t10B00B00B
+    2240,  // textureGather_00q20B00D
+    2241,  // imageAtomicAnd_01B20D00E
+    2242,  // imageAtomicAdd_01S10D00D00E
+    2243,  // imageAtomicCompSwap_01O10D00D00D
+    2244,  // shadow1DProjLod_00m30B00B
+    2245,  // imageAtomicMax_01f00D00E
+    2246,  // imageAtomicMax_01f00D00D
+    2247,  // texture_00u20B00B
+    2248,  // textureLodOffset_00R10B00B10D
+    2250,  // trunc_10B
+    2252,  // trunc_10C
+    2253,  // gl_MaxComputeAtomicCounters
+    2255,  // texelFetch_00u10D00D
+    2256,  // dot_20C20C
+    2257,  // gl_DepthRangeParameters
+    2259,  // textureGather_00f20B
+    2260,  // textureGatherOffsets_00L20B70D00D
+    2261,  // noise1_10B
+    2262,  // textureProjGrad_00g30B00B00B
+    2263,  // shadow2DProj_00d30B
+    2264,  // textureProj_00d30B00B
+    2266,  // sign_10B
+    2268,  // max_00E00E
+    2270,  // texture_00a20B00B
+    2272,  // textureProj_00o10B
+    2273,  // refract_20C20C00B
+    2274,  // textureProj_00M20B00B
+    2275,  // imageLoad_01A10D
+    2277,  // textureProjOffset_00X30B10D00B
+    2279,  // exp2_00B
+    2281,  // imageAtomicExchange_01H20D00B
+    2282,  // texelFetchOffset_00u10D00D00D
+    2283,  // imageAtomicCompSwap_01H20D00E00E
+    2284,  // imageAtomicExchange_01H20D00E
+    2285,  // imageAtomicExchange_01H20D00D
+    2286,  // textureGatherOffset_00q10B10D
+    2287,  // textureGather_00a20B00D
+    2289,  // imageStore_01Q10D00D30B
+    2290,  // ldexp_00C00D
+    2291,  // textureSize_00s00D
+    2292,  // imageAtomicXor_01P10D00E
+    2293,  // imageAtomicOr_01I20D00D
+    2294,  // texture_00N10B00B
+    2295,  // gl_PrimitiveID
+    2297,  // imageAtomicOr_01X10D00D
+    2298,  // imageAtomicCompSwap_01Y10D00D00D
+    2299,  // imageAtomicOr_01X10D00E
+    2300,  // textureProjGrad_00I30B10B10B
+    2302,  // gl_Layer
+    2304,  // textureOffset_00d20B10D
+    2306,  // dFdx_30B
+    2309,  // imageAtomicMin_01V20D00D00D
+    2310,  // imageAtomicMin_01V20D00D00E
+    2311,  // gl_LastFragColor
+    2312,  // textureProjGradOffset_00t30B00B00B00D
+    2313,  // min_20E20E
+    2315,  // asin_20B
+    2317,  // imageAtomicCompSwap_01U20D00D00E00E
+    2318,  // texture_00l30B00B
+    2319,  // texture1DProjLod_00g10B00B
+    2320,  // fwidth_10B
+    2323,  // dFdy_00B
+    2326,  // shadow2DLod_00d20B00B
+    2327,  // texture1DProj_00g10B
+    2328,  // lessThan_30E30E
+    2330,  // imulExtended_30D30D30D30D
+    2332,  // transpose_70B
+    2334,  // imulExtended_00D00D00D00D
+    2336,  // textureGatherOffsets_00q10B70D
+    2337,  // imageAtomicAdd_01F20D00D
+    2338,  // imageAtomicAdd_01F20D00E
+    2339,  // texture_00S20B00B
+    2341,  // textureLod_00Y20B00B
+    2343,  // faceforward_10C10C10C
+    2344,  // textureQueryLod_00u00B
+    2345,  // min_20D00D
+    2347,  // imageAtomicCompSwap_01P10D00D00D
+    2348,  // uintBitsToFloat_00E
+    2350,  // dFdxFine_20B
+    2351,  // imageAtomicMin_01L00D00D
+    2352,  // imageAtomicExchange_01g00D00D
+    2353,  // bitfieldInsert_20D20D00D00D
+    2355,  // mix_30B30B00B
+    2357,  // textureQueryLod_00U10B
+    2358,  // imageAtomicAnd_01N10D00E
+    2359,  // tanh_00B
+    2361,  // imageStore_00y10D30B
+    2363,  // max_10C00C
+    2364,  // matrixCompMult_D0BD0B
+    2365,  // textureGatherOffsets_00v10B70D00D
+    2366,  // gl_MaxComputeUniformComponents
+    2368,  // imageAtomicAnd_01X10D00E
+    2369,  // shadow2DProjLod_00d30B00B
+    2370,  // imageAtomicAnd_01X10D00D
+    2371,  // min_30B30B
+    2373,  // reflect_20C20C
+    2374,  // texelFetch_00h10D00D
+    2375,  // memoryBarrierAtomicCounter_
+    2377,  // bitfieldInsert_00E00E00D00D
+    2379,  // imageAtomicMin_01Z20D00E
+    2380,  // imageAtomicMin_01Z20D00D
+    2381,  // imageAtomicAdd_01b20D00E
+    2382,  // imageAtomicMin_01a20D00E
+    2383,  // textureGrad_00d20B10B10B
+    2385,  // atan_10B
+    2387,  // imageAtomicMax_01T20D00D00D
+    2388,  // imageAtomicMax_01T20D00D00E
+    2389,  // imageAtomicCompSwap_01g00D00D00D
+    2390,  // clamp_30C30C30C
+    2391,  // textureProj_00v20B
+    2392,  // step_00B10B
+    2394,  // textureProjLod_00I20B00B
+    2396,  // rgb_2_yuv_20B00H
+    2397,  // imageStore_01B20D30B
+    2399,  // imageLoad_01P10D
+    2400,  // texture_00T20B
+    2402,  // log2_10B
+    2404,  // imageAtomicAnd_01D20D00D
+    2405,  // imageAtomicAnd_01D20D00E
+    2406,  // findLSB_20E
+    2408,  // findLSB_20D
+    2410,  // imageAtomicMin_01f00D00E
+    2411,  // imageAtomicMin_01f00D00D
+    2412,  // noise2_30B
+    2413,  // imageAtomicOr_01U20D00D00E
+    2414,  // greaterThanEqual_10B10B
+    2416,  // imageAtomicXor_01K00D00D
+    2417,  // clamp_10D10D10D
+    2419,  // texelFetch_00M10D00D
+    2420,  // textureQueryLod_00Y20B
+    2421,  // transpose_F0B
+    2423,  // textureOffset_00Y20B20D00B
+    2425,  // textureGradOffset_00S20B20B20B20D
+    2427,  // imageAtomicOr_01U20D00D00D
+    2428,  // clamp_30E30E30E
+    2430,  // textureSize_00R00D
+    2432,  // imageAtomicAdd_01f00D00D
+    2433,  // acosh_10B
+    2435,  // imageAtomicAdd_01f00D00E
+    2436,  // imageLoad_01b20D
+    2437,  // textureOffset_00L20B10D00B
+    2439,  // mod_20B00B
+    2441,  // imageLoad_01U20D00D
+    2442,  // textureProjLod_00J30B00B
+    2444,  // subpassLoad_01i
+    2445,  // subpassLoad_01k
+    2446,  // transpose_90B
+    2448,  // mix_30C30C00C
+    2449,  // atomicAnd_00E00E
+    2451,  // max_20D00D
+    2453,  // texelFetchOffset_00I10D00D10D
+    2455,  // textureQueryLod_00L10B
+    2456,  // atomicCounter_00G
+    2458,  // textureGrad_00m20B00B00B
+    2459,  // noise3_20B
+    2460,  // bitfieldInsert_30D30D00D00D
+    2462,  // min_10C00C
+    2463,  // greaterThan_10D10D
+    2465,  // bitfieldExtract_10E00D00D
+    2467,  // textureGradOffset_00h10B00B00B00D
+    2468,  // imageAtomicMax_01V20D00D00D
+    2469,  // texture2D_00I10B00B
+    2471,  // greaterThan_20D20D
+    2473,  // noise1_20B
+    2474,  // textureProjLodOffset_00t10B00B00D
+    2475,  // textureProjOffset_00O20B10D
+    2476,  // trunc_00B
+    2478,  // length_10C
+    2479,  // length_10B
+    2481,  // imageLoad_01R10D00D
+    2482,  // imageAtomicAdd_01H20D00D
+    2483,  // imageAtomicAdd_01H20D00E
+    2484,  // subpassLoad_01j
+    2485,  // dot_00B00B
+    2487,  // tan_30B
+    2489,  // textureLod_00T20B00B
+    2491,  // textureProjGrad_00R30B10B10B
+    2493,  // exp2_10B
+    2495,  // textureProjOffset_00X20B10D00B
+    2497,  // textureProjGradOffset_00X30B10B10B10D
+    2499,  // matrixCompMult_A0BA0B
+    2501,  // textureGatherOffsets_00v10B70D
+    2502,  // textureGrad_00S20B20B20B
+    2504,  // round_30B
+    2506,  // round_30C
+    2507,  // anyInvocation_00F
+    2508,  // textureGrad_00x30B20B20B
+    2509,  // imageAtomicCompSwap_01D20D00E00E
+    2510,  // textureProjLod_00o30B00B
+    2511,  // smoothstep_00C00C10C
+    2512,  // interpolateAtSample_00B00D
+    2513,  // dFdx_20B
+    2516,  // texture_00L20B
+    2518,  // barrier_
+    2520,  // imageAtomicAdd_01a20D00D
+    2521,  // textureGather_00k30B00D
+    2522,  // findMSB_20D
+    2524,  // textureGatherOffset_00L20B10D
+    2526,  // imageAtomicMin_01S10D00D00D
+    2527,  // imageAtomicMin_01S10D00D00E
+    2528,  // textureProjOffset_00S30B20D00B
+    2530,  // imageAtomicAdd_01D20D00D
+    2531,  // normalize_10C
+    2532,  // unpackSnorm4x8_00E
+    2534,  // imageLoad_01C20D
+    2536,  // imageAtomicMax_01C20D00D
+    2537,  // imageAtomicMax_01C20D00E
+    2538,  // textureGather_00l30B00B
+    2539,  // normalize_10B
+    2541,  // asin_30B
+    2543,  // isnan_20B
+    2545,  // isnan_20C
+    2546,  // fwidth_00B
+    2549,  // dFdy_10B
+    2552,  // imageAtomicAdd_01P10D00E
+    2553,  // imageAtomicAdd_01P10D00D
+    2554,  // max_30E00E
+    2556,  // textureLod_00d20B00B
+    2558,  // textureOffset_00q10B10D
+    2559,  // gl_LastFragData
+    2561,  // mod_10B00B
+    2563,  // texture_00g00B00B
+    2564,  // uintBitsToFloat_10E
+    2566,  // textureProjOffset_00t30B00D
+    2567,  // matrixCompMult_70B70B
+    2568,  // imageAtomicAdd_01I20D00D
+    2569,  // imageAtomicMax_01M00D00D
+    2570,  // imageAtomicMax_01M00D00E
+    2571,  // textureLod_00k30B00B
+    2572,  // imageAtomicAdd_01E20D00D
+    2573,  // textureLodOffset_00Y20B00B20D
+    2575,  // refract_00C00C00B
+    2576,  // log2_00B
+    2578,  // tanh_10B
+    2580,  // imageAtomicMin_01I20D00E
+    2581,  // textureLod_00h10B00B
+    2582,  // imageStore_01b20D30E
+    2583,  // textureGather_00O20B00D
+    2584,  // gl_LocalInvocationID
+    2586,  // clamp_00B00B00B
+    2588,  // textureGather_00d10B
+    2589,  // gl_MaxGeometryAtomicCounterBuffers
+    2590,  // textureOffset_00p10B00D00B
+    2591,  // imageAtomicExchange_01f00D00B
+    2592,  // clamp_10C10C10C
+    2593,  // outerProduct_20B10B
+    2595,  // textureProjOffset_00t10B00D
+    2596,  // isinf_20C
+    2597,  // textureGrad_00e30B20B20B
+    2599,  // textureSize_00J00D
+    2601,  // textureQueryLod_00Z20B
+    2602,  // dot_10C10C
+    2603,  // textureProjGrad_00n30B10B10B
+    2604,  // imageAtomicMin_01U20D00D00E
+    2605,  // imageAtomicMin_01U20D00D00D
+    2606,  // texture2DProjLodEXT_00I30B00B
+    2607,  // imageAtomicMax_01N10D00D
+    2608,  // imageAtomicMax_01N10D00E
+    2609,  // imageAtomicAnd_01b20D00D
+    2610,  // step_00B00B
+    2612,  // texture2DLodEXT_00I10B00B
+    2613,  // texture_00K20B00B
+    2615,  // textureProjGradOffset_00n30B10B10B10D
+    2616,  // textureGrad_00J20B20B20B
+    2618,  // imageAtomicCompSwap_01V20D00D00E00E
+    2619,  // textureOffset_00U20B10D00B
+    2621,  // intBitsToFloat_10D
+    2623,  // min_20C20C
+    2624,  // findLSB_10D
+    2626,  // textureProjLodOffset_00Y30B00B20D
+    2628,  // imageAtomicMax_01h00D00E
+    2629,  // texture3D_00J20B
+    2631,  // gl_SecondaryFragDataEXT
+    2632,  // imageAtomicAdd_01X10D00E
+    2633,  // faceforward_20C20C20C
+    2634,  // imageAtomicAnd_01O10D00E
+    2635,  // imageAtomicAdd_01X10D00D
+    2636,  // textureGather_00n10B00B
+    2637,  // textureGather_00X10B00D
+    2639,  // imageAtomicMax_01L00D00E
+    2640,  // imageAtomicMax_01L00D00D
+    2641,  // imageAtomicXor_01G20D00E
+    2642,  // imageAtomicXor_01G20D00D
+    2643,  // textureOffset_00a20B10D
+    2645,  // imageAtomicExchange_01X10D00B
+    2646,  // min_30E30E
+    2648,  // texture2DProj_00I30B00B
+    2650,  // textureQueryLod_00X10B
+    2651,  // imageAtomicAnd_01I20D00E
+    2652,  // textureCubeGradEXT_00K20B20B20B
+    2653,  // min_00B00B
+    2655,  // textureGradOffset_00o00B00B00B00D
+    2656,  // mix_30C30C30F
+    2657,  // mix_30C30C30C
+    2658,  // gl_WorkGroupID
+    2660,  // degrees_00B
+    2662,  // imageAtomicMax_01J20D00E
+    2663,  // imageAtomicMax_01J20D00D
+    2664,  // imageAtomicMin_01D20D00D
+    2665,  // atomicExchange_00D00D
+    2667,  // textureOffset_00m20B00D00B
+    2668,  // gl_MaxGeometryAtomicCounters
+    2669,  // textureOffset_00f30B10D
+    2670,  // imageAtomicExchange_01a20D00D
+    2671,  // imageAtomicExchange_01a20D00E
+    2672,  // imageAtomicExchange_01a20D00B
+    2673,  // matrixCompMult_60B60B
+    2674,  // imageAtomicCompSwap_00z10D00D00D
+    2675,  // textureProj_00t30B
+    2676,  // textureProjGradOffset_00t10B00B00B00D
+    2677,  // unpackSnorm2x16_00E
+    2679,  // lessThan_30D30D
+    2681,  // atan_00B00B
+    2683,  // textureQueryLod_00S20B
+    2684,  // notEqual_10B10B
+    2686,  // imageLoad_01G20D
+    2688,  // trunc_30B
+    2690,  // trunc_30C
+    2691,  // length_00B
+    2693,  // length_00C
+    2694,  // imageAtomicAnd_01H20D00D
+    2695,  // imageAtomicAnd_01H20D00E
+    2696,  // textureProj_00X30B00B
+    2698,  // imageAtomicExchange_01O10D00D
+    2699,  // imageAtomicCompSwap_01C20D00E00E
+    2700,  // tan_00B
+    2702,  // min_20E00E
+    2704,  // textureLod_00x30B00B
+    2705,  // textureSize_00j
+    2706,  // textureSize_00n
+    2707,  // imageAtomicXor_01F20D00D
+    2708,  // textureSize_00c
+    2710,  // textureSize_00b
+    2713,  // min_20B20B
+    2715,  // textureSize_00q
+    2716,  // textureSize_00r
+    2717,  // textureSize_00w
+    2718,  // textureSize_00v
+    2719,  // bitfieldInsert_20E20E00D00D
+    2721,  // gl_MaxProgramTexelOffset
+    2723,  // textureSize_00O
+    2724,  // imageAtomicAnd_01a20D00E
+    2725,  // imageAtomicMin_01g00D00D
+    2726,  // trunc_00C
+    2727,  // imageAtomicAnd_01a20D00D
+    2728,  // textureSize_00Q
+    2730,  // textureSize_00P
+    2733,  // imageAtomicAdd_01M00D00E
+    2734,  // imageAtomicAdd_01M00D00D
+    2735,  // textureSize_00W
+    2737,  // textureProjLod_00X20B00B
+    2739,  // smoothstep_00C00C00C
+    2740,  // atomicCounterAnd_00G00E
+    2741,  // faceforward_30B30B30B
+    2743,  // distance_20C20C
+    2744,  // atomicCounterAdd_00G00E
+    2745,  // imageStore_01O10D30D
+    2746,  // texture_00X10B
+    2748,  // ceil_00C
+    2749,  // ceil_00B
+    2751,  // distance_00B00B
+    2753,  // texelFetch_00O10D
+    2754,  // imageAtomicMin_01N10D00D
+    2755,  // imageAtomicMin_01N10D00E
+    2756,  // imageAtomicExchange_01C20D00D
+    2757,  // imageAtomicExchange_01C20D00E
+    2758,  // textureGrad_00s30B20B20B
+    2759,  // textureGather_00I10B
+    2761,  // imageAtomicExchange_01C20D00B
+    2762,  // min_30D30D
+    2764,  // findMSB_30E
+    2766,  // findMSB_30D
+    2768,  // textureGradOffset_00R10B10B10B10D
+    2770,  // fwidth_30B
+    2773,  // textureGrad_00K20B20B20B
+    2775,  // texelFetch_00S20D00D
+    2777,  // max_10B00B
+    2779,  // textureProjGradOffset_00R30B10B10B10D
+    2781,  // texelFetchOffset_00L20D00D10D
+    2783,  // isnan_30C
+    2784,  // transpose_50B
+    2786,  // greaterThanEqual_20D20D
+    2788,  // asinh_00B
+    2790,  // gl_PrimitiveIDIn
+    2791,  // textureGather_00Z20B
+    2793,  // textureGrad_00p10B00B00B
+    2794,  // textureProjOffset_00v30B10D
+    2795,  // greaterThan_20B20B
+    2797,  // min_20D20D
+    2799,  // texelFetchOffset_00g00D00D00D
+    2800,  // imageAtomicCompSwap_01g00D00E00E
+    2801,  // imageAtomicCompSwap_01Q10D00D00E00E
+    2802,  // imageAtomicXor_01O10D00D
+    2803,  // imageAtomicXor_01O10D00E
+    2804,  // tanh_20B
+    2806,  // textureProj_00m30B00B
+    2807,  // sin_20B
+    2809,  // smoothstep_00C00C30C
+    2810,  // textureSize_00l00D
+    2811,  // textureLod_00o00B00B
+    2812,  // imageAtomicMin_01K00D00D
+    2813,  // imageAtomicMin_01K00D00E
+    2814,  // textureOffset_00I10B10D00B
+    2816,  // imageAtomicAnd_00z10D00D
+    2817,  // imageAtomicAnd_00z10D00E
+    2818,  // gl_MaxAtomicCounterBufferSize
+    2820,  // textureOffset_00J20B20D00B
+    2822,  // lessThanEqual_20E20E
+    2824,  // gl_BaseVertex
+    2825,  // textureOffset_00g00B00D
+    2826,  // textureProj_00g30B
+    2827,  // imageLoad_01Z20D
+    2828,  // bitfieldInsert_30E30E00D00D
+    2830,  // bitfieldExtract_20E00D00D
+    2832,  // uintBitsToFloat_20E
+    2834,  // unpackUnorm4x8_00E
+    2836,  // mod_10B10B
+    2838,  // gl_LocalInvocationIndex
+    2840,  // imageAtomicAdd_01W10D00D
+    2841,  // imageAtomicAdd_01W10D00E
+    2842,  // gl_MaxVertexImageUniforms
+    2844,  // equal_20D20D
+    2846,  // gl_MaxCombinedAtomicCounterBuffers
+    2848,  // mix_10E10E10F
+    2849,  // textureGather_00R10B00D
+    2851,  // textureSize_00Z00D
+    2853,  // bitfieldExtract_30D00D00D
+    2855,  // imageAtomicXor_01J20D00D
+    2856,  // imageAtomicXor_01J20D00E
+    2857,  // imageStore_01T20D00D30B
+    2858,  // intBitsToFloat_00D
+    2860,  // textureLodOffset_00m20B00B00D
+    2861,  // findLSB_00E
+    2863,  // texelFetch_00p10D00D
+    2864,  // textureGather_00d10B00B
+    2866,  // shadow2DProj_00d30B00B
+    2867,  // inversesqrt_10B
+    2869,  // inversesqrt_10C
+    2870,  // abs_30D
+    2872,  // transpose_D0B
+    2874,  // abs_30C
+    2875,  // textureProjGrad_00O30B10B10B
+    2876,  // imageAtomicMax_01Z20D00D
+    2877,  // Empty
+    2877,  // imageLoad_01E20D
+    2879,  // textureProj_00N20B00B
+    2880,  // gl_FragData
+    2882,  // dFdxCoarse_20B
+    2883,  // clamp_20E00E00E
+    2885,  // textureProj_00d30B
+    2887,  // gl_MaxVertexOutputVectors
+    2889,  // shadow1D_00m20B
+    2890,  // textureOffset_00u10B00D
+    2891,  // cosh_10B
+    2893,  // sign_10C
+    2894,  // imageAtomicAnd_01G20D00E
+    2895,  // imageAtomicAnd_01G20D00D
+    2896,  // sign_10D
+    2898,  // umulExtended_00E00E00E00E
+    2900,  // gl_MaxVertexAttribs
+    2902,  // Empty
+    2902,  // texture_00a20B
+    2904,  // imageAtomicAdd_01T20D00D00E
+    2905,  // imageAtomicAdd_01T20D00D00D
+    2906,  // imageAtomicExchange_01g00D00B
+    2907,  // ldexp_10B10D
+    2909,  // textureProjOffset_00g30B00D
+    2910,  // texture_00Z20B
+    2912,  // degrees_10B
+    2914,  // texture_00K20B
+    2916,  // sinh_10B
+    2918,  // texture_00m20B
+    2919,  // imageAtomicXor_01C20D00D
+    2920,  // not_30F
+    2922,  // textureProjLodOffset_00I20B00B10D
+    2924,  // textureGather_00K20B
+    2926,  // textureGatherOffset_00R10B10D
+    2928,  // memoryBarrierShared_
+    2930,  // clamp_20B20B20B
+    2932,  // texelFetch_00W20D00D
+    2934,  // textureProjLod_00g10B00B
+    2935,  // trunc_20C
+    2936,  // trunc_20B
+    2938,  // textureProjOffset_00I30B10D00B
+    2940,  // max_00C00C
+    2941,  // tan_10B
+    2943,  // texture_00g00B
+    2944,  // textureLodOffset_00L20B00B10D
+    2946,  // textureLodOffset_00u10B00B00D
+    2947,  // imageAtomicAnd_00y10D00E
+    2948,  // imageAtomicAnd_00y10D00D
+    2949,  // isinf_20B
+    2951,  // dFdyCoarse_10B
+    2952,  // textureGatherOffset_00X10B10D00D
+    2954,  // min_10E10E
+    2956,  // memoryBarrierImage_
+    2958,  // round_10B
+    2960,  // round_10C
+    2961,  // textureProjLodOffset_00m30B00B00D
+    2962,  // textureProjGradOffset_00g10B00B00B00D
+    2963,  // textureProj_00R30B
+    2965,  // shadow1DProj_00m30B
+    2966,  // texture_00f30B00B
+    2967,  // fma_00B00B00B
+    2968,  // imageAtomicOr_01b20D00E
+    2969,  // imageAtomicOr_01b20D00D
+    2970,  // textureGatherOffset_00v10B10D00D
+    2971,  // atomicMax_00E00E
+    2973,  // imageAtomicMin_01B20D00E
+    2974,  // imageAtomicMin_01B20D00D
+    2975,  // textureQueryLod_00t00B
+    2976,  // textureProjOffset_00R30B10D
+    2978,  // textureProj_00X30B
+    2980,  // findMSB_00D
+    2982,  // findMSB_00E
+    2984,  // textureProjOffset_00X20B10D
+    2986,  // imageAtomicCompSwap_01X10D00D00D
+    2987,  // frexp_30C30D
+    2988,  // mix_10C10C10C
+    2989,  // min_30D00D
+    2991,  // texture_00M10B00B
+    2992,  // fwidth_20B
+    2995,  // imageAtomicOr_01S10D00D00D
+    2996,  // imageAtomicOr_01S10D00D00E
+    2997,  // mod_30C00C
+    2998,  // imageAtomicAdd_01A10D00D
+    2999,  // imageAtomicAdd_01A10D00E
+    3000,  // texture_00o00B00B
+    3001,  // imageAtomicOr_01H20D00E
+    3002,  // imageAtomicOr_01H20D00D
+    3003,  // cos_20B
+    3005,  // textureGather_00T20B
+    3007,  // textureProjGradOffset_00J30B20B20B20D
+    3009,  // asinh_10B
+    3011,  // texelFetchOffset_00v10D10D
+    3012,  // imageAtomicXor_01E20D00E
+    3013,  // imageAtomicXor_01E20D00D
+};
+
+using Ext = TExtension;
+
+// Flat array of all unmangled name identifiers.
 constexpr UnmangledEntry unmangled[] = {
-    UnmangledEntry(ImmutableString("all"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("textureProj"),
-                   &UnmangledBuiltIns::OES_EGL_image_external_essl3,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   -1,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("unpackUnorm4x8"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("imageAtomicCompSwap"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   420,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("fwidth"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   0,
-                   Shader::FRAGMENT),
-    UnmangledEntry(ImmutableString("rgb_2_yuv"),
-                   &UnmangledBuiltIns::EXT_YUV_target,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   -1,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("atomicCounterIncrement"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   420,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("yuv_2_rgb"),
-                   &UnmangledBuiltIns::EXT_YUV_target,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   -1,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("findLSB"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("shadow1DProjLod"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   0,
-                   Shader::VERTEX),
-    UnmangledEntry(ImmutableString("textureCubeGradEXT"),
-                   &UnmangledBuiltIns::EXT_shader_texture_lod,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   100,
-                   -1,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("memoryBarrierImage"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   430,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("packSnorm4x8"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("inverse"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   140,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("textureCubeLod"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   100,
-                   0,
-                   Shader::VERTEX),
-    UnmangledEntry(ImmutableString("imageAtomicAdd"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   420,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("texture"),
-                   &UnmangledBuiltIns::OES_EGL_image_external_essl3,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   -1,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("frexp"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("degrees"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("imulExtended"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("texture2DProjGradEXT"),
-                   &UnmangledBuiltIns::EXT_shader_texture_lod,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   100,
-                   -1,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("atomicAnd"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   430,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("textureProjGradOffset"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("roundEven"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("texture2DProjLodEXT"),
-                   &UnmangledBuiltIns::EXT_shader_texture_lod,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   100,
-                   -1,
-                   Shader::FRAGMENT),
-    UnmangledEntry(ImmutableString("memoryBarrierAtomicCounter"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   430,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("dFdxFine"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   450,
-                   Shader::FRAGMENT),
-    UnmangledEntry(ImmutableString("ceil"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("texture1D"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("atomicCounterXor"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   460,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("not"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("texture2DRectProj"),
-                   &UnmangledBuiltIns::ARB_texture_rectangle,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   100,
-                   -1,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("mod"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("floatBitsToInt"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   330,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("radians"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("smoothstep"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("textureProjGrad"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   140,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("textureQueryLevels"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   430,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("lessThan"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("dFdy"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   0,
-                   Shader::FRAGMENT),
-    UnmangledEntry(ImmutableString("modf"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("unpackSnorm4x8"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("round"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("textureOffset"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   130,
-                   Shader::FRAGMENT),
-    UnmangledEntry(ImmutableString("clamp"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("unpackDouble2x32"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("atomicCounterOr"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   460,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("findMSB"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("texture2DRect"),
-                   &UnmangledBuiltIns::ARB_texture_rectangle,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   100,
-                   -1,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("acosh"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("interpolateAtOffset"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   400,
-                   Shader::FRAGMENT),
-    UnmangledEntry(ImmutableString("cosh"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("imageAtomicXor"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   420,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("uaddCarry"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("imageAtomicOr"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   420,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("imageLoad"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   420,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("asin"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("isnan"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("atomicMax"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   430,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("bitfieldReverse"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("dFdx"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   0,
-                   Shader::FRAGMENT),
-    UnmangledEntry(ImmutableString("memoryBarrierShared"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   430,
-                   Shader::COMPUTE),
-    UnmangledEntry(ImmutableString("shadow2DProj"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("textureLod"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("faceforward"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("abs"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("allInvocations"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   460,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("max"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("subpassLoad"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   460,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("atomicCounterAnd"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   460,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("unpackSnorm2x16"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   420,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("log2"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("textureGrad"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("barrier"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   400,
-                   Shader::COMPUTE),
-    UnmangledEntry(ImmutableString("texture2DProj"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   100,
-                   0,
-                   Shader::FRAGMENT),
-    UnmangledEntry(ImmutableString("atomicCounterDecrement"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   420,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("lessThanEqual"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("transpose"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   120,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("step"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("sinh"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("textureProjOffset"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   130,
-                   Shader::FRAGMENT),
-    UnmangledEntry(ImmutableString("trunc"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("cos"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("interpolateAtSample"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   400,
-                   Shader::FRAGMENT),
-    UnmangledEntry(ImmutableString("EmitStreamVertex"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   400,
-                   Shader::GEOMETRY),
-    UnmangledEntry(ImmutableString("shadow2DProjLod"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   0,
-                   Shader::VERTEX),
-    UnmangledEntry(ImmutableString("equal"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("texture2DLodEXT"),
-                   &UnmangledBuiltIns::EXT_shader_texture_lod,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   100,
-                   -1,
-                   Shader::FRAGMENT),
-    UnmangledEntry(ImmutableString("usubBorrow"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("texelFetchOffset"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("length"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("textureSize"),
-                   &UnmangledBuiltIns::OES_EGL_image_external_essl3,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   -1,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("acos"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("uintBitsToFloat"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   330,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("packUnorm2x16"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("unpackHalf2x16"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   420,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("matrixCompMult"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   -1,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("pow"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("atomicExchange"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   430,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("texture2DProjLod"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   100,
-                   0,
-                   Shader::VERTEX),
-    UnmangledEntry(ImmutableString("ldexp"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("floatBitsToUint"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   330,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("textureProjLod"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("textureCubeLodEXT"),
-                   &UnmangledBuiltIns::EXT_shader_texture_lod,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   100,
-                   -1,
-                   Shader::FRAGMENT),
-    UnmangledEntry(ImmutableString("imageStore"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   420,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("textureGatherOffset"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("textureProjLodOffset"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("log"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("bitCount"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("dFdyFine"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   450,
-                   Shader::FRAGMENT),
-    UnmangledEntry(ImmutableString("exp2"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("atomicCompSwap"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   430,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("imageSamples"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   450,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("fract"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("atomicCounterSubtract"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   460,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("EmitVertex"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   150,
-                   Shader::GEOMETRY),
-    UnmangledEntry(ImmutableString("shadow1DLod"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   0,
-                   Shader::VERTEX),
-    UnmangledEntry(ImmutableString("textureGatherOffsets"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("fma"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("EndStreamPrimitive"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   400,
-                   Shader::GEOMETRY),
-    UnmangledEntry(ImmutableString("determinant"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   -1,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("textureGather"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("texture3DLod"),
-                   &UnmangledBuiltIns::OES_texture_3D,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   100,
-                   -1,
-                   Shader::FRAGMENT),
-    UnmangledEntry(ImmutableString("greaterThanEqual"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("shadow1D"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("greaterThan"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("bitfieldInsert"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("texture3DProj"),
-                   &UnmangledBuiltIns::OES_texture_3D,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   100,
-                   -1,
-                   Shader::FRAGMENT),
-    UnmangledEntry(ImmutableString("packUnorm4x8"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("sign"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("inversesqrt"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("noise1"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("distance"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("dFdxCoarse"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   450,
-                   Shader::FRAGMENT),
-    UnmangledEntry(ImmutableString("noise2"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("tanh"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("texture2DGradEXT"),
-                   &UnmangledBuiltIns::EXT_shader_texture_lod,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   100,
-                   -1,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("memoryBarrier"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   420,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("texture1DProjLod"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   0,
-                   Shader::VERTEX),
-    UnmangledEntry(ImmutableString("fwidthCoarse"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   450,
-                   Shader::FRAGMENT),
-    UnmangledEntry(ImmutableString("atomicCounterMax"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   460,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("atomicCounterMin"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   460,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("atomicCounter"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   420,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("intBitsToFloat"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   330,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("bitfieldExtract"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("texture3DProjLod"),
-                   &UnmangledBuiltIns::OES_texture_3D,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   100,
-                   -1,
-                   Shader::FRAGMENT),
-    UnmangledEntry(ImmutableString("atomicAdd"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   430,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("asinh"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("texture2D"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   100,
-                   0,
-                   Shader::FRAGMENT),
-    UnmangledEntry(ImmutableString("memoryBarrierBuffer"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   430,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("tan"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("any"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("atomicXor"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   430,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("normalize"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("shadow1DProj"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("imageAtomicAnd"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   420,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("dFdyCoarse"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   450,
-                   Shader::FRAGMENT),
-    UnmangledEntry(ImmutableString("floor"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("textureLodOffset"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("fwidthFine"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   450,
-                   Shader::FRAGMENT),
-    UnmangledEntry(ImmutableString("atanh"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("textureSamples"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   450,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("cross"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("sqrt"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("atomicCounterCompSwap"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   460,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("mix"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   450,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("ftransform"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   0,
-                   Shader::VERTEX),
-    UnmangledEntry(ImmutableString("atomicCounterAdd"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   460,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("sin"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("shadow2D"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("anyInvocation"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   460,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("shadow2DLod"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   0,
-                   Shader::VERTEX),
-    UnmangledEntry(ImmutableString("imageAtomicMin"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   420,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("allInvocationsEqual"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   460,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("textureGradOffset"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("atan"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("unpackUnorm2x16"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("textureQueryLod"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   400,
-                   Shader::FRAGMENT),
-    UnmangledEntry(ImmutableString("imageAtomicMax"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   420,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("texture1DProj"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("interpolateAtCentroid"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   400,
-                   Shader::FRAGMENT),
-    UnmangledEntry(ImmutableString("reflect"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("isinf"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("texture3D"),
-                   &UnmangledBuiltIns::OES_texture_3D,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   100,
-                   -1,
-                   Shader::FRAGMENT),
-    UnmangledEntry(ImmutableString("umulExtended"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("atomicOr"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   430,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("texelFetch"),
-                   &UnmangledBuiltIns::OES_EGL_image_external_essl3,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   -1,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("EndPrimitive"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   150,
-                   Shader::GEOMETRY),
-    UnmangledEntry(ImmutableString("atomicCounterExchange"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   460,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("noise4"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("notEqual"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("outerProduct"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   120,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("packDouble2x32"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("imageSize"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   430,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("refract"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   400,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("noise3"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("min"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   130,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("textureCube"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   100,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("packSnorm2x16"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   420,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("texture1DLod"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   0,
-                   Shader::VERTEX),
-    UnmangledEntry(ImmutableString("exp"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   0,
-                   0,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("groupMemoryBarrier"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   430,
-                   Shader::COMPUTE),
-    UnmangledEntry(ImmutableString("atomicMin"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   310,
-                   430,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("imageAtomicExchange"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   450,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("packHalf2x16"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   300,
-                   420,
-                   Shader::ALL),
-    UnmangledEntry(ImmutableString("texture2DLod"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   100,
-                   0,
-                   Shader::VERTEX),
-    UnmangledEntry(ImmutableString("dot"),
-                   &UnmangledBuiltIns::UNDEFINED,
-                   &UnmangledBuiltIns::UNDEFINED,
-                   -1,
-                   400,
-                   Shader::ALL)};
+    {"all", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"textureProj", Ext::OES_EGL_image_external_essl3, Ext::UNDEFINED, 300, -1, Shader::ALL},
+    {"unpackUnorm4x8", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
+    {"imageAtomicCompSwap", Ext::UNDEFINED, Ext::UNDEFINED, -1, 420, Shader::ALL},
+    {"fwidth", Ext::UNDEFINED, Ext::UNDEFINED, 300, 0, Shader::FRAGMENT},
+    {"rgb_2_yuv", Ext::EXT_YUV_target, Ext::UNDEFINED, 300, -1, Shader::ALL},
+    {"atomicCounterIncrement", Ext::UNDEFINED, Ext::UNDEFINED, 310, 420, Shader::ALL},
+    {"yuv_2_rgb", Ext::EXT_YUV_target, Ext::UNDEFINED, 300, -1, Shader::ALL},
+    {"findLSB", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
+    {"shadow1DProjLod", Ext::UNDEFINED, Ext::UNDEFINED, -1, 0, Shader::VERTEX},
+    {"textureCubeGradEXT", Ext::EXT_shader_texture_lod, Ext::UNDEFINED, 100, -1, Shader::ALL},
+    {"memoryBarrierImage", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL},
+    {"packSnorm4x8", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
+    {"inverse", Ext::UNDEFINED, Ext::UNDEFINED, 300, 140, Shader::ALL},
+    {"textureCubeLod", Ext::UNDEFINED, Ext::UNDEFINED, 100, 0, Shader::VERTEX},
+    {"imageAtomicAdd", Ext::UNDEFINED, Ext::UNDEFINED, -1, 420, Shader::ALL},
+    {"texture", Ext::OES_EGL_image_external_essl3, Ext::UNDEFINED, 300, -1, Shader::ALL},
+    {"frexp", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL},
+    {"degrees", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"imulExtended", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
+    {"texture2DProjGradEXT", Ext::EXT_shader_texture_lod, Ext::UNDEFINED, 100, -1, Shader::ALL},
+    {"atomicAnd", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL},
+    {"textureProjGradOffset", Ext::UNDEFINED, Ext::UNDEFINED, -1, 130, Shader::ALL},
+    {"roundEven", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL},
+    {"texture2DProjLodEXT", Ext::EXT_shader_texture_lod, Ext::UNDEFINED, 100, -1, Shader::FRAGMENT},
+    {"memoryBarrierAtomicCounter", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL},
+    {"dFdxFine", Ext::UNDEFINED, Ext::UNDEFINED, -1, 450, Shader::FRAGMENT},
+    {"ceil", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL},
+    {"texture1D", Ext::UNDEFINED, Ext::UNDEFINED, -1, 0, Shader::ALL},
+    {"atomicCounterXor", Ext::UNDEFINED, Ext::UNDEFINED, -1, 460, Shader::ALL},
+    {"not", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"texture2DRectProj", Ext::ARB_texture_rectangle, Ext::UNDEFINED, 100, -1, Shader::ALL},
+    {"mod", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL},
+    {"floatBitsToInt", Ext::UNDEFINED, Ext::UNDEFINED, 300, 330, Shader::ALL},
+    {"radians", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"smoothstep", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"textureProjGrad", Ext::UNDEFINED, Ext::UNDEFINED, -1, 140, Shader::ALL},
+    {"textureQueryLevels", Ext::UNDEFINED, Ext::UNDEFINED, -1, 430, Shader::ALL},
+    {"lessThan", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
+    {"dFdy", Ext::UNDEFINED, Ext::UNDEFINED, 300, 0, Shader::FRAGMENT},
+    {"modf", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL},
+    {"unpackSnorm4x8", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
+    {"round", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL},
+    {"textureOffset", Ext::UNDEFINED, Ext::UNDEFINED, -1, 130, Shader::FRAGMENT},
+    {"clamp", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
+    {"unpackDouble2x32", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL},
+    {"atomicCounterOr", Ext::UNDEFINED, Ext::UNDEFINED, -1, 460, Shader::ALL},
+    {"findMSB", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
+    {"texture2DRect", Ext::ARB_texture_rectangle, Ext::UNDEFINED, 100, -1, Shader::ALL},
+    {"acosh", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
+    {"interpolateAtOffset", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::FRAGMENT},
+    {"cosh", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
+    {"imageAtomicXor", Ext::UNDEFINED, Ext::UNDEFINED, -1, 420, Shader::ALL},
+    {"uaddCarry", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
+    {"imageAtomicOr", Ext::UNDEFINED, Ext::UNDEFINED, -1, 420, Shader::ALL},
+    {"imageLoad", Ext::UNDEFINED, Ext::UNDEFINED, -1, 420, Shader::ALL},
+    {"asin", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"isnan", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL},
+    {"atomicMax", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL},
+    {"bitfieldReverse", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
+    {"dFdx", Ext::UNDEFINED, Ext::UNDEFINED, 300, 0, Shader::FRAGMENT},
+    {"memoryBarrierShared", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::COMPUTE},
+    {"shadow2DProj", Ext::UNDEFINED, Ext::UNDEFINED, -1, 0, Shader::ALL},
+    {"textureLod", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL},
+    {"faceforward", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL},
+    {"abs", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL},
+    {"allInvocations", Ext::UNDEFINED, Ext::UNDEFINED, -1, 460, Shader::ALL},
+    {"max", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
+    {"subpassLoad", Ext::UNDEFINED, Ext::UNDEFINED, -1, 460, Shader::ALL},
+    {"atomicCounterAnd", Ext::UNDEFINED, Ext::UNDEFINED, -1, 460, Shader::ALL},
+    {"unpackSnorm2x16", Ext::UNDEFINED, Ext::UNDEFINED, 300, 420, Shader::ALL},
+    {"log2", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"textureGrad", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL},
+    {"barrier", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::COMPUTE},
+    {"texture2DProj", Ext::UNDEFINED, Ext::UNDEFINED, 100, 0, Shader::FRAGMENT},
+    {"atomicCounterDecrement", Ext::UNDEFINED, Ext::UNDEFINED, 310, 420, Shader::ALL},
+    {"lessThanEqual", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
+    {"transpose", Ext::UNDEFINED, Ext::UNDEFINED, 300, 120, Shader::ALL},
+    {"step", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL},
+    {"sinh", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
+    {"textureProjOffset", Ext::UNDEFINED, Ext::UNDEFINED, -1, 130, Shader::FRAGMENT},
+    {"trunc", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL},
+    {"cos", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"interpolateAtSample", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::FRAGMENT},
+    {"EmitStreamVertex", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::GEOMETRY},
+    {"shadow2DProjLod", Ext::UNDEFINED, Ext::UNDEFINED, -1, 0, Shader::VERTEX},
+    {"equal", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"texture2DLodEXT", Ext::EXT_shader_texture_lod, Ext::UNDEFINED, 100, -1, Shader::FRAGMENT},
+    {"usubBorrow", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
+    {"texelFetchOffset", Ext::UNDEFINED, Ext::UNDEFINED, -1, 130, Shader::ALL},
+    {"length", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL},
+    {"textureSize", Ext::OES_EGL_image_external_essl3, Ext::UNDEFINED, 300, -1, Shader::ALL},
+    {"acos", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"uintBitsToFloat", Ext::UNDEFINED, Ext::UNDEFINED, 300, 330, Shader::ALL},
+    {"packUnorm2x16", Ext::UNDEFINED, Ext::UNDEFINED, 300, 400, Shader::ALL},
+    {"unpackHalf2x16", Ext::UNDEFINED, Ext::UNDEFINED, 300, 420, Shader::ALL},
+    {"matrixCompMult", Ext::UNDEFINED, Ext::UNDEFINED, 300, -1, Shader::ALL},
+    {"pow", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"texture2DProjLod", Ext::UNDEFINED, Ext::UNDEFINED, 100, 0, Shader::VERTEX},
+    {"ldexp", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL},
+    {"floatBitsToUint", Ext::UNDEFINED, Ext::UNDEFINED, 300, 330, Shader::ALL},
+    {"textureProjLod", Ext::UNDEFINED, Ext::UNDEFINED, -1, 130, Shader::ALL},
+    {"textureCubeLodEXT", Ext::EXT_shader_texture_lod, Ext::UNDEFINED, 100, -1, Shader::FRAGMENT},
+    {"imageStore", Ext::UNDEFINED, Ext::UNDEFINED, -1, 420, Shader::ALL},
+    {"textureGatherOffset", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL},
+    {"textureProjLodOffset", Ext::UNDEFINED, Ext::UNDEFINED, -1, 130, Shader::ALL},
+    {"log", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"bitCount", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
+    {"dFdyFine", Ext::UNDEFINED, Ext::UNDEFINED, -1, 450, Shader::FRAGMENT},
+    {"exp2", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"atomicCompSwap", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL},
+    {"imageSamples", Ext::UNDEFINED, Ext::UNDEFINED, -1, 450, Shader::ALL},
+    {"fract", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL},
+    {"atomicCounterSubtract", Ext::UNDEFINED, Ext::UNDEFINED, -1, 460, Shader::ALL},
+    {"EmitVertex", Ext::UNDEFINED, Ext::UNDEFINED, -1, 150, Shader::GEOMETRY},
+    {"shadow1DLod", Ext::UNDEFINED, Ext::UNDEFINED, -1, 0, Shader::VERTEX},
+    {"textureGatherOffsets", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL},
+    {"fma", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL},
+    {"EndStreamPrimitive", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::GEOMETRY},
+    {"determinant", Ext::UNDEFINED, Ext::UNDEFINED, 300, -1, Shader::ALL},
+    {"textureGather", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL},
+    {"texture3DLod", Ext::OES_texture_3D, Ext::UNDEFINED, 100, -1, Shader::FRAGMENT},
+    {"greaterThanEqual", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
+    {"shadow1D", Ext::UNDEFINED, Ext::UNDEFINED, -1, 0, Shader::ALL},
+    {"greaterThan", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
+    {"bitfieldInsert", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
+    {"texture3DProj", Ext::OES_texture_3D, Ext::UNDEFINED, 100, -1, Shader::FRAGMENT},
+    {"packUnorm4x8", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
+    {"sign", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL},
+    {"inversesqrt", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL},
+    {"noise1", Ext::UNDEFINED, Ext::UNDEFINED, -1, 0, Shader::ALL},
+    {"distance", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL},
+    {"dFdxCoarse", Ext::UNDEFINED, Ext::UNDEFINED, -1, 450, Shader::FRAGMENT},
+    {"noise2", Ext::UNDEFINED, Ext::UNDEFINED, -1, 0, Shader::ALL},
+    {"tanh", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
+    {"texture2DGradEXT", Ext::EXT_shader_texture_lod, Ext::UNDEFINED, 100, -1, Shader::ALL},
+    {"memoryBarrier", Ext::UNDEFINED, Ext::UNDEFINED, 310, 420, Shader::ALL},
+    {"texture1DProjLod", Ext::UNDEFINED, Ext::UNDEFINED, -1, 0, Shader::VERTEX},
+    {"fwidthCoarse", Ext::UNDEFINED, Ext::UNDEFINED, -1, 450, Shader::FRAGMENT},
+    {"atomicCounterMax", Ext::UNDEFINED, Ext::UNDEFINED, -1, 460, Shader::ALL},
+    {"atomicCounterMin", Ext::UNDEFINED, Ext::UNDEFINED, -1, 460, Shader::ALL},
+    {"atomicCounter", Ext::UNDEFINED, Ext::UNDEFINED, 310, 420, Shader::ALL},
+    {"intBitsToFloat", Ext::UNDEFINED, Ext::UNDEFINED, 300, 330, Shader::ALL},
+    {"bitfieldExtract", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
+    {"texture3DProjLod", Ext::OES_texture_3D, Ext::UNDEFINED, 100, -1, Shader::FRAGMENT},
+    {"atomicAdd", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL},
+    {"asinh", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
+    {"texture2D", Ext::UNDEFINED, Ext::UNDEFINED, 100, 0, Shader::FRAGMENT},
+    {"memoryBarrierBuffer", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL},
+    {"tan", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"any", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"atomicXor", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL},
+    {"normalize", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL},
+    {"shadow1DProj", Ext::UNDEFINED, Ext::UNDEFINED, -1, 0, Shader::ALL},
+    {"imageAtomicAnd", Ext::UNDEFINED, Ext::UNDEFINED, -1, 420, Shader::ALL},
+    {"dFdyCoarse", Ext::UNDEFINED, Ext::UNDEFINED, -1, 450, Shader::FRAGMENT},
+    {"floor", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL},
+    {"textureLodOffset", Ext::UNDEFINED, Ext::UNDEFINED, -1, 130, Shader::ALL},
+    {"fwidthFine", Ext::UNDEFINED, Ext::UNDEFINED, -1, 450, Shader::FRAGMENT},
+    {"atanh", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
+    {"textureSamples", Ext::UNDEFINED, Ext::UNDEFINED, -1, 450, Shader::ALL},
+    {"cross", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL},
+    {"sqrt", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL},
+    {"atomicCounterCompSwap", Ext::UNDEFINED, Ext::UNDEFINED, -1, 460, Shader::ALL},
+    {"mix", Ext::UNDEFINED, Ext::UNDEFINED, -1, 450, Shader::ALL},
+    {"ftransform", Ext::UNDEFINED, Ext::UNDEFINED, -1, 0, Shader::VERTEX},
+    {"atomicCounterAdd", Ext::UNDEFINED, Ext::UNDEFINED, -1, 460, Shader::ALL},
+    {"sin", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"shadow2D", Ext::UNDEFINED, Ext::UNDEFINED, -1, 0, Shader::ALL},
+    {"anyInvocation", Ext::UNDEFINED, Ext::UNDEFINED, -1, 460, Shader::ALL},
+    {"shadow2DLod", Ext::UNDEFINED, Ext::UNDEFINED, -1, 0, Shader::VERTEX},
+    {"atomicExchange", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL},
+    {"imageAtomicMin", Ext::UNDEFINED, Ext::UNDEFINED, -1, 420, Shader::ALL},
+    {"allInvocationsEqual", Ext::UNDEFINED, Ext::UNDEFINED, -1, 460, Shader::ALL},
+    {"textureGradOffset", Ext::UNDEFINED, Ext::UNDEFINED, -1, 130, Shader::ALL},
+    {"atan", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"unpackUnorm2x16", Ext::UNDEFINED, Ext::UNDEFINED, 300, 400, Shader::ALL},
+    {"textureQueryLod", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::FRAGMENT},
+    {"imageAtomicMax", Ext::UNDEFINED, Ext::UNDEFINED, -1, 420, Shader::ALL},
+    {"texture1DProj", Ext::UNDEFINED, Ext::UNDEFINED, -1, 0, Shader::ALL},
+    {"interpolateAtCentroid", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::FRAGMENT},
+    {"reflect", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL},
+    {"isinf", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL},
+    {"texture3D", Ext::OES_texture_3D, Ext::UNDEFINED, 100, -1, Shader::FRAGMENT},
+    {"umulExtended", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
+    {"atomicOr", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL},
+    {"texelFetch", Ext::OES_EGL_image_external_essl3, Ext::UNDEFINED, 300, -1, Shader::ALL},
+    {"EndPrimitive", Ext::UNDEFINED, Ext::UNDEFINED, -1, 150, Shader::GEOMETRY},
+    {"atomicCounterExchange", Ext::UNDEFINED, Ext::UNDEFINED, -1, 460, Shader::ALL},
+    {"noise4", Ext::UNDEFINED, Ext::UNDEFINED, -1, 0, Shader::ALL},
+    {"notEqual", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"outerProduct", Ext::UNDEFINED, Ext::UNDEFINED, 300, 120, Shader::ALL},
+    {"packDouble2x32", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL},
+    {"imageSize", Ext::UNDEFINED, Ext::UNDEFINED, -1, 430, Shader::ALL},
+    {"refract", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL},
+    {"noise3", Ext::UNDEFINED, Ext::UNDEFINED, -1, 0, Shader::ALL},
+    {"min", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
+    {"textureCube", Ext::UNDEFINED, Ext::UNDEFINED, 100, 0, Shader::ALL},
+    {"packSnorm2x16", Ext::UNDEFINED, Ext::UNDEFINED, 300, 420, Shader::ALL},
+    {"texture1DLod", Ext::UNDEFINED, Ext::UNDEFINED, -1, 0, Shader::VERTEX},
+    {"exp", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
+    {"groupMemoryBarrier", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::COMPUTE},
+    {"atomicMin", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL},
+    {"imageAtomicExchange", Ext::UNDEFINED, Ext::UNDEFINED, -1, 450, Shader::ALL},
+    {"packHalf2x16", Ext::UNDEFINED, Ext::UNDEFINED, 300, 420, Shader::ALL},
+    {"texture2DLod", Ext::UNDEFINED, Ext::UNDEFINED, 100, 0, Shader::VERTEX},
+    {"dot", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL}};
 
 }  // namespace BuiltInArray
 
@@ -59174,184 +30383,181 @@
     TStructure *gl_DepthRangeParameters =
         new TStructure(BuiltInId::gl_DepthRangeParameters, BuiltInName::gl_DepthRangeParameters,
                        TExtension::UNDEFINED, fields_gl_DepthRangeParameters);
-    mVar_gl_DepthRangeParameters = gl_DepthRangeParameters;
-    TType *type_gl_DepthRange    = new TType(gl_DepthRangeParameters, false);
+    m_gl_DepthRangeParameters = gl_DepthRangeParameters;
+    TType *type_gl_DepthRange = new TType(gl_DepthRangeParameters, false);
     type_gl_DepthRange->setQualifier(EvqUniform);
     type_gl_DepthRange->realize();
-    mVar_gl_DepthRange =
-        new TVariable(BuiltInId::gl_DepthRange, BuiltInName::gl_DepthRange, SymbolType::BuiltIn,
-                      TExtension::UNDEFINED, type_gl_DepthRange);
-    mVar_gl_MaxVertexAttribs = new TVariable(
+    m_gl_DepthRange       = new TVariable(BuiltInId::gl_DepthRange, BuiltInName::gl_DepthRange,
+                                    SymbolType::BuiltIn, TExtension::UNDEFINED, type_gl_DepthRange);
+    m_gl_MaxVertexAttribs = new TVariable(
         BuiltInId::gl_MaxVertexAttribs, BuiltInName::gl_MaxVertexAttribs, SymbolType::BuiltIn,
         TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxVertexAttribs);
-        static_cast<TVariable *>(mVar_gl_MaxVertexAttribs)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxVertexAttribs)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxVertexUniformVectors =
+    m_gl_MaxVertexUniformVectors =
         new TVariable(BuiltInId::gl_MaxVertexUniformVectors,
                       BuiltInName::gl_MaxVertexUniformVectors, SymbolType::BuiltIn,
                       TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxVertexUniformVectors);
-        static_cast<TVariable *>(mVar_gl_MaxVertexUniformVectors)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxVertexUniformVectors)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxVertexTextureImageUnits =
+    m_gl_MaxVertexTextureImageUnits =
         new TVariable(BuiltInId::gl_MaxVertexTextureImageUnits,
                       BuiltInName::gl_MaxVertexTextureImageUnits, SymbolType::BuiltIn,
                       TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxVertexTextureImageUnits);
-        static_cast<TVariable *>(mVar_gl_MaxVertexTextureImageUnits)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxVertexTextureImageUnits)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxCombinedTextureImageUnits =
+    m_gl_MaxCombinedTextureImageUnits =
         new TVariable(BuiltInId::gl_MaxCombinedTextureImageUnits,
                       BuiltInName::gl_MaxCombinedTextureImageUnits, SymbolType::BuiltIn,
                       TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxCombinedTextureImageUnits);
-        static_cast<TVariable *>(mVar_gl_MaxCombinedTextureImageUnits)
-            ->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxCombinedTextureImageUnits)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxTextureImageUnits =
+    m_gl_MaxTextureImageUnits =
         new TVariable(BuiltInId::gl_MaxTextureImageUnits, BuiltInName::gl_MaxTextureImageUnits,
                       SymbolType::BuiltIn, TExtension::UNDEFINED,
                       StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxTextureImageUnits);
-        static_cast<TVariable *>(mVar_gl_MaxTextureImageUnits)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxTextureImageUnits)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxFragmentUniformVectors =
+    m_gl_MaxFragmentUniformVectors =
         new TVariable(BuiltInId::gl_MaxFragmentUniformVectors,
                       BuiltInName::gl_MaxFragmentUniformVectors, SymbolType::BuiltIn,
                       TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxFragmentUniformVectors);
-        static_cast<TVariable *>(mVar_gl_MaxFragmentUniformVectors)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxFragmentUniformVectors)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxVaryingVectors = new TVariable(
+    m_gl_MaxVaryingVectors = new TVariable(
         BuiltInId::gl_MaxVaryingVectors, BuiltInName::gl_MaxVaryingVectors, SymbolType::BuiltIn,
         TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxVaryingVectors);
-        static_cast<TVariable *>(mVar_gl_MaxVaryingVectors)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxVaryingVectors)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxDrawBuffers = new TVariable(
+    m_gl_MaxDrawBuffers = new TVariable(
         BuiltInId::gl_MaxDrawBuffers, BuiltInName::gl_MaxDrawBuffers, SymbolType::BuiltIn,
         TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxDrawBuffers);
-        static_cast<TVariable *>(mVar_gl_MaxDrawBuffers)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxDrawBuffers)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxDualSourceDrawBuffersEXT = new TVariable(
+    m_gl_MaxDualSourceDrawBuffersEXT = new TVariable(
         BuiltInId::gl_MaxDualSourceDrawBuffersEXT, BuiltInName::gl_MaxDualSourceDrawBuffersEXT,
         SymbolType::BuiltIn, TExtension::EXT_blend_func_extended,
         StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxDualSourceDrawBuffers);
-        static_cast<TVariable *>(mVar_gl_MaxDualSourceDrawBuffersEXT)
-            ->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxDualSourceDrawBuffersEXT)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxVertexOutputVectors =
+    m_gl_MaxVertexOutputVectors =
         new TVariable(BuiltInId::gl_MaxVertexOutputVectors, BuiltInName::gl_MaxVertexOutputVectors,
                       SymbolType::BuiltIn, TExtension::UNDEFINED,
                       StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxVertexOutputVectors);
-        static_cast<TVariable *>(mVar_gl_MaxVertexOutputVectors)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxVertexOutputVectors)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxFragmentInputVectors =
+    m_gl_MaxFragmentInputVectors =
         new TVariable(BuiltInId::gl_MaxFragmentInputVectors,
                       BuiltInName::gl_MaxFragmentInputVectors, SymbolType::BuiltIn,
                       TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxFragmentInputVectors);
-        static_cast<TVariable *>(mVar_gl_MaxFragmentInputVectors)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxFragmentInputVectors)->shareConstPointer(unionArray);
     }
-    mVar_gl_MinProgramTexelOffset =
+    m_gl_MinProgramTexelOffset =
         new TVariable(BuiltInId::gl_MinProgramTexelOffset, BuiltInName::gl_MinProgramTexelOffset,
                       SymbolType::BuiltIn, TExtension::UNDEFINED,
                       StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MinProgramTexelOffset);
-        static_cast<TVariable *>(mVar_gl_MinProgramTexelOffset)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MinProgramTexelOffset)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxProgramTexelOffset =
+    m_gl_MaxProgramTexelOffset =
         new TVariable(BuiltInId::gl_MaxProgramTexelOffset, BuiltInName::gl_MaxProgramTexelOffset,
                       SymbolType::BuiltIn, TExtension::UNDEFINED,
                       StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxProgramTexelOffset);
-        static_cast<TVariable *>(mVar_gl_MaxProgramTexelOffset)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxProgramTexelOffset)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxImageUnits = new TVariable(
-        BuiltInId::gl_MaxImageUnits, BuiltInName::gl_MaxImageUnits, SymbolType::BuiltIn,
-        TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
+    m_gl_MaxImageUnits = new TVariable(BuiltInId::gl_MaxImageUnits, BuiltInName::gl_MaxImageUnits,
+                                       SymbolType::BuiltIn, TExtension::UNDEFINED,
+                                       StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxImageUnits);
-        static_cast<TVariable *>(mVar_gl_MaxImageUnits)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxImageUnits)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxVertexImageUniforms =
+    m_gl_MaxVertexImageUniforms =
         new TVariable(BuiltInId::gl_MaxVertexImageUniforms, BuiltInName::gl_MaxVertexImageUniforms,
                       SymbolType::BuiltIn, TExtension::UNDEFINED,
                       StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxVertexImageUniforms);
-        static_cast<TVariable *>(mVar_gl_MaxVertexImageUniforms)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxVertexImageUniforms)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxFragmentImageUniforms =
+    m_gl_MaxFragmentImageUniforms =
         new TVariable(BuiltInId::gl_MaxFragmentImageUniforms,
                       BuiltInName::gl_MaxFragmentImageUniforms, SymbolType::BuiltIn,
                       TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxFragmentImageUniforms);
-        static_cast<TVariable *>(mVar_gl_MaxFragmentImageUniforms)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxFragmentImageUniforms)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxComputeImageUniforms =
+    m_gl_MaxComputeImageUniforms =
         new TVariable(BuiltInId::gl_MaxComputeImageUniforms,
                       BuiltInName::gl_MaxComputeImageUniforms, SymbolType::BuiltIn,
                       TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxComputeImageUniforms);
-        static_cast<TVariable *>(mVar_gl_MaxComputeImageUniforms)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxComputeImageUniforms)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxCombinedImageUniforms =
+    m_gl_MaxCombinedImageUniforms =
         new TVariable(BuiltInId::gl_MaxCombinedImageUniforms,
                       BuiltInName::gl_MaxCombinedImageUniforms, SymbolType::BuiltIn,
                       TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxCombinedImageUniforms);
-        static_cast<TVariable *>(mVar_gl_MaxCombinedImageUniforms)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxCombinedImageUniforms)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxCombinedShaderOutputResources =
+    m_gl_MaxCombinedShaderOutputResources =
         new TVariable(BuiltInId::gl_MaxCombinedShaderOutputResources,
                       BuiltInName::gl_MaxCombinedShaderOutputResources, SymbolType::BuiltIn,
                       TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxCombinedShaderOutputResources);
-        static_cast<TVariable *>(mVar_gl_MaxCombinedShaderOutputResources)
+        static_cast<TVariable *>(m_gl_MaxCombinedShaderOutputResources)
             ->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxComputeWorkGroupCount =
+    m_gl_MaxComputeWorkGroupCount =
         new TVariable(BuiltInId::gl_MaxComputeWorkGroupCount,
                       BuiltInName::gl_MaxComputeWorkGroupCount, SymbolType::BuiltIn,
                       TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpHigh, EvqConst, 3, 1>());
@@ -59361,9 +30567,9 @@
         {
             unionArray[index].setIConst(resources.MaxComputeWorkGroupCount[index]);
         }
-        static_cast<TVariable *>(mVar_gl_MaxComputeWorkGroupCount)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxComputeWorkGroupCount)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxComputeWorkGroupSize =
+    m_gl_MaxComputeWorkGroupSize =
         new TVariable(BuiltInId::gl_MaxComputeWorkGroupSize,
                       BuiltInName::gl_MaxComputeWorkGroupSize, SymbolType::BuiltIn,
                       TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpHigh, EvqConst, 3, 1>());
@@ -59373,206 +30579,200 @@
         {
             unionArray[index].setIConst(resources.MaxComputeWorkGroupSize[index]);
         }
-        static_cast<TVariable *>(mVar_gl_MaxComputeWorkGroupSize)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxComputeWorkGroupSize)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxComputeUniformComponents =
+    m_gl_MaxComputeUniformComponents =
         new TVariable(BuiltInId::gl_MaxComputeUniformComponents,
                       BuiltInName::gl_MaxComputeUniformComponents, SymbolType::BuiltIn,
                       TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxComputeUniformComponents);
-        static_cast<TVariable *>(mVar_gl_MaxComputeUniformComponents)
-            ->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxComputeUniformComponents)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxComputeTextureImageUnits =
+    m_gl_MaxComputeTextureImageUnits =
         new TVariable(BuiltInId::gl_MaxComputeTextureImageUnits,
                       BuiltInName::gl_MaxComputeTextureImageUnits, SymbolType::BuiltIn,
                       TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxComputeTextureImageUnits);
-        static_cast<TVariable *>(mVar_gl_MaxComputeTextureImageUnits)
-            ->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxComputeTextureImageUnits)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxComputeAtomicCounters =
+    m_gl_MaxComputeAtomicCounters =
         new TVariable(BuiltInId::gl_MaxComputeAtomicCounters,
                       BuiltInName::gl_MaxComputeAtomicCounters, SymbolType::BuiltIn,
                       TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxComputeAtomicCounters);
-        static_cast<TVariable *>(mVar_gl_MaxComputeAtomicCounters)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxComputeAtomicCounters)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxComputeAtomicCounterBuffers =
+    m_gl_MaxComputeAtomicCounterBuffers =
         new TVariable(BuiltInId::gl_MaxComputeAtomicCounterBuffers,
                       BuiltInName::gl_MaxComputeAtomicCounterBuffers, SymbolType::BuiltIn,
                       TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxComputeAtomicCounterBuffers);
-        static_cast<TVariable *>(mVar_gl_MaxComputeAtomicCounterBuffers)
+        static_cast<TVariable *>(m_gl_MaxComputeAtomicCounterBuffers)
             ->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxVertexAtomicCounters =
+    m_gl_MaxVertexAtomicCounters =
         new TVariable(BuiltInId::gl_MaxVertexAtomicCounters,
                       BuiltInName::gl_MaxVertexAtomicCounters, SymbolType::BuiltIn,
                       TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxVertexAtomicCounters);
-        static_cast<TVariable *>(mVar_gl_MaxVertexAtomicCounters)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxVertexAtomicCounters)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxFragmentAtomicCounters =
+    m_gl_MaxFragmentAtomicCounters =
         new TVariable(BuiltInId::gl_MaxFragmentAtomicCounters,
                       BuiltInName::gl_MaxFragmentAtomicCounters, SymbolType::BuiltIn,
                       TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxFragmentAtomicCounters);
-        static_cast<TVariable *>(mVar_gl_MaxFragmentAtomicCounters)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxFragmentAtomicCounters)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxCombinedAtomicCounters =
+    m_gl_MaxCombinedAtomicCounters =
         new TVariable(BuiltInId::gl_MaxCombinedAtomicCounters,
                       BuiltInName::gl_MaxCombinedAtomicCounters, SymbolType::BuiltIn,
                       TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxCombinedAtomicCounters);
-        static_cast<TVariable *>(mVar_gl_MaxCombinedAtomicCounters)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxCombinedAtomicCounters)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxAtomicCounterBindings =
+    m_gl_MaxAtomicCounterBindings =
         new TVariable(BuiltInId::gl_MaxAtomicCounterBindings,
                       BuiltInName::gl_MaxAtomicCounterBindings, SymbolType::BuiltIn,
                       TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxAtomicCounterBindings);
-        static_cast<TVariable *>(mVar_gl_MaxAtomicCounterBindings)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxAtomicCounterBindings)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxVertexAtomicCounterBuffers =
+    m_gl_MaxVertexAtomicCounterBuffers =
         new TVariable(BuiltInId::gl_MaxVertexAtomicCounterBuffers,
                       BuiltInName::gl_MaxVertexAtomicCounterBuffers, SymbolType::BuiltIn,
                       TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxVertexAtomicCounterBuffers);
-        static_cast<TVariable *>(mVar_gl_MaxVertexAtomicCounterBuffers)
-            ->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxVertexAtomicCounterBuffers)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxFragmentAtomicCounterBuffers =
+    m_gl_MaxFragmentAtomicCounterBuffers =
         new TVariable(BuiltInId::gl_MaxFragmentAtomicCounterBuffers,
                       BuiltInName::gl_MaxFragmentAtomicCounterBuffers, SymbolType::BuiltIn,
                       TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxFragmentAtomicCounterBuffers);
-        static_cast<TVariable *>(mVar_gl_MaxFragmentAtomicCounterBuffers)
+        static_cast<TVariable *>(m_gl_MaxFragmentAtomicCounterBuffers)
             ->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxCombinedAtomicCounterBuffers =
+    m_gl_MaxCombinedAtomicCounterBuffers =
         new TVariable(BuiltInId::gl_MaxCombinedAtomicCounterBuffers,
                       BuiltInName::gl_MaxCombinedAtomicCounterBuffers, SymbolType::BuiltIn,
                       TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxCombinedAtomicCounterBuffers);
-        static_cast<TVariable *>(mVar_gl_MaxCombinedAtomicCounterBuffers)
+        static_cast<TVariable *>(m_gl_MaxCombinedAtomicCounterBuffers)
             ->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxAtomicCounterBufferSize =
+    m_gl_MaxAtomicCounterBufferSize =
         new TVariable(BuiltInId::gl_MaxAtomicCounterBufferSize,
                       BuiltInName::gl_MaxAtomicCounterBufferSize, SymbolType::BuiltIn,
                       TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxAtomicCounterBufferSize);
-        static_cast<TVariable *>(mVar_gl_MaxAtomicCounterBufferSize)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxAtomicCounterBufferSize)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxGeometryInputComponents = new TVariable(
+    m_gl_MaxGeometryInputComponents = new TVariable(
         BuiltInId::gl_MaxGeometryInputComponents, BuiltInName::gl_MaxGeometryInputComponents,
         SymbolType::BuiltIn, TExtension::EXT_geometry_shader,
         StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxGeometryInputComponents);
-        static_cast<TVariable *>(mVar_gl_MaxGeometryInputComponents)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxGeometryInputComponents)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxGeometryOutputComponents = new TVariable(
+    m_gl_MaxGeometryOutputComponents = new TVariable(
         BuiltInId::gl_MaxGeometryOutputComponents, BuiltInName::gl_MaxGeometryOutputComponents,
         SymbolType::BuiltIn, TExtension::EXT_geometry_shader,
         StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxGeometryOutputComponents);
-        static_cast<TVariable *>(mVar_gl_MaxGeometryOutputComponents)
-            ->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxGeometryOutputComponents)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxGeometryImageUniforms = new TVariable(
+    m_gl_MaxGeometryImageUniforms = new TVariable(
         BuiltInId::gl_MaxGeometryImageUniforms, BuiltInName::gl_MaxGeometryImageUniforms,
         SymbolType::BuiltIn, TExtension::EXT_geometry_shader,
         StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxGeometryImageUniforms);
-        static_cast<TVariable *>(mVar_gl_MaxGeometryImageUniforms)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxGeometryImageUniforms)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxGeometryTextureImageUnits = new TVariable(
+    m_gl_MaxGeometryTextureImageUnits = new TVariable(
         BuiltInId::gl_MaxGeometryTextureImageUnits, BuiltInName::gl_MaxGeometryTextureImageUnits,
         SymbolType::BuiltIn, TExtension::EXT_geometry_shader,
         StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxGeometryTextureImageUnits);
-        static_cast<TVariable *>(mVar_gl_MaxGeometryTextureImageUnits)
-            ->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxGeometryTextureImageUnits)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxGeometryOutputVertices = new TVariable(
+    m_gl_MaxGeometryOutputVertices = new TVariable(
         BuiltInId::gl_MaxGeometryOutputVertices, BuiltInName::gl_MaxGeometryOutputVertices,
         SymbolType::BuiltIn, TExtension::EXT_geometry_shader,
         StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxGeometryOutputVertices);
-        static_cast<TVariable *>(mVar_gl_MaxGeometryOutputVertices)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxGeometryOutputVertices)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxGeometryTotalOutputComponents = new TVariable(
+    m_gl_MaxGeometryTotalOutputComponents = new TVariable(
         BuiltInId::gl_MaxGeometryTotalOutputComponents,
         BuiltInName::gl_MaxGeometryTotalOutputComponents, SymbolType::BuiltIn,
         TExtension::EXT_geometry_shader, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxGeometryTotalOutputComponents);
-        static_cast<TVariable *>(mVar_gl_MaxGeometryTotalOutputComponents)
+        static_cast<TVariable *>(m_gl_MaxGeometryTotalOutputComponents)
             ->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxGeometryUniformComponents = new TVariable(
+    m_gl_MaxGeometryUniformComponents = new TVariable(
         BuiltInId::gl_MaxGeometryUniformComponents, BuiltInName::gl_MaxGeometryUniformComponents,
         SymbolType::BuiltIn, TExtension::EXT_geometry_shader,
         StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxGeometryUniformComponents);
-        static_cast<TVariable *>(mVar_gl_MaxGeometryUniformComponents)
-            ->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxGeometryUniformComponents)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxGeometryAtomicCounters = new TVariable(
+    m_gl_MaxGeometryAtomicCounters = new TVariable(
         BuiltInId::gl_MaxGeometryAtomicCounters, BuiltInName::gl_MaxGeometryAtomicCounters,
         SymbolType::BuiltIn, TExtension::EXT_geometry_shader,
         StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxGeometryAtomicCounters);
-        static_cast<TVariable *>(mVar_gl_MaxGeometryAtomicCounters)->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_gl_MaxGeometryAtomicCounters)->shareConstPointer(unionArray);
     }
-    mVar_gl_MaxGeometryAtomicCounterBuffers = new TVariable(
+    m_gl_MaxGeometryAtomicCounterBuffers = new TVariable(
         BuiltInId::gl_MaxGeometryAtomicCounterBuffers,
         BuiltInName::gl_MaxGeometryAtomicCounterBuffers, SymbolType::BuiltIn,
         TExtension::EXT_geometry_shader, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
     {
         TConstantUnion *unionArray = new TConstantUnion[1];
         unionArray[0].setIConst(resources.MaxGeometryAtomicCounterBuffers);
-        static_cast<TVariable *>(mVar_gl_MaxGeometryAtomicCounterBuffers)
+        static_cast<TVariable *>(m_gl_MaxGeometryAtomicCounterBuffers)
             ->shareConstPointer(unionArray);
     }
     TType *type_gl_FragData = new TType(EbtFloat, EbpMedium, EvqFragData, 4);
@@ -59585,31 +30785,31 @@
         type_gl_FragData->makeArray(1u);
     }
     type_gl_FragData->realize();
-    mVar_gl_FragData = new TVariable(BuiltInId::gl_FragData, BuiltInName::gl_FragData,
-                                     SymbolType::BuiltIn, TExtension::UNDEFINED, type_gl_FragData);
+    m_gl_FragData = new TVariable(BuiltInId::gl_FragData, BuiltInName::gl_FragData,
+                                  SymbolType::BuiltIn, TExtension::UNDEFINED, type_gl_FragData);
     TType *type_gl_SecondaryFragDataEXT =
         new TType(EbtFloat, EbpMedium, EvqSecondaryFragDataEXT, 4, 1);
     type_gl_SecondaryFragDataEXT->makeArray(resources.MaxDualSourceDrawBuffers);
     type_gl_SecondaryFragDataEXT->realize();
-    mVar_gl_SecondaryFragDataEXT = new TVariable(
+    m_gl_SecondaryFragDataEXT = new TVariable(
         BuiltInId::gl_SecondaryFragDataEXT, BuiltInName::gl_SecondaryFragDataEXT,
         SymbolType::BuiltIn, TExtension::EXT_blend_func_extended, type_gl_SecondaryFragDataEXT);
     TType *type_gl_FragDepthEXT = new TType(
         EbtFloat, resources.FragmentPrecisionHigh ? EbpHigh : EbpMedium, EvqFragDepthEXT, 1);
     type_gl_FragDepthEXT->realize();
-    mVar_gl_FragDepthEXT =
+    m_gl_FragDepthEXT =
         new TVariable(BuiltInId::gl_FragDepthEXT, BuiltInName::gl_FragDepthEXT, SymbolType::BuiltIn,
                       TExtension::EXT_frag_depth, type_gl_FragDepthEXT);
     TType *type_gl_LastFragData = new TType(EbtFloat, EbpMedium, EvqLastFragData, 4, 1);
     type_gl_LastFragData->makeArray(resources.MaxDrawBuffers);
     type_gl_LastFragData->realize();
-    mVar_gl_LastFragData =
+    m_gl_LastFragData =
         new TVariable(BuiltInId::gl_LastFragData, BuiltInName::gl_LastFragData, SymbolType::BuiltIn,
                       TExtension::EXT_shader_framebuffer_fetch, type_gl_LastFragData);
     TType *type_gl_LastFragDataNV = new TType(EbtFloat, EbpMedium, EvqLastFragData, 4, 1);
     type_gl_LastFragDataNV->makeArray(resources.MaxDrawBuffers);
     type_gl_LastFragDataNV->realize();
-    mVar_gl_LastFragDataNV = new TVariable(
+    m_gl_LastFragDataNV = new TVariable(
         BuiltInId::gl_LastFragDataNV, BuiltInName::gl_LastFragData, SymbolType::BuiltIn,
         TExtension::NV_shader_framebuffer_fetch, type_gl_LastFragDataNV);
     TFieldList *fields_gl_PerVertex = new TFieldList();
@@ -59619,12 +30819,12 @@
     TInterfaceBlock *gl_PerVertex =
         new TInterfaceBlock(BuiltInId::gl_PerVertex, BuiltInName::gl_PerVertex,
                             TExtension::EXT_geometry_shader, fields_gl_PerVertex);
-    mVar_gl_PerVertex = gl_PerVertex;
+    m_gl_PerVertex    = gl_PerVertex;
     TType *type_gl_in = new TType(gl_PerVertex, EvqPerVertexIn, TLayoutQualifier::Create());
     type_gl_in->makeArray(0u);
     type_gl_in->realize();
-    mVar_gl_in = new TVariable(BuiltInId::gl_in, BuiltInName::gl_in, SymbolType::BuiltIn,
-                               TExtension::EXT_geometry_shader, type_gl_in);
+    m_gl_in = new TVariable(BuiltInId::gl_in, BuiltInName::gl_in, SymbolType::BuiltIn,
+                            TExtension::EXT_geometry_shader, type_gl_in);
     TFieldList *fields_gl_PerVertexOutBlock = new TFieldList();
     fields_gl_PerVertexOutBlock->push_back(
         new TField(new TType(EbtFloat, EbpHigh, EvqPosition, 4, 1), BuiltInName::gl_Position,
@@ -59635,103 +30835,21 @@
     TType *type_gl_PositionGS = new TType(EbtFloat, EbpHigh, EvqPosition, 4);
     type_gl_PositionGS->setInterfaceBlock(gl_PerVertexOutBlock);
     type_gl_PositionGS->realize();
-    mVar_gl_PositionGS =
+    m_gl_PositionGS =
         new TVariable(BuiltInId::gl_PositionGS, BuiltInName::gl_Position, SymbolType::BuiltIn,
                       TExtension::EXT_geometry_shader, type_gl_PositionGS);
 }
 
 namespace
 {
-
-bool CheckESSLVersion(int expected, int actual)
+uint16_t GetNextRuleIndex(uint32_t nameHash)
 {
-    // Not supported
-    if (expected == -1)
-        return false;
-
-    // Only ESSL100
-    if (expected == 100)
-        return actual == 100;
-
-    return actual >= expected;
+    if (nameHash == 2135 - 1)
+        return ArraySize(BuiltInArray::kRules);
+    return BuiltInArray::kMangledOffsets[nameHash + 1];
 }
-
-bool CheckGLSLVersion(int expected, int actual)
-{
-    // Not supported
-    if (expected == -1)
-        return false;
-
-    return actual >= expected;
-}
-
-bool CheckShaderType(Shader expected, GLenum actual)
-{
-    switch (expected)
-    {
-        case Shader::ALL:
-            return true;
-        case Shader::FRAGMENT:
-            return actual == GL_FRAGMENT_SHADER;
-        case Shader::VERTEX:
-            return actual == GL_VERTEX_SHADER;
-        case Shader::COMPUTE:
-            return actual == GL_COMPUTE_SHADER;
-        case Shader::GEOMETRY:
-            return actual == GL_GEOMETRY_SHADER;
-        case Shader::GEOMETRY_EXT:
-            return actual == GL_GEOMETRY_SHADER_EXT;
-        case Shader::NOT_COMPUTE:
-            return actual != GL_COMPUTE_SHADER;
-        default:
-            UNREACHABLE();
-            return false;
-    }
-}
-
 }  // namespace
 
-const TSymbol *TSymbolTable::getSymbol(SymbolEntry entry,
-                                       const ImmutableString &name,
-                                       int version) const
-{
-    if (entry.name != name)
-    {
-        return nullptr;
-    }
-    if ((entry.symbol || entry.var) && CheckShaderType(entry.shaderType, mShaderType))
-    {
-        // Non-extension symbol or variable
-        if (!IsDesktopGLSpec(mShaderSpec) && CheckESSLVersion(entry.esslVersion, version))
-        {
-            return entry.symbol ? entry.symbol : this->*(entry.var);
-        }
-        if (IsDesktopGLSpec(mShaderSpec) && CheckGLSLVersion(entry.glslVersion, version))
-        {
-            return entry.symbol ? entry.symbol : this->*(entry.var);
-        }
-    }
-    if (entry.esslExtension && mResources.*(entry.esslExtension) && !IsDesktopGLSpec(mShaderSpec) &&
-        CheckESSLVersion(entry.esslExtVersion, version) &&
-        CheckShaderType(entry.esslExtShaderType, mShaderType))
-    {
-        return entry.esslExtSymbol ? entry.esslExtSymbol : this->*(entry.esslExtVar);
-    }
-    if (entry.glslExtension && mResources.*(entry.glslExtension) && IsDesktopGLSpec(mShaderSpec) &&
-        CheckGLSLVersion(entry.glslExtVersion, version) &&
-        CheckShaderType(entry.glslExtShaderType, mShaderType))
-    {
-        return entry.glslExtSymbol ? entry.glslExtSymbol : this->*(entry.glslExtVar);
-    }
-    if (entry.esslExtension2 && mResources.*(entry.esslExtension2) &&
-        !IsDesktopGLSpec(mShaderSpec) && CheckESSLVersion(entry.esslExtVersion2, version) &&
-        CheckShaderType(entry.esslExtShaderType2, mShaderType))
-    {
-        return entry.esslExtSymbol2 ? entry.esslExtSymbol2 : this->*(entry.esslExtVar2);
-    }
-    return nullptr;
-}
-
 const TSymbol *TSymbolTable::findBuiltIn(const ImmutableString &name, int shaderVersion) const
 {
     if (name.length() > 37)
@@ -59740,42 +30858,31 @@
     uint32_t nameHash = name.mangledNameHash();
     if (nameHash >= 2135)
         return nullptr;
-    return getSymbol(BuiltInArray::mangled[nameHash], name, shaderVersion);
-}
 
-const UnmangledBuiltIn *TSymbolTable::getUnmangled(UnmangledEntry entry,
-                                                   const ImmutableString &name,
-                                                   int version) const
-{
-    if (!CheckShaderType(entry.shaderType, mShaderType))
-    {
+    const char *actualName = BuiltInArray::kMangledNames[nameHash];
+    if (name != actualName)
         return nullptr;
-    }
-    if (entry.name == name)
-    {
-        if (!IsDesktopGLSpec(mShaderSpec) && CheckESSLVersion(entry.esslVersion, version))
-        {
-            return entry.esslUnmangled;
-        }
-        if (IsDesktopGLSpec(mShaderSpec) && CheckGLSLVersion(entry.glslVersion, version))
-        {
-            return entry.glslUnmangled;
-        }
-    }
-    return nullptr;
+
+    uint16_t startIndex = BuiltInArray::kMangledOffsets[nameHash];
+    uint16_t nextIndex  = GetNextRuleIndex(nameHash);
+
+    return FindMangledBuiltIn(mShaderSpec, shaderVersion, mShaderType, mResources, *this,
+                              BuiltInArray::kRules, startIndex, nextIndex);
 }
 
-const UnmangledBuiltIn *TSymbolTable::getUnmangledBuiltInForShaderVersion(
-    const ImmutableString &name,
-    int shaderVersion)
+bool TSymbolTable::isUnmangledBuiltInName(const ImmutableString &name,
+                                          int shaderVersion,
+                                          const TExtensionBehavior &extensions) const
 {
     if (name.length() > 26)
-        return nullptr;
+        return false;
 
     uint32_t nameHash = name.unmangledNameHash();
     if (nameHash >= 207)
-        return nullptr;
-    return getUnmangled(BuiltInArray::unmangled[nameHash], name, shaderVersion);
+        return false;
+
+    return BuiltInArray::unmangled[nameHash].matches(name, mShaderSpec, shaderVersion, mShaderType,
+                                                     extensions);
 }
 
 }  // namespace sh
diff --git a/Source/ThirdParty/ANGLE/src/compiler/translator/SymbolTable_autogen.h b/Source/ThirdParty/ANGLE/src/compiler/translator/SymbolTable_autogen.h
index 8deeae5..7be530d 100644
--- a/Source/ThirdParty/ANGLE/src/compiler/translator/SymbolTable_autogen.h
+++ b/Source/ThirdParty/ANGLE/src/compiler/translator/SymbolTable_autogen.h
@@ -18,59 +18,59 @@
 class TSymbolTableBase
 {
   public:
-    TSymbolTableBase()                                = default;
-    TSymbol *mVar_gl_DepthRangeParameters             = nullptr;
-    TSymbol *mVar_gl_DepthRange                       = nullptr;
-    TSymbol *mVar_gl_MaxVertexAttribs                 = nullptr;
-    TSymbol *mVar_gl_MaxVertexUniformVectors          = nullptr;
-    TSymbol *mVar_gl_MaxVertexTextureImageUnits       = nullptr;
-    TSymbol *mVar_gl_MaxCombinedTextureImageUnits     = nullptr;
-    TSymbol *mVar_gl_MaxTextureImageUnits             = nullptr;
-    TSymbol *mVar_gl_MaxFragmentUniformVectors        = nullptr;
-    TSymbol *mVar_gl_MaxVaryingVectors                = nullptr;
-    TSymbol *mVar_gl_MaxDrawBuffers                   = nullptr;
-    TSymbol *mVar_gl_MaxDualSourceDrawBuffersEXT      = nullptr;
-    TSymbol *mVar_gl_MaxVertexOutputVectors           = nullptr;
-    TSymbol *mVar_gl_MaxFragmentInputVectors          = nullptr;
-    TSymbol *mVar_gl_MinProgramTexelOffset            = nullptr;
-    TSymbol *mVar_gl_MaxProgramTexelOffset            = nullptr;
-    TSymbol *mVar_gl_MaxImageUnits                    = nullptr;
-    TSymbol *mVar_gl_MaxVertexImageUniforms           = nullptr;
-    TSymbol *mVar_gl_MaxFragmentImageUniforms         = nullptr;
-    TSymbol *mVar_gl_MaxComputeImageUniforms          = nullptr;
-    TSymbol *mVar_gl_MaxCombinedImageUniforms         = nullptr;
-    TSymbol *mVar_gl_MaxCombinedShaderOutputResources = nullptr;
-    TSymbol *mVar_gl_MaxComputeWorkGroupCount         = nullptr;
-    TSymbol *mVar_gl_MaxComputeWorkGroupSize          = nullptr;
-    TSymbol *mVar_gl_MaxComputeUniformComponents      = nullptr;
-    TSymbol *mVar_gl_MaxComputeTextureImageUnits      = nullptr;
-    TSymbol *mVar_gl_MaxComputeAtomicCounters         = nullptr;
-    TSymbol *mVar_gl_MaxComputeAtomicCounterBuffers   = nullptr;
-    TSymbol *mVar_gl_MaxVertexAtomicCounters          = nullptr;
-    TSymbol *mVar_gl_MaxFragmentAtomicCounters        = nullptr;
-    TSymbol *mVar_gl_MaxCombinedAtomicCounters        = nullptr;
-    TSymbol *mVar_gl_MaxAtomicCounterBindings         = nullptr;
-    TSymbol *mVar_gl_MaxVertexAtomicCounterBuffers    = nullptr;
-    TSymbol *mVar_gl_MaxFragmentAtomicCounterBuffers  = nullptr;
-    TSymbol *mVar_gl_MaxCombinedAtomicCounterBuffers  = nullptr;
-    TSymbol *mVar_gl_MaxAtomicCounterBufferSize       = nullptr;
-    TSymbol *mVar_gl_MaxGeometryInputComponents       = nullptr;
-    TSymbol *mVar_gl_MaxGeometryOutputComponents      = nullptr;
-    TSymbol *mVar_gl_MaxGeometryImageUniforms         = nullptr;
-    TSymbol *mVar_gl_MaxGeometryTextureImageUnits     = nullptr;
-    TSymbol *mVar_gl_MaxGeometryOutputVertices        = nullptr;
-    TSymbol *mVar_gl_MaxGeometryTotalOutputComponents = nullptr;
-    TSymbol *mVar_gl_MaxGeometryUniformComponents     = nullptr;
-    TSymbol *mVar_gl_MaxGeometryAtomicCounters        = nullptr;
-    TSymbol *mVar_gl_MaxGeometryAtomicCounterBuffers  = nullptr;
-    TSymbol *mVar_gl_FragData                         = nullptr;
-    TSymbol *mVar_gl_SecondaryFragDataEXT             = nullptr;
-    TSymbol *mVar_gl_FragDepthEXT                     = nullptr;
-    TSymbol *mVar_gl_LastFragData                     = nullptr;
-    TSymbol *mVar_gl_LastFragDataNV                   = nullptr;
-    TSymbol *mVar_gl_PerVertex                        = nullptr;
-    TSymbol *mVar_gl_in                               = nullptr;
-    TSymbol *mVar_gl_PositionGS                       = nullptr;
+    TSymbolTableBase()                             = default;
+    TSymbol *m_gl_DepthRangeParameters             = nullptr;
+    TSymbol *m_gl_DepthRange                       = nullptr;
+    TSymbol *m_gl_MaxVertexAttribs                 = nullptr;
+    TSymbol *m_gl_MaxVertexUniformVectors          = nullptr;
+    TSymbol *m_gl_MaxVertexTextureImageUnits       = nullptr;
+    TSymbol *m_gl_MaxCombinedTextureImageUnits     = nullptr;
+    TSymbol *m_gl_MaxTextureImageUnits             = nullptr;
+    TSymbol *m_gl_MaxFragmentUniformVectors        = nullptr;
+    TSymbol *m_gl_MaxVaryingVectors                = nullptr;
+    TSymbol *m_gl_MaxDrawBuffers                   = nullptr;
+    TSymbol *m_gl_MaxDualSourceDrawBuffersEXT      = nullptr;
+    TSymbol *m_gl_MaxVertexOutputVectors           = nullptr;
+    TSymbol *m_gl_MaxFragmentInputVectors          = nullptr;
+    TSymbol *m_gl_MinProgramTexelOffset            = nullptr;
+    TSymbol *m_gl_MaxProgramTexelOffset            = nullptr;
+    TSymbol *m_gl_MaxImageUnits                    = nullptr;
+    TSymbol *m_gl_MaxVertexImageUniforms           = nullptr;
+    TSymbol *m_gl_MaxFragmentImageUniforms         = nullptr;
+    TSymbol *m_gl_MaxComputeImageUniforms          = nullptr;
+    TSymbol *m_gl_MaxCombinedImageUniforms         = nullptr;
+    TSymbol *m_gl_MaxCombinedShaderOutputResources = nullptr;
+    TSymbol *m_gl_MaxComputeWorkGroupCount         = nullptr;
+    TSymbol *m_gl_MaxComputeWorkGroupSize          = nullptr;
+    TSymbol *m_gl_MaxComputeUniformComponents      = nullptr;
+    TSymbol *m_gl_MaxComputeTextureImageUnits      = nullptr;
+    TSymbol *m_gl_MaxComputeAtomicCounters         = nullptr;
+    TSymbol *m_gl_MaxComputeAtomicCounterBuffers   = nullptr;
+    TSymbol *m_gl_MaxVertexAtomicCounters          = nullptr;
+    TSymbol *m_gl_MaxFragmentAtomicCounters        = nullptr;
+    TSymbol *m_gl_MaxCombinedAtomicCounters        = nullptr;
+    TSymbol *m_gl_MaxAtomicCounterBindings         = nullptr;
+    TSymbol *m_gl_MaxVertexAtomicCounterBuffers    = nullptr;
+    TSymbol *m_gl_MaxFragmentAtomicCounterBuffers  = nullptr;
+    TSymbol *m_gl_MaxCombinedAtomicCounterBuffers  = nullptr;
+    TSymbol *m_gl_MaxAtomicCounterBufferSize       = nullptr;
+    TSymbol *m_gl_MaxGeometryInputComponents       = nullptr;
+    TSymbol *m_gl_MaxGeometryOutputComponents      = nullptr;
+    TSymbol *m_gl_MaxGeometryImageUniforms         = nullptr;
+    TSymbol *m_gl_MaxGeometryTextureImageUnits     = nullptr;
+    TSymbol *m_gl_MaxGeometryOutputVertices        = nullptr;
+    TSymbol *m_gl_MaxGeometryTotalOutputComponents = nullptr;
+    TSymbol *m_gl_MaxGeometryUniformComponents     = nullptr;
+    TSymbol *m_gl_MaxGeometryAtomicCounters        = nullptr;
+    TSymbol *m_gl_MaxGeometryAtomicCounterBuffers  = nullptr;
+    TSymbol *m_gl_FragData                         = nullptr;
+    TSymbol *m_gl_SecondaryFragDataEXT             = nullptr;
+    TSymbol *m_gl_FragDepthEXT                     = nullptr;
+    TSymbol *m_gl_LastFragData                     = nullptr;
+    TSymbol *m_gl_LastFragDataNV                   = nullptr;
+    TSymbol *m_gl_PerVertex                        = nullptr;
+    TSymbol *m_gl_in                               = nullptr;
+    TSymbol *m_gl_PositionGS                       = nullptr;
 };
 
 }  // namespace sh
diff --git a/Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorVulkan.cpp b/Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorVulkan.cpp
index 420d0dc..880d711 100644
--- a/Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorVulkan.cpp
+++ b/Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorVulkan.cpp
@@ -920,6 +920,14 @@
             return false;
         }
     }
+    else if (getShaderType() == GL_GEOMETRY_SHADER)
+    {
+        AddANGLEPositionVarying(root, &getSymbolTable());
+
+        WriteGeometryShaderLayoutQualifiers(
+            sink, getGeometryShaderInputPrimitiveType(), getGeometryShaderInvocations(),
+            getGeometryShaderOutputPrimitiveType(), getGeometryShaderMaxVertices());
+    }
     else
     {
         ASSERT(getShaderType() == GL_COMPUTE_SHADER);
diff --git a/Source/ThirdParty/ANGLE/src/compiler/translator/gen_builtin_symbols.py b/Source/ThirdParty/ANGLE/src/compiler/translator/gen_builtin_symbols.py
index 8e4fe18..b4f0465 100644
--- a/Source/ThirdParty/ANGLE/src/compiler/translator/gen_builtin_symbols.py
+++ b/Source/ThirdParty/ANGLE/src/compiler/translator/gen_builtin_symbols.py
@@ -252,6 +252,8 @@
 
 namespace sh
 {{
+using Resources = ShBuiltInResources;
+using TableBase = TSymbolTableBase;
 
 // Since some of the BuiltInId declarations are used outside of constexpr expressions, we need to
 // have these definitions without an initializer. C++17 should eventually remove the need for this.
@@ -286,29 +288,42 @@
 
 }}  // namespace BuiltInParameters
 
-namespace UnmangledBuiltIns
-{{
-
-{unmangled_builtin_declarations}
-
-}}  // namespace UnmangledBuiltIns
-
 // TODO(oetuaho): Would be nice to make this a class instead of a namespace so that we could friend
 // this from TFunction. Now symbol constructors taking an id have to be public even though they're
 // not supposed to be accessible from outside of here. http://anglebug.com/2390
-namespace BuiltInFunction
+namespace Func
 {{
 
 {function_declarations}
 
-}}  // namespace BuiltInFunction
+}}  // namespace Func
 
 namespace BuiltInArray
 {{
+using namespace Func;
+using Rule = SymbolRule;
 
-constexpr SymbolEntry mangled[] = {{ {mangled_array} }};
+// Rules used to initialize the mangled name array.
+constexpr SymbolRule kRules[] = {{
+{mangled_rules}
+}};
 
-constexpr UnmangledEntry unmangled[] = {{ {unmangled_array} }};
+// Flat array of all mangled names.
+constexpr const char *kMangledNames[] = {{
+{mangled_names_array}
+}};
+
+// Flat array of offsets from a symbol into the rules table.
+constexpr uint16_t kMangledOffsets[] = {{
+{mangled_offsets_array}
+}};
+
+using Ext = TExtension;
+
+// Flat array of all unmangled name identifiers.
+constexpr UnmangledEntry unmangled[] = {{
+{unmangled_array}
+}};
 
 }}
 
@@ -320,94 +335,15 @@
 {init_member_variables}
 }}
 
-namespace {{
-
-bool CheckESSLVersion(int expected, int actual)
+namespace
 {{
-    // Not supported
-    if (expected == -1)
-        return false;
-
-    // Only ESSL100
-    if (expected == 100)
-        return actual == 100;
-
-    return actual >= expected;
-}}
-
-bool CheckGLSLVersion(int expected, int actual)
+uint16_t GetNextRuleIndex(uint32_t nameHash)
 {{
-    // Not supported
-    if (expected == -1)
-        return false;
-
-    return actual >= expected;
+    if (nameHash == {num_mangled_names} - 1)
+        return ArraySize(BuiltInArray::kRules);
+    return BuiltInArray::kMangledOffsets[nameHash + 1];
 }}
-
-bool CheckShaderType(Shader expected, GLenum actual)
-{{
-    switch(expected)
-    {{
-        case Shader::ALL:
-            return true;
-        case Shader::FRAGMENT:
-            return actual == GL_FRAGMENT_SHADER;
-        case Shader::VERTEX:
-            return actual == GL_VERTEX_SHADER;
-        case Shader::COMPUTE:
-            return actual == GL_COMPUTE_SHADER;
-        case Shader::GEOMETRY:
-            return actual == GL_GEOMETRY_SHADER;
-        case Shader::GEOMETRY_EXT:
-            return actual == GL_GEOMETRY_SHADER_EXT;
-        case Shader::NOT_COMPUTE:
-            return actual != GL_COMPUTE_SHADER;
-        default:
-            UNREACHABLE();
-            return false;
-    }}
-}}
-
-}}
-
-const TSymbol *TSymbolTable::getSymbol(SymbolEntry entry, const ImmutableString &name, int version) const
-{{
-    if (entry.name != name)
-    {{
-        return nullptr;
-    }}
-    if ((entry.symbol || entry.var) && CheckShaderType(entry.shaderType, mShaderType))
-    {{
-        // Non-extension symbol or variable
-        if (!IsDesktopGLSpec(mShaderSpec) && CheckESSLVersion(entry.esslVersion, version))
-        {{
-            return entry.symbol ? entry.symbol : this->*(entry.var);
-        }}
-        if (IsDesktopGLSpec(mShaderSpec) && CheckGLSLVersion(entry.glslVersion, version))
-        {{
-            return entry.symbol ? entry.symbol : this->*(entry.var);
-        }}
-    }}
-    if (entry.esslExtension && mResources.*(entry.esslExtension) && !IsDesktopGLSpec(mShaderSpec) &&
-        CheckESSLVersion(entry.esslExtVersion, version) &&
-        CheckShaderType(entry.esslExtShaderType, mShaderType))
-    {{
-        return entry.esslExtSymbol ? entry.esslExtSymbol : this->*(entry.esslExtVar);
-    }}
-    if (entry.glslExtension && mResources.*(entry.glslExtension) && IsDesktopGLSpec(mShaderSpec) &&
-        CheckGLSLVersion(entry.glslExtVersion, version) &&
-        CheckShaderType(entry.glslExtShaderType, mShaderType))
-    {{
-        return entry.glslExtSymbol ? entry.glslExtSymbol : this->*(entry.glslExtVar);
-    }}
-    if (entry.esslExtension2 && mResources.*(entry.esslExtension2) && !IsDesktopGLSpec(mShaderSpec) &&
-        CheckESSLVersion(entry.esslExtVersion2, version) &&
-        CheckShaderType(entry.esslExtShaderType2, mShaderType))
-    {{
-        return entry.esslExtSymbol2 ? entry.esslExtSymbol2 : this->*(entry.esslExtVar2);
-    }}
-    return nullptr;
-}}
+}}  // namespace
 
 const TSymbol *TSymbolTable::findBuiltIn(const ImmutableString &name,
                                          int shaderVersion) const
@@ -418,38 +354,29 @@
     uint32_t nameHash = name.mangledNameHash();
     if (nameHash >= {num_mangled_names})
         return nullptr;
-    return getSymbol(BuiltInArray::mangled[nameHash], name, shaderVersion);
-}}
 
-const UnmangledBuiltIn *TSymbolTable::getUnmangled(UnmangledEntry entry, const ImmutableString &name, int version) const
-{{
-    if (!CheckShaderType(entry.shaderType, mShaderType))
-    {{
+    const char *actualName = BuiltInArray::kMangledNames[nameHash];
+    if (name != actualName)
         return nullptr;
-    }}
-    if (entry.name == name)
-    {{
-        if (!IsDesktopGLSpec(mShaderSpec) && CheckESSLVersion(entry.esslVersion, version))
-        {{
-            return entry.esslUnmangled;
-        }}
-        if (IsDesktopGLSpec(mShaderSpec) && CheckGLSLVersion(entry.glslVersion, version))
-        {{
-            return entry.glslUnmangled;
-        }}
-    }}
-    return nullptr;
+
+    uint16_t startIndex = BuiltInArray::kMangledOffsets[nameHash];
+    uint16_t nextIndex = GetNextRuleIndex(nameHash);
+
+    return FindMangledBuiltIn(mShaderSpec, shaderVersion, mShaderType, mResources, *this, BuiltInArray::kRules, startIndex, nextIndex);
 }}
 
-const UnmangledBuiltIn *TSymbolTable::getUnmangledBuiltInForShaderVersion(const ImmutableString &name, int shaderVersion)
+bool TSymbolTable::isUnmangledBuiltInName(const ImmutableString &name,
+                                          int shaderVersion,
+                                          const TExtensionBehavior &extensions) const
 {{
     if (name.length() > {max_unmangled_name_length})
-        return nullptr;
+        return false;
 
     uint32_t nameHash = name.unmangledNameHash();
     if (nameHash >= {num_unmangled_names})
-        return nullptr;
-    return getUnmangled(BuiltInArray::unmangled[nameHash], name, shaderVersion);
+        return false;
+
+    return BuiltInArray::unmangled[nameHash].matches(name, mShaderSpec, shaderVersion, mShaderType, extensions);
 }}
 
 }}  // namespace sh
@@ -485,6 +412,8 @@
 
 """
 
+template_rule = """Rule::Get<{spec}, {version}, {shaders}, {extension}>({symbol_or_var})"""
+
 basic_types_enumeration = [
     'Void',
     'Float',
@@ -657,6 +586,13 @@
         raise Exception('Unsupported symbol table level')
 
 
+def get_shader_version_for_level(spec, level):
+    if spec == "ESSL":
+        return get_essl_shader_version_for_level(level)
+    else:
+        return get_glsl_shader_version_for_level(level)
+
+
 class GroupedList:
     """"Class for storing a list of objects grouped by symbol table level and condition."""
 
@@ -665,17 +601,10 @@
         self.max_name_length = 0
         self.hashfn = hashfn
         self.num_names = num_names
+        self.rule_offset = 0
 
-    def add_obj(self,
-                essl_level,
-                glsl_level,
-                shader_type,
-                name,
-                obj,
-                essl_extension,
-                glsl_extension,
-                script_generated_hash_tests,
-                var_obj=False):
+    def add_entry(self, essl_level, glsl_level, shader_type, name, symbol, essl_extension,
+                  glsl_extension, script_generated_hash_tests):
         if essl_level and essl_level not in essl_levels:
             raise Exception('Unexpected essl level: ' + str(essl_level))
         if glsl_level and glsl_level not in glsl_levels:
@@ -694,133 +623,102 @@
                 self.objs[name_hash]['essl_level'] = essl_level
             if glsl_level:
                 self.objs[name_hash]['glsl_level'] = glsl_level
-            if var_obj:
-                self.objs[name_hash]['var'] = obj
-            else:
-                self.objs[name_hash]['obj'] = obj
+            self.objs[name_hash]['symbol'] = symbol
             self.objs[name_hash]['shader_type'] = shader_type
 
         if essl_extension != 'UNDEFINED':
-            if (var_obj and 'essl_ext_var' in self.objs[name_hash] and
-                    self.objs[name_hash]['essl_ext_var'] != obj) or (
-                        not var_obj and 'essl_ext_obj' in self.objs[name_hash] and
-                        self.objs[name_hash]['essl_ext_obj'] != obj):
+            if ('essl_ext_symbol' in self.objs[name_hash] and
+                    self.objs[name_hash]['essl_ext_symbol'] != symbol):
                 # Adding a variable that is part of two ESSL extensions
                 if essl_extension != 'UNDEFINED':
                     self.objs[name_hash]['essl_extension2'] = essl_extension
                     self.objs[name_hash]['essl_ext_level2'] = essl_level
-                    if var_obj:
-                        self.objs[name_hash]['essl_ext_var2'] = obj
-                    else:
-                        self.objs[name_hash]['essl_ext_obj2'] = obj
-                        self.objs[name_hash]['essl_ext_shader_type2'] = shader_type
+                    self.objs[name_hash]['essl_ext_symbol2'] = symbol
+                    self.objs[name_hash]['essl_ext_shader_type2'] = shader_type
             else:
                 self.objs[name_hash]['essl_extension'] = essl_extension
                 self.objs[name_hash]['essl_ext_level'] = essl_level
-                if var_obj:
-                    self.objs[name_hash]['essl_ext_var'] = obj
-                else:
-                    self.objs[name_hash]['essl_ext_obj'] = obj
-                    self.objs[name_hash]['essl_ext_shader_type'] = shader_type
+                self.objs[name_hash]['essl_ext_symbol'] = symbol
+                self.objs[name_hash]['essl_ext_shader_type'] = shader_type
 
         if glsl_extension != 'UNDEFINED':
             self.objs[name_hash]['glsl_extension'] = glsl_extension
             self.objs[name_hash]['glsl_ext_level'] = glsl_level
-            if var_obj:
-                self.objs[name_hash]['glsl_ext_var'] = obj
-            else:
-                self.objs[name_hash]['glsl_ext_obj'] = obj
+            self.objs[name_hash]['glsl_ext_symbol'] = symbol
             self.objs[name_hash]['glsl_ext_shader_type'] = shader_type
 
     def get_max_name_length(self):
         return self.max_name_length
 
-    def get_array(self):
-        code = []
+    def format_rule(self, rule):
+        return template_rule.format(**rule)
+
+    def format_rules(self, rules):
+        return ", ".join([self.format_rule(rule) for rule in rules])
+
+    def get_rules(self):
+        return self.rules
+
+    def get_names(self):
+        return self.names
+
+    def get_offsets(self):
+        return self.offsets
+
+    def update_arrays(self):
+
+        def add_rule(rules, spec, level, shaders, extension, symbol):
+            var = ("&TableBase::%s" % symbol) if symbol.startswith("m_gl") else None
+
+            rules.append({
+                "spec": "Spec::%s" % ("ESSL" if spec == "ESSL" else "GLSL"),
+                "version": get_shader_version_for_level(spec, level),
+                "shaders": "Shader::%s" % ("ALL" if shaders == "NONE" else shaders),
+                "extension": "0" if extension == None else "EXT_INDEX(%s)" % extension,
+                "symbol_or_var": symbol.replace("Func::", "") if var is None else var
+            })
+
+        self.names = []
+        self.offsets = []
+        self.rules = []
         for hash_val in range(0, self.num_names):
             if hash_val in self.objs:
-                obj_data = self.objs[hash_val]
+                data = self.objs[hash_val]
 
-                data = []
-                data.append('ImmutableString("{name}")'.format(name=obj_data['name']))
+                rules = []
 
-                symbol = obj_data['obj'] if 'obj' in obj_data else 'nullptr'
-                var = '&TSymbolTableBase::{}'.format(
-                    obj_data['var']) if 'var' in obj_data else 'nullptr'
-                essl_level = obj_data['essl_level'] if 'essl_level' in obj_data else None
-                glsl_level = obj_data['glsl_level'] if 'glsl_level' in obj_data else None
-                essl_version = get_essl_shader_version_for_level(essl_level)
-                glsl_version = get_glsl_shader_version_for_level(glsl_level)
-                shader_type = 'Shader::' + obj_data[
-                    'shader_type'] if 'shader_type' in obj_data and obj_data[
-                        'shader_type'] != 'NONE' else 'Shader::ALL'
+                if "symbol" in data and "essl_level" in data:
+                    add_rule(rules, "ESSL", data['essl_level'], data['shader_type'], None,
+                             data["symbol"])
 
-                data.append(symbol)
-                data.append(var)
-                data.append(essl_version)
-                data.append(glsl_version)
-                data.append(shader_type)
+                if "symbol" in data and "glsl_level" in data:
+                    add_rule(rules, "GLSL", data['glsl_level'], data['shader_type'], None,
+                             data["symbol"])
 
-                essl_ext_symbol = obj_data[
-                    'essl_ext_obj'] if 'essl_ext_obj' in obj_data else 'nullptr'
-                essl_ext_var = '&TSymbolTableBase::{}'.format(
-                    obj_data['essl_ext_var']) if 'essl_ext_var' in obj_data else 'nullptr'
-                essl_ext_version = get_essl_shader_version_for_level(
-                    obj_data['essl_ext_level']) if 'essl_extension' in obj_data else '-1'
-                essl_ext_shader_type = 'Shader::' + obj_data[
-                    'essl_ext_shader_type'] if 'essl_ext_shader_type' in obj_data and obj_data[
-                        'essl_ext_shader_type'] != 'NONE' else 'Shader::ALL'
-                essl_extension = '&ShBuiltInResources::{}'.format(
-                    obj_data['essl_extension']) if 'essl_extension' in obj_data else 'nullptr'
+                if "essl_ext_symbol" in data:
+                    add_rule(rules, "ESSL", data["essl_ext_level"], data["essl_ext_shader_type"],
+                             data["essl_extension"], data["essl_ext_symbol"])
 
-                data.append(essl_ext_symbol)
-                data.append(essl_ext_var)
-                data.append(essl_ext_version)
-                data.append(essl_ext_shader_type)
-                data.append(essl_extension)
+                if "glsl_ext_symbol" in data:
+                    add_rule(rules, "GLSL", data["glsl_ext_level"], data["glsl_ext_shader_type"],
+                             data["glsl_extension"], data["glsl_ext_symbol"])
 
-                glsl_ext_symbol = obj_data[
-                    'glsl_ext_obj'] if 'glsl_ext_obj' in obj_data else 'nullptr'
-                glsl_ext_var = '&TSymbolTableBase::{}'.format(
-                    obj_data['glsl_ext_var']) if 'glsl_ext_var' in obj_data else 'nullptr'
-                glsl_ext_version = get_glsl_shader_version_for_level(
-                    obj_data['glsl_ext_level']) if 'glsl_extension' in obj_data else '-1'
-                glsl_ext_shader_type = 'Shader::' + obj_data[
-                    'glsl_ext_shader_type'] if 'glsl_ext_shader_type' in obj_data and obj_data[
-                        'glsl_ext_shader_type'] != 'NONE' else 'Shader::ALL'
-                glsl_extension = '&ShBuiltInResources::{}'.format(
-                    obj_data['glsl_extension']) if 'glsl_extension' in obj_data else 'nullptr'
+                if "essl_ext_symbol2" in data:
+                    add_rule(rules, "ESSL", data["essl_ext_level2"], data["essl_ext_shader_type2"],
+                             data["essl_extension2"], data["essl_ext_symbol2"])
 
-                data.append(glsl_ext_symbol)
-                data.append(glsl_ext_var)
-                data.append(glsl_ext_version)
-                data.append(glsl_ext_shader_type)
-                data.append(glsl_extension)
+                name = data['name']
+                name_underscore = name.replace("(", "_")
 
-                if 'essl_extension2' in obj_data:
-                    essl_ext_symbol2 = obj_data[
-                        'essl_ext_obj2'] if 'essl_ext_obj2' in obj_data else 'nullptr'
-                    essl_ext_var2 = '&TSymbolTableBase::{}'.format(
-                        obj_data['essl_ext_var2']) if 'essl_ext_var2' in obj_data else 'nullptr'
-                    essl_ext_version2 = get_essl_shader_version_for_level(
-                        obj_data['essl_ext_level2'])
-                    essl_ext_shader_type2 = 'Shader::' + obj_data[
-                        'essl_ext_shader_type2'] if 'essl_ext_shader_type2' in obj_data and obj_data[
-                            'essl_ext_shader_type2'] != 'NONE' else 'Shader::ALL'
-                    essl_extension2 = '&ShBuiltInResources::{}'.format(obj_data['essl_extension2'])
-                    data.append(essl_ext_symbol2)
-                    data.append(essl_ext_var2)
-                    data.append(essl_ext_version2)
-                    data.append(essl_ext_shader_type2)
-                    data.append(essl_extension2)
+                self.names.append('"%s"' % name)
+                self.offsets.append("%d, // %s" % (self.rule_offset, name_underscore))
+                self.rules.append("%s" % self.format_rules(rules))
 
-                code.append('SymbolEntry(' + ', '.join(data) + ')')
+                self.rule_offset += len(rules)
+
             else:
-                code.append("""SymbolEntry(ImmutableString(""),
-                       nullptr, nullptr, -1, -1, Shader::ALL,
-                       nullptr, nullptr, -1, Shader::ALL, nullptr,
-                       nullptr, nullptr, -1, Shader::ALL, nullptr)""")
-        return ', '.join(code)
+                self.names.append('""')
+                self.offsets.append('%d, // Empty' % self.rule_offset)
 
 
 class UnmangledGroupedList:
@@ -832,9 +730,8 @@
         self.hashfn = hashfn
         self.num_names = num_names
 
-    def add_obj(self, essl_level, glsl_level, shader_type, name, essl_obj, glsl_obj,
-                essl_extension, glsl_extension, essl_unmangled_builtin_declaration,
-                glsl_unmangled_builtin_declaration, unmangled_script_generated_hash_tests):
+    def add_entry(self, essl_level, glsl_level, shader_type, name, essl_ext, glsl_ext,
+                  essl_extension, glsl_extension, unmangled_script_generated_hash_tests):
         if essl_level and essl_level not in essl_levels:
             raise Exception('Unexpected essl level: ' + str(essl_level))
         if glsl_level and glsl_level not in glsl_levels:
@@ -848,12 +745,10 @@
         self.objs[name_hash]['essl_level'] = essl_level
         self.objs[name_hash]['glsl_level'] = glsl_level
         self.objs[name_hash]['shader_type'] = shader_type
-        self.objs[name_hash]['essl_obj'] = essl_obj
-        self.objs[name_hash]['glsl_obj'] = glsl_obj
+        self.objs[name_hash]['essl_ext'] = essl_ext
+        self.objs[name_hash]['glsl_ext'] = glsl_ext
         self.objs[name_hash]['essl_extension'] = essl_extension
         self.objs[name_hash]['glsl_extension'] = glsl_extension
-        self.objs[name_hash]['essl_declaration'] = essl_unmangled_builtin_declaration
-        self.objs[name_hash]['glsl_declaration'] = glsl_unmangled_builtin_declaration
 
     def has_key(self, essl_level, glsl_level, shader_type, name):
         name_hash = mangledNameHash(name, self.hashfn, None, True, False)
@@ -877,27 +772,24 @@
     def get_max_name_length(self):
         return self.max_name_length
 
-    def get_array(self, unmangled_builtin_declarations):
+    def get_array(self):
         code = []
         for hash_val in range(0, self.num_names):
-            obj_data = self.objs[hash_val]
-            essl_level = obj_data['essl_level']
-            glsl_level = obj_data['glsl_level']
-            shader_type = 'Shader::' + obj_data['shader_type'] if obj_data[
+            obj = self.objs[hash_val]
+            essl_level = obj['essl_level']
+            glsl_level = obj['glsl_level']
+            shader_type = 'Shader::' + obj['shader_type'] if obj[
                 'shader_type'] != 'NONE' else 'Shader::ALL'
             data = []
-            data.append('ImmutableString("{name}")'.format(name=obj_data['name']))
-            data.append(obj_data['essl_obj'])
-            data.append(obj_data['glsl_obj'])
+            data.append('"{name}"'.format(name=obj['name']))
+            data.append("Ext::" + obj['essl_extension'])
+            data.append("Ext::" + obj['glsl_extension'])
             data.append(get_essl_shader_version_for_level(essl_level))
             data.append(get_glsl_shader_version_for_level(glsl_level))
             data.append(shader_type)
 
-            code.append('UnmangledEntry(' + ', '.join(data) + ')')
-
-            unmangled_builtin_declarations.add(obj_data['essl_declaration'])
-            unmangled_builtin_declarations.add(obj_data['glsl_declaration'])
-        return ', '.join(code)
+            code.append('{%s}' % ', '.join(data))
+        return code
 
 
 class TType:
@@ -1304,7 +1196,7 @@
 
 
 def define_constexpr_variable(template_args, variable_declarations):
-    template_variable_declaration = 'constexpr const TVariable kVar_{name_with_suffix}(BuiltInId::{name_with_suffix}, BuiltInName::{name}, SymbolType::BuiltIn, TExtension::{extension}, {type});'
+    template_variable_declaration = 'constexpr const TVariable k{name_with_suffix}(BuiltInId::{name_with_suffix}, BuiltInName::{name}, SymbolType::BuiltIn, TExtension::{extension}, {type});'
     variable_declarations.append(template_variable_declaration.format(**template_args))
 
 
@@ -1391,11 +1283,10 @@
 
 def process_single_function_group(
         shader_type, group_name, group, parameter_declarations, name_declarations,
-        unmangled_function_if_statements, unmangled_builtin_declarations,
-        defined_function_variants, builtin_id_declarations, builtin_id_definitions,
-        defined_parameter_names, variable_declarations, function_declarations,
-        script_generated_hash_tests, unmangled_script_generated_hash_tests,
-        get_builtin_if_statements):
+        unmangled_function_if_statements, defined_function_variants, builtin_id_declarations,
+        builtin_id_definitions, defined_parameter_names, variable_declarations,
+        function_declarations, script_generated_hash_tests, unmangled_script_generated_hash_tests,
+        mangled_builtins):
     global id_counter
 
     if 'functions' not in group:
@@ -1429,8 +1320,8 @@
         if not name_declaration in name_declarations:
             name_declarations.add(name_declaration)
 
-        essl_obj = '&UnmangledBuiltIns::{essl_extension}'.format(**template_args)
-        glsl_obj = '&UnmangledBuiltIns::{glsl_extension}'.format(**template_args)
+        essl_ext = '{essl_extension}'.format(**template_args)
+        glsl_ext = '{glsl_extension}'.format(**template_args)
         unmangled_builtin_no_shader_type = unmangled_function_if_statements.get(
             essl_level, glsl_level, 'NONE', function_name)
         if unmangled_builtin_no_shader_type != None and unmangled_builtin_no_shader_type[
@@ -1446,15 +1337,9 @@
                       unmangled_builtin_no_shader_type['essl_extension'] != 'UNDEFINED') or
                      (glsl_extension == 'UNDEFINED' and
                       unmangled_builtin_no_shader_type['glsl_extension'] != 'UNDEFINED'))):
-            # We don't have this unmangled builtin recorded yet or we replace an unmangled builtin from an extension with one from core.
-            essl_unmangled_builtin_declaration = 'constexpr const UnmangledBuiltIn {essl_extension}(TExtension::{essl_extension});'.format(
-                **template_args)
-            glsl_unmangled_builtin_declaration = 'constexpr const UnmangledBuiltIn {glsl_extension}(TExtension::{glsl_extension});'.format(
-                **template_args)
-            unmangled_function_if_statements.add_obj(
-                essl_level, glsl_level, shader_type, function_name, essl_obj, glsl_obj,
-                essl_extension, glsl_extension, essl_unmangled_builtin_declaration,
-                glsl_unmangled_builtin_declaration, unmangled_script_generated_hash_tests)
+            unmangled_function_if_statements.add_entry(
+                essl_level, glsl_level, shader_type, function_name, essl_ext, glsl_ext,
+                essl_extension, glsl_extension, unmangled_script_generated_hash_tests)
 
         for function_props in function_variants:
             template_args['id'] = id_counter
@@ -1470,9 +1355,9 @@
                 template_args['name_with_suffix'], parameters)
             template_args['mangled_name_length'] = len(template_args['mangled_name'])
 
-            obj = '&BuiltInFunction::function_{unique_name}'.format(**template_args)
-            get_builtin_if_statements.add_obj(
-                essl_level, glsl_level, shader_type, template_args['mangled_name'], obj,
+            symbol = '&Func::{unique_name}'.format(**template_args)
+            mangled_builtins.add_entry(
+                essl_level, glsl_level, shader_type, template_args['mangled_name'], symbol,
                 template_args['essl_extension'], template_args['glsl_extension'],
                 script_generated_hash_tests)
 
@@ -1503,7 +1388,7 @@
                     define_constexpr_variable(param_template_args, variable_declarations)
                     defined_parameter_names.add(unique_param_name)
                 parameters_list.append(
-                    '&BuiltInVariable::kVar_{name_with_suffix}'.format(**param_template_args))
+                    '&BuiltInVariable::k{name_with_suffix}'.format(**param_template_args))
 
             template_args['parameters_var_name'] = get_variable_name_to_store_parameters(
                 parameters)
@@ -1519,19 +1404,18 @@
                     'parameters_var_name']] = template_parameter_list_declaration.format(
                         **template_args)
 
-            template_function_declaration = 'constexpr const TFunction function_{unique_name}(BuiltInId::{human_readable_name}, BuiltInName::{name_with_suffix}, TExtension::{extension}, BuiltInParameters::{parameters_var_name}, {param_count}, {return_type}, EOp{op}, {known_to_not_have_side_effects});'
+            template_function_declaration = 'constexpr const TFunction {unique_name}(BuiltInId::{human_readable_name}, BuiltInName::{name_with_suffix}, TExtension::{extension}, BuiltInParameters::{parameters_var_name}, {param_count}, {return_type}, EOp{op}, {known_to_not_have_side_effects});'
             function_declarations.append(template_function_declaration.format(**template_args))
 
             id_counter += 1
 
 
 def process_function_group(group_name, group, parameter_declarations, name_declarations,
-                           unmangled_function_if_statements, unmangled_builtin_declarations,
-                           defined_function_variants, builtin_id_declarations,
-                           builtin_id_definitions, defined_parameter_names, variable_declarations,
-                           function_declarations, script_generated_hash_tests,
-                           unmangled_script_generated_hash_tests, get_builtin_if_statements,
-                           is_in_group_definitions):
+                           unmangled_function_if_statements, defined_function_variants,
+                           builtin_id_declarations, builtin_id_definitions,
+                           defined_parameter_names, variable_declarations, function_declarations,
+                           script_generated_hash_tests, unmangled_script_generated_hash_tests,
+                           mangled_builtins, is_in_group_definitions):
     global id_counter
     first_id = id_counter
 
@@ -1539,23 +1423,21 @@
     if 'shader_type' in group:
         shader_type = group['shader_type']
 
-    process_single_function_group(shader_type, group_name, group, parameter_declarations,
-                                  name_declarations, unmangled_function_if_statements,
-                                  unmangled_builtin_declarations, defined_function_variants,
-                                  builtin_id_declarations, builtin_id_definitions,
-                                  defined_parameter_names, variable_declarations,
-                                  function_declarations, script_generated_hash_tests,
-                                  unmangled_script_generated_hash_tests, get_builtin_if_statements)
+    process_single_function_group(
+        shader_type, group_name, group, parameter_declarations, name_declarations,
+        unmangled_function_if_statements, defined_function_variants, builtin_id_declarations,
+        builtin_id_definitions, defined_parameter_names, variable_declarations,
+        function_declarations, script_generated_hash_tests, unmangled_script_generated_hash_tests,
+        mangled_builtins)
 
     if 'subgroups' in group:
         for subgroup_name, subgroup in group['subgroups'].iteritems():
             process_function_group(
                 group_name + subgroup_name, subgroup, parameter_declarations, name_declarations,
-                unmangled_function_if_statements, unmangled_builtin_declarations,
-                defined_function_variants, builtin_id_declarations, builtin_id_definitions,
-                defined_parameter_names, variable_declarations, function_declarations,
-                script_generated_hash_tests, unmangled_script_generated_hash_tests,
-                get_builtin_if_statements, is_in_group_definitions)
+                unmangled_function_if_statements, defined_function_variants,
+                builtin_id_declarations, builtin_id_definitions, defined_parameter_names,
+                variable_declarations, function_declarations, script_generated_hash_tests,
+                unmangled_script_generated_hash_tests, mangled_builtins, is_in_group_definitions)
 
     if 'queryFunction' in group:
         template_args = {'first_id': first_id, 'last_id': id_counter - 1, 'group_name': group_name}
@@ -1595,7 +1477,7 @@
 
 def process_single_variable_group(shader_type, group_name, group, builtin_id_declarations,
                                   builtin_id_definitions, name_declarations, init_member_variables,
-                                  get_variable_declarations, get_builtin_if_statements,
+                                  get_variable_declarations, mangled_builtins,
                                   declare_member_variables, variable_declarations,
                                   get_variable_definitions, script_generated_hash_tests):
     global id_counter
@@ -1662,7 +1544,7 @@
             if 'private' in props and props['private']:
                 is_member = False
             else:
-                template_init_variable = '    mVar_{name_with_suffix} = {name_with_suffix};'
+                template_init_variable = '    m_{name_with_suffix} = {name_with_suffix};'
 
         elif 'initDynamicType' in props:
             # Handle variables whose type can't be expressed as TStaticType
@@ -1672,7 +1554,7 @@
             template_args['initDynamicType'] = props['initDynamicType'].format(**template_args)
             template_init_variable = """    {initDynamicType}
     {type_name}->realize();
-    mVar_{name_with_suffix} = new TVariable(BuiltInId::{name_with_suffix}, BuiltInName::{name}, SymbolType::BuiltIn, TExtension::{extension}, {type});"""
+    m_{name_with_suffix} = new TVariable(BuiltInId::{name_with_suffix}, BuiltInName::{name}, SymbolType::BuiltIn, TExtension::{extension}, {type});"""
 
         elif 'value' in props:
             # Handle variables with constant value, such as gl_MaxDrawBuffers.
@@ -1684,21 +1566,21 @@
                 resources_key = props['valueKey']
             template_args['value'] = 'resources.' + resources_key
             template_args['object_size'] = TType(props['type']).get_object_size()
-            template_init_variable = """    mVar_{name_with_suffix} = new TVariable(BuiltInId::{name_with_suffix}, BuiltInName::{name}, SymbolType::BuiltIn, TExtension::{extension}, {type});
+            template_init_variable = """    m_{name_with_suffix} = new TVariable(BuiltInId::{name_with_suffix}, BuiltInName::{name}, SymbolType::BuiltIn, TExtension::{extension}, {type});
     {{
         TConstantUnion *unionArray = new TConstantUnion[{object_size}];
         unionArray[0].setIConst({value});
-        static_cast<TVariable *>(mVar_{name_with_suffix})->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_{name_with_suffix})->shareConstPointer(unionArray);
     }}"""
             if template_args['object_size'] > 1:
-                template_init_variable = """    mVar_{name_with_suffix} = new TVariable(BuiltInId::{name_with_suffix}, BuiltInName::{name}, SymbolType::BuiltIn, TExtension::{extension}, {type});
+                template_init_variable = """    m_{name_with_suffix} = new TVariable(BuiltInId::{name_with_suffix}, BuiltInName::{name}, SymbolType::BuiltIn, TExtension::{extension}, {type});
     {{
         TConstantUnion *unionArray = new TConstantUnion[{object_size}];
         for (size_t index = 0u; index < {object_size}; ++index)
         {{
             unionArray[index].setIConst({value}[index]);
         }}
-        static_cast<TVariable *>(mVar_{name_with_suffix})->shareConstPointer(unionArray);
+        static_cast<TVariable *>(m_{name_with_suffix})->shareConstPointer(unionArray);
     }}"""
 
         else:
@@ -1713,16 +1595,16 @@
 
             template_get_variable_definition = """const TVariable *{name_with_suffix}()
 {{
-    return &kVar_{name_with_suffix};
+    return &k{name_with_suffix};
 }}
 """
             get_variable_definitions.append(
                 template_get_variable_definition.format(**template_args))
 
             if essl_level != 'GLSL_BUILTINS':
-                obj = '&BuiltInVariable::kVar_{name_with_suffix}'.format(**template_args)
+                obj = '&BuiltInVariable::k{name_with_suffix}'.format(**template_args)
                 # TODO(http://anglebug.com/3835): Add GLSL level once GLSL built-in vars are added
-                get_builtin_if_statements.add_obj(
+                mangled_builtins.add_entry(
                     essl_level, 'COMMON_BUILTINS', shader_type, template_args['name'], obj,
                     template_args['essl_extension'], template_args['glsl_extension'],
                     script_generated_hash_tests)
@@ -1730,26 +1612,26 @@
         if is_member:
             init_member_variables.append(template_init_variable.format(**template_args))
 
-            template_declare_member_variable = 'TSymbol *mVar_{name_with_suffix} = nullptr;'
+            template_declare_member_variable = 'TSymbol *m_{name_with_suffix} = nullptr;'
             declare_member_variables.append(
                 template_declare_member_variable.format(**template_args))
 
-            obj = 'mVar_{name_with_suffix}'.format(**template_args)
+            obj = 'm_{name_with_suffix}'.format(**template_args)
 
             # TODO(http://anglebug.com/3835): Add GLSL level once GLSL built-in vars are added
-            get_builtin_if_statements.add_obj(
-                essl_level, 'COMMON_BUILTINS', shader_type, template_args['name'], obj,
-                template_args['essl_extension'], template_args['glsl_extension'],
-                script_generated_hash_tests, True)
+            mangled_builtins.add_entry(essl_level, 'COMMON_BUILTINS', shader_type,
+                                       template_args['name'], obj, template_args['essl_extension'],
+                                       template_args['glsl_extension'],
+                                       script_generated_hash_tests)
 
         id_counter += 1
 
 
 def process_variable_group(shader_type, group_name, group, builtin_id_declarations,
                            builtin_id_definitions, name_declarations, init_member_variables,
-                           get_variable_declarations, get_builtin_if_statements,
-                           declare_member_variables, variable_declarations,
-                           get_variable_definitions, script_generated_hash_tests):
+                           get_variable_declarations, mangled_builtins, declare_member_variables,
+                           variable_declarations, get_variable_definitions,
+                           script_generated_hash_tests):
     global id_counter
 
     if 'shader_type' in group:
@@ -1757,7 +1639,7 @@
 
     process_single_variable_group(shader_type, group_name, group, builtin_id_declarations,
                                   builtin_id_definitions, name_declarations, init_member_variables,
-                                  get_variable_declarations, get_builtin_if_statements,
+                                  get_variable_declarations, mangled_builtins,
                                   declare_member_variables, variable_declarations,
                                   get_variable_definitions, script_generated_hash_tests)
 
@@ -1766,7 +1648,7 @@
             process_variable_group(
                 shader_type, subgroup_name, subgroup, builtin_id_declarations,
                 builtin_id_definitions, name_declarations, init_member_variables,
-                get_variable_declarations, get_builtin_if_statements, declare_member_variables,
+                get_variable_declarations, mangled_builtins, declare_member_variables,
                 variable_declarations, get_variable_definitions, script_generated_hash_tests)
 
 
@@ -1797,9 +1679,6 @@
     declare_member_variables = []
     init_member_variables = []
 
-    # Declarations of UnmangledBuiltIn objects
-    unmangled_builtin_declarations = set()
-
     # Code for testing that script-generated hashes match with runtime computed hashes.
     script_generated_hash_tests = OrderedDict()
     unmangled_script_generated_hash_tests = OrderedDict()
@@ -1852,7 +1731,7 @@
     mangled_S1 = f1.salt
     mangled_S2 = f2.salt
     # Array for querying mangled builtins
-    get_builtin_if_statements = GroupedList(mangled_hashfn, num_mangled_names)
+    mangled_builtins = GroupedList(mangled_hashfn, num_mangled_names)
 
     # Hashing unmangled names
     unmangled_names = list(dict.fromkeys(unmangled_names))
@@ -1867,23 +1746,24 @@
     unmangled_function_if_statements = UnmangledGroupedList(unmangled_hashfn, num_unmangled_names)
 
     for group_name, group in parsed_functions.iteritems():
-        process_function_group(group_name, group, parameter_declarations, name_declarations,
-                               unmangled_function_if_statements, unmangled_builtin_declarations,
-                               defined_function_variants, builtin_id_declarations,
-                               builtin_id_definitions, defined_parameter_names,
-                               variable_declarations, function_declarations,
-                               script_generated_hash_tests, unmangled_script_generated_hash_tests,
-                               get_builtin_if_statements, is_in_group_definitions)
+        process_function_group(
+            group_name, group, parameter_declarations, name_declarations,
+            unmangled_function_if_statements, defined_function_variants, builtin_id_declarations,
+            builtin_id_definitions, defined_parameter_names, variable_declarations,
+            function_declarations, script_generated_hash_tests,
+            unmangled_script_generated_hash_tests, mangled_builtins, is_in_group_definitions)
 
     parameter_declarations = prune_parameters_arrays(parameter_declarations, function_declarations)
 
     for group_name, group in parsed_variables.iteritems():
         process_variable_group('NONE', group_name, group, builtin_id_declarations,
                                builtin_id_definitions, name_declarations, init_member_variables,
-                               get_variable_declarations, get_builtin_if_statements,
+                               get_variable_declarations, mangled_builtins,
                                declare_member_variables, variable_declarations,
                                get_variable_definitions, script_generated_hash_tests)
 
+    mangled_builtins.update_arrays()
+
     output_strings = {
         'script_name':
             os.path.basename(__file__),
@@ -1917,20 +1797,22 @@
             '\n'.join(declare_member_variables),
         'init_member_variables':
             '\n'.join(init_member_variables),
-        'mangled_array':
-            get_builtin_if_statements.get_array(),
+        'mangled_names_array':
+            ',\n'.join(mangled_builtins.get_names()),
+        'mangled_offsets_array':
+            '\n'.join(mangled_builtins.get_offsets()),
+        'mangled_rules':
+            ',\n'.join(mangled_builtins.get_rules()),
         'unmangled_array':
-            unmangled_function_if_statements.get_array(unmangled_builtin_declarations),
+            ', '.join(unmangled_function_if_statements.get_array()),
         'max_unmangled_name_length':
             unmangled_function_if_statements.get_max_name_length(),
         'max_mangled_name_length':
-            get_builtin_if_statements.get_max_name_length(),
+            mangled_builtins.get_max_name_length(),
         'num_unmangled_names':
             num_unmangled_names,
         'num_mangled_names':
             num_mangled_names,
-        'unmangled_builtin_declarations':
-            '\n'.join(sorted(unmangled_builtin_declarations)),
         'script_generated_hash_tests':
             '\n'.join(script_generated_hash_tests.iterkeys()),
         'unmangled_script_generated_hash_tests':
diff --git a/Source/ThirdParty/ANGLE/src/feature_support_util/feature_support_util.cpp b/Source/ThirdParty/ANGLE/src/feature_support_util/feature_support_util.cpp
index 4a1b867..00700c5 100644
--- a/Source/ThirdParty/ANGLE/src/feature_support_util/feature_support_util.cpp
+++ b/Source/ThirdParty/ANGLE/src/feature_support_util/feature_support_util.cpp
@@ -41,7 +41,9 @@
 #    define WARN(...) printf(__VA_ARGS__)
 #    define INFO(...) printf(__VA_ARGS__)
 #    define DEBUG(...) printf(__VA_ARGS__)
-#    define VERBOSE(...) printf(__VA_ARGS__)
+// Uncomment for debugging.
+//#    define VERBOSE(...) printf(__VA_ARGS__)
+#    define VERBOSE(...)
 #endif  // defined(ANDROID)
 
 // JSON values are generally composed of either:
diff --git a/Source/ThirdParty/ANGLE/src/gpu_info_util/SystemInfo_win.cpp b/Source/ThirdParty/ANGLE/src/gpu_info_util/SystemInfo_win.cpp
index 878f0f5..f4bb137 100644
--- a/Source/ThirdParty/ANGLE/src/gpu_info_util/SystemInfo_win.cpp
+++ b/Source/ThirdParty/ANGLE/src/gpu_info_util/SystemInfo_win.cpp
@@ -14,7 +14,6 @@
 // Windows.h needs to be included first
 #include <windows.h>
 
-#include <d3d10.h>
 #include <dxgi.h>
 
 #include <array>
@@ -28,11 +27,20 @@
 
 bool GetDevicesFromDXGI(std::vector<GPUDeviceInfo> *devices)
 {
+#if defined(ANGLE_ENABLE_WINDOWS_UWP)
+    IDXGIFactory1 *factory;
+    if (!SUCCEEDED(
+            CreateDXGIFactory1(__uuidof(IDXGIFactory1), reinterpret_cast<void **>(&factory))))
+    {
+        return false;
+    }
+#else
     IDXGIFactory *factory;
     if (!SUCCEEDED(CreateDXGIFactory(__uuidof(IDXGIFactory), reinterpret_cast<void **>(&factory))))
     {
         return false;
     }
+#endif
 
     UINT i                = 0;
     IDXGIAdapter *adapter = nullptr;
@@ -42,7 +50,7 @@
         adapter->GetDesc(&desc);
 
         LARGE_INTEGER umdVersion;
-        if (adapter->CheckInterfaceSupport(__uuidof(ID3D10Device), &umdVersion) ==
+        if (adapter->CheckInterfaceSupport(__uuidof(IDXGIDevice), &umdVersion) ==
             DXGI_ERROR_UNSUPPORTED)
         {
             adapter->Release();
@@ -53,11 +61,11 @@
         uint64_t intVersion = umdVersion.QuadPart;
         std::ostringstream o;
 
-        const uint64_t kMask = 0xFF;
-        o << ((intVersion >> 48) & kMask) << ".";
-        o << ((intVersion >> 32) & kMask) << ".";
-        o << ((intVersion >> 16) & kMask) << ".";
-        o << (intVersion & kMask);
+        constexpr uint64_t kMask16 = std::numeric_limits<uint16_t>::max();
+        o << ((intVersion >> 48) & kMask16) << ".";
+        o << ((intVersion >> 32) & kMask16) << ".";
+        o << ((intVersion >> 16) & kMask16) << ".";
+        o << (intVersion & kMask16);
 
         GPUDeviceInfo device;
         device.vendorId      = desc.VendorId;
@@ -95,9 +103,11 @@
     // can override the heuristic to find the active GPU
     info->activeGPUIndex = 0;
 
+#if !defined(ANGLE_ENABLE_WINDOWS_UWP)
     // Override isOptimus. nvd3d9wrap.dll is loaded into all processes when Optimus is enabled.
     HMODULE nvd3d9wrap = GetModuleHandleW(L"nvd3d9wrap.dll");
     info->isOptimus    = nvd3d9wrap != nullptr;
+#endif
 
     return true;
 }
diff --git a/Source/ThirdParty/ANGLE/src/image_util/loadimage.cpp b/Source/ThirdParty/ANGLE/src/image_util/loadimage.cpp
index ff5ba48..8b568f2 100644
--- a/Source/ThirdParty/ANGLE/src/image_util/loadimage.cpp
+++ b/Source/ThirdParty/ANGLE/src/image_util/loadimage.cpp
@@ -1236,6 +1236,86 @@
     }
 }
 
+void LoadD24S8ToD32F(size_t width,
+                     size_t height,
+                     size_t depth,
+                     const uint8_t *input,
+                     size_t inputRowPitch,
+                     size_t inputDepthPitch,
+                     uint8_t *output,
+                     size_t outputRowPitch,
+                     size_t outputDepthPitch)
+{
+    for (size_t z = 0; z < depth; z++)
+    {
+        for (size_t y = 0; y < height; y++)
+        {
+            const uint32_t *source =
+                priv::OffsetDataPointer<uint32_t>(input, y, z, inputRowPitch, inputDepthPitch);
+            float *destDepth =
+                priv::OffsetDataPointer<float>(output, y, z, outputRowPitch, outputDepthPitch);
+            for (size_t x = 0; x < width; x++)
+            {
+                uint32_t sourcePixel = (source[x] >> 8) & 0xFFFFFF;
+                destDepth[x]         = sourcePixel / static_cast<float>(0xFFFFFF);
+            }
+        }
+    }
+}
+
+void LoadD32ToD32FX32(size_t width,
+                      size_t height,
+                      size_t depth,
+                      const uint8_t *input,
+                      size_t inputRowPitch,
+                      size_t inputDepthPitch,
+                      uint8_t *output,
+                      size_t outputRowPitch,
+                      size_t outputDepthPitch)
+{
+    for (size_t z = 0; z < depth; z++)
+    {
+        for (size_t y = 0; y < height; y++)
+        {
+            const uint32_t *source =
+                priv::OffsetDataPointer<uint32_t>(input, y, z, inputRowPitch, inputDepthPitch);
+            float *destDepth =
+                priv::OffsetDataPointer<float>(output, y, z, outputRowPitch, outputDepthPitch);
+            for (size_t x = 0; x < width; x++)
+            {
+                destDepth[x * 2] = source[x] / static_cast<float>(0xFFFFFFFF);
+            }
+        }
+    }
+}
+
+void LoadD32ToD32F(size_t width,
+                   size_t height,
+                   size_t depth,
+                   const uint8_t *input,
+                   size_t inputRowPitch,
+                   size_t inputDepthPitch,
+                   uint8_t *output,
+                   size_t outputRowPitch,
+                   size_t outputDepthPitch)
+{
+    for (size_t z = 0; z < depth; z++)
+    {
+        for (size_t y = 0; y < height; y++)
+        {
+            const uint32_t *source =
+                priv::OffsetDataPointer<uint32_t>(input, y, z, inputRowPitch, inputDepthPitch);
+            float *destDepth =
+                priv::OffsetDataPointer<float>(output, y, z, outputRowPitch, outputDepthPitch);
+            for (size_t x = 0; x < width; x++)
+            {
+                uint32_t sourcePixel = source[x];
+                destDepth[x]         = sourcePixel / static_cast<float>(0xFFFFFFFF);
+            }
+        }
+    }
+}
+
 void LoadD32FToD32F(size_t width,
                     size_t height,
                     size_t depth,
diff --git a/Source/ThirdParty/ANGLE/src/image_util/loadimage.h b/Source/ThirdParty/ANGLE/src/image_util/loadimage.h
index 21e0a9e..fc5370c 100644
--- a/Source/ThirdParty/ANGLE/src/image_util/loadimage.h
+++ b/Source/ThirdParty/ANGLE/src/image_util/loadimage.h
@@ -405,6 +405,36 @@
                           size_t outputRowPitch,
                           size_t outputDepthPitch);
 
+void LoadD24S8ToD32F(size_t width,
+                     size_t height,
+                     size_t depth,
+                     const uint8_t *input,
+                     size_t inputRowPitch,
+                     size_t inputDepthPitch,
+                     uint8_t *output,
+                     size_t outputRowPitch,
+                     size_t outputDepthPitch);
+
+void LoadD32ToD32FX32(size_t width,
+                      size_t height,
+                      size_t depth,
+                      const uint8_t *input,
+                      size_t inputRowPitch,
+                      size_t inputDepthPitch,
+                      uint8_t *output,
+                      size_t outputRowPitch,
+                      size_t outputDepthPitch);
+
+void LoadD32ToD32F(size_t width,
+                   size_t height,
+                   size_t depth,
+                   const uint8_t *input,
+                   size_t inputRowPitch,
+                   size_t inputDepthPitch,
+                   uint8_t *output,
+                   size_t outputRowPitch,
+                   size_t outputDepthPitch);
+
 void LoadD32FToD32F(size_t width,
                     size_t height,
                     size_t depth,
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/Buffer.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/Buffer.cpp
index 05f2269..d5f4e3a 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/Buffer.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/Buffer.cpp
@@ -39,7 +39,7 @@
 BufferState::~BufferState() {}
 
 Buffer::Buffer(rx::GLImplFactory *factory, BufferID id)
-    : RefCountObject(id.value),
+    : RefCountObject(id),
       mImpl(factory->createBuffer(mState)),
       mImplObserver(this, kImplementationSubjectIndex)
 {
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/Buffer.h b/Source/ThirdParty/ANGLE/src/libANGLE/Buffer.h
index 437ce2a..e41b475 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/Buffer.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/Buffer.h
@@ -64,7 +64,7 @@
     int mTransformFeedbackGenericBindingCount;
 };
 
-class Buffer final : public RefCountObject,
+class Buffer final : public RefCountObject<BufferID>,
                      public LabeledObject,
                      public angle::ObserverInterface,
                      public angle::Subject
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/Caps.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/Caps.cpp
index 5b444d0..166a518 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/Caps.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/Caps.cpp
@@ -257,11 +257,20 @@
 }
 
 // Checks for GL_OES_texture_half_float_linear support
-static bool DetermineHalfFloatTextureFilteringSupport(const TextureCapsMap &textureCaps)
+static bool DetermineHalfFloatTextureFilteringSupport(const TextureCapsMap &textureCaps,
+                                                      bool checkLegacyFormats)
 {
-    constexpr GLenum requiredFormats[] = {
-        GL_RGBA16F, GL_RGB16F, GL_LUMINANCE_ALPHA16F_EXT, GL_LUMINANCE16F_EXT, GL_ALPHA16F_EXT,
-    };
+    constexpr GLenum requiredFormats[] = {GL_RGBA16F, GL_RGB16F};
+    // If GL_OES_texture_half_float is present, this extension must also support legacy formats
+    // introduced by that extension
+    constexpr GLenum requiredFormatsES2[] = {GL_LUMINANCE_ALPHA16F_EXT, GL_LUMINANCE16F_EXT,
+                                             GL_ALPHA16F_EXT};
+
+    if (checkLegacyFormats &&
+        !GetFormatSupport(textureCaps, requiredFormatsES2, false, true, false, false))
+    {
+        return false;
+    }
 
     return GetFormatSupport(textureCaps, requiredFormats, false, true, false, false);
 }
@@ -277,11 +286,26 @@
 }
 
 // Checks for GL_OES_texture_float_linear support
-static bool DetermineFloatTextureFilteringSupport(const TextureCapsMap &textureCaps)
+static bool DetermineFloatTextureFilteringSupport(const TextureCapsMap &textureCaps,
+                                                  bool checkLegacyFormats)
 {
     constexpr GLenum requiredFormats[] = {
-        GL_RGBA32F, GL_RGB32F, GL_LUMINANCE_ALPHA32F_EXT, GL_LUMINANCE32F_EXT, GL_ALPHA32F_EXT,
+        GL_RGBA32F,
+        GL_RGB32F,
     };
+    // If GL_OES_texture_float is present, this extension must also support legacy formats
+    // introduced by that extension
+    constexpr GLenum requiredFormatsES2[] = {
+        GL_LUMINANCE_ALPHA32F_EXT,
+        GL_LUMINANCE32F_EXT,
+        GL_ALPHA32F_EXT,
+    };
+
+    if (checkLegacyFormats &&
+        !GetFormatSupport(textureCaps, requiredFormatsES2, false, true, false, false))
+    {
+        return false;
+    }
 
     return GetFormatSupport(textureCaps, requiredFormats, false, true, false, false);
 }
@@ -664,9 +688,9 @@
     textureFormatBGRA8888 = DetermineBGRA8TextureSupport(textureCaps);
     textureHalfFloat      = DetermineHalfFloatTextureSupport(textureCaps);
     textureHalfFloatLinear =
-        textureHalfFloat && DetermineHalfFloatTextureFilteringSupport(textureCaps);
+        DetermineHalfFloatTextureFilteringSupport(textureCaps, textureHalfFloat);
     textureFloat           = DetermineFloatTextureSupport(textureCaps);
-    textureFloatLinear     = textureFloat && DetermineFloatTextureFilteringSupport(textureCaps);
+    textureFloatLinear     = DetermineFloatTextureFilteringSupport(textureCaps, textureFloat);
     textureRG              = DetermineRGTextureSupport(textureCaps, textureHalfFloat, textureFloat);
     colorBufferHalfFloat   = textureHalfFloat && DetermineColorBufferHalfFloatSupport(textureCaps);
     textureCompressionDXT1 = DetermineDXT1TextureSupport(textureCaps);
@@ -743,17 +767,17 @@
         map["GL_OES_texture_compression_astc"] = enableableExtension(&Extensions::textureCompressionASTCOES);
         map["GL_EXT_texture_compression_bptc"] = enableableExtension(&Extensions::textureCompressionBPTC);
         map["GL_OES_compressed_ETC1_RGB8_texture"] = enableableExtension(&Extensions::compressedETC1RGB8Texture);
-        map["OES_compressed_ETC2_RGB8_texture"] = enableableExtension(&Extensions::compressedETC2RGB8Texture);
-        map["OES_compressed_ETC2_sRGB8_texture"] = enableableExtension(&Extensions::compressedETC2sRGB8Texture);
-        map["OES_compressed_ETC2_punchthroughA_RGBA8_texture"] = enableableExtension(&Extensions::compressedETC2PunchthroughARGB8Texture);
-        map["OES_compressed_ETC2_punchthroughA_sRGB8_alpha_texture"] = enableableExtension(&Extensions::compressedETC2PunchthroughAsRGB8AlphaTexture);
-        map["OES_compressed_ETC2_RGBA8_texture"] = enableableExtension(&Extensions::compressedETC2RGBA8Texture);
-        map["OES_compressed_ETC2_sRGB8_alpha8_texture"] = enableableExtension(&Extensions::compressedETC2sRGB8Alpha8Texture);
-        map["OES_compressed_EAC_R11_unsigned_texture"] = enableableExtension(&Extensions::compressedEACR11UnsignedTexture);
-        map["OES_compressed_EAC_R11_signed_texture"] = enableableExtension(&Extensions::compressedEACR11SignedTexture);
-        map["OES_compressed_EAC_RG11_unsigned_texture"] = enableableExtension(&Extensions::compressedEACRG11UnsignedTexture);
-        map["OES_compressed_EAC_RG11_signed_texture"] = enableableExtension(&Extensions::compressedEACRG11SignedTexture);
-        map["GL_CHROMIUM_compressed_texture_etc"] = enableableExtension(&Extensions::compressedTextureETC);
+        map["GL_OES_compressed_ETC2_RGB8_texture"] = enableableExtension(&Extensions::compressedETC2RGB8Texture);
+        map["GL_OES_compressed_ETC2_sRGB8_texture"] = enableableExtension(&Extensions::compressedETC2sRGB8Texture);
+        map["GL_OES_compressed_ETC2_punchthroughA_RGBA8_texture"] = enableableExtension(&Extensions::compressedETC2PunchthroughARGB8Texture);
+        map["GL_OES_compressed_ETC2_punchthroughA_sRGB8_alpha_texture"] = enableableExtension(&Extensions::compressedETC2PunchthroughAsRGB8AlphaTexture);
+        map["GL_OES_compressed_ETC2_RGBA8_texture"] = enableableExtension(&Extensions::compressedETC2RGBA8Texture);
+        map["GL_OES_compressed_ETC2_sRGB8_alpha8_texture"] = enableableExtension(&Extensions::compressedETC2sRGB8Alpha8Texture);
+        map["GL_OES_compressed_EAC_R11_unsigned_texture"] = enableableExtension(&Extensions::compressedEACR11UnsignedTexture);
+        map["GL_OES_compressed_EAC_R11_signed_texture"] = enableableExtension(&Extensions::compressedEACR11SignedTexture);
+        map["GL_OES_compressed_EAC_RG11_unsigned_texture"] = enableableExtension(&Extensions::compressedEACRG11UnsignedTexture);
+        map["GL_OES_compressed_EAC_RG11_signed_texture"] = enableableExtension(&Extensions::compressedEACRG11SignedTexture);
+        map["GL_ANGLE_compressed_texture_etc"] = enableableExtension(&Extensions::compressedTextureETC);
         map["GL_EXT_sRGB"] = enableableExtension(&Extensions::sRGB);
         map["GL_ANGLE_depth_texture"] = esOnlyExtension(&Extensions::depthTextureANGLE);
         map["GL_OES_depth_texture"] = esOnlyExtension(&Extensions::depthTextureOES);
@@ -800,6 +824,7 @@
         map["GL_EXT_color_buffer_float"] = enableableExtension(&Extensions::colorBufferFloat);
         map["GL_OES_vertex_half_float"] = enableableExtension(&Extensions::vertexHalfFloat);
         map["GL_OES_vertex_array_object"] = enableableExtension(&Extensions::vertexArrayObject);
+        map["GL_OES_vertex_type_10_10_10_2"] = enableableExtension(&Extensions::vertexAttribType1010102);
         map["GL_KHR_debug"] = esOnlyExtension(&Extensions::debug);
         map["GL_OES_texture_border_clamp"] = enableableExtension(&Extensions::textureBorderClamp);
         // TODO(jmadill): Enable this when complete.
@@ -849,6 +874,14 @@
         map["GL_ANGLE_memory_size"] = enableableExtension(&Extensions::memorySize);
         // clang-format on
 
+#if defined(ANGLE_ENABLE_ASSERTS)
+        // Verify all extension strings start with GL_
+        for (const auto &extension : map)
+        {
+            ASSERT(extension.first.rfind("GL_", 0) == 0);
+        }
+#endif
+
         return map;
     };
 
@@ -1192,6 +1225,7 @@
     InsertExtensionString("EGL_ANDROID_get_native_client_buffer",                getNativeClientBufferANDROID,       &extensionStrings);
     InsertExtensionString("EGL_ANDROID_native_fence_sync",                       nativeFenceSyncANDROID,             &extensionStrings);
     InsertExtensionString("EGL_ANGLE_create_context_backwards_compatible",       createContextBackwardsCompatible,   &extensionStrings);
+    InsertExtensionString("EGL_KHR_no_config_context",                           noConfigContext,                    &extensionStrings);
     // TODO(jmadill): Enable this when complete.
     //InsertExtensionString("KHR_create_context_no_error",                       createContextNoError,               &extensionStrings);
     // clang-format on
@@ -1208,6 +1242,7 @@
     // clang-format off
     //                   | Extension name                                 | Supported flag                | Output vector   |
     InsertExtensionString("EGL_ANGLE_device_d3d",                          deviceD3D,                      &extensionStrings);
+    InsertExtensionString("EGL_ANGLE_device_cgl",                          deviceCGL,                      &extensionStrings);
     // clang-format on
 
     return extensionStrings;
@@ -1221,24 +1256,27 @@
     std::vector<std::string> extensionStrings;
 
     // clang-format off
-    //                   | Extension name                                   | Supported flag                   | Output vector   |
-    InsertExtensionString("EGL_EXT_client_extensions",                       clientExtensions,                   &extensionStrings);
-    InsertExtensionString("EGL_EXT_platform_base",                           platformBase,                       &extensionStrings);
-    InsertExtensionString("EGL_EXT_platform_device",                         platformDevice,                     &extensionStrings);
-    InsertExtensionString("EGL_ANGLE_platform_angle",                        platformANGLE,                      &extensionStrings);
-    InsertExtensionString("EGL_ANGLE_platform_angle_d3d",                    platformANGLED3D,                   &extensionStrings);
-    InsertExtensionString("EGL_ANGLE_platform_angle_opengl",                 platformANGLEOpenGL,                &extensionStrings);
-    InsertExtensionString("EGL_ANGLE_platform_angle_null",                   platformANGLENULL,                  &extensionStrings);
-    InsertExtensionString("EGL_ANGLE_platform_angle_vulkan",                 platformANGLEVulkan,                &extensionStrings);
-    InsertExtensionString("EGL_ANGLE_platform_angle_context_virtualization", platformANGLEContextVirtualization, &extensionStrings);
-    InsertExtensionString("EGL_ANGLE_device_creation",                       deviceCreation,                     &extensionStrings);
-    InsertExtensionString("EGL_ANGLE_device_creation_d3d11",                 deviceCreationD3D11,                &extensionStrings);
-    InsertExtensionString("EGL_ANGLE_x11_visual",                            x11Visual,                          &extensionStrings);
-    InsertExtensionString("EGL_ANGLE_experimental_present_path",             experimentalPresentPath,            &extensionStrings);
-    InsertExtensionString("EGL_KHR_client_get_all_proc_addresses",           clientGetAllProcAddresses,          &extensionStrings);
-    InsertExtensionString("EGL_KHR_debug",                                   debug,                              &extensionStrings);
-    InsertExtensionString("EGL_ANGLE_explicit_context",                      explicitContext,                    &extensionStrings);
-    InsertExtensionString("EGL_ANGLE_feature_control",                       featureControlANGLE,                &extensionStrings);
+    //                   | Extension name                                    | Supported flag                   | Output vector   |
+    InsertExtensionString("EGL_EXT_client_extensions",                        clientExtensions,                   &extensionStrings);
+    InsertExtensionString("EGL_EXT_platform_base",                            platformBase,                       &extensionStrings);
+    InsertExtensionString("EGL_EXT_platform_device",                          platformDevice,                     &extensionStrings);
+    InsertExtensionString("EGL_ANGLE_platform_angle",                         platformANGLE,                      &extensionStrings);
+    InsertExtensionString("EGL_ANGLE_platform_angle_d3d",                     platformANGLED3D,                   &extensionStrings);
+    InsertExtensionString("EGL_ANGLE_platform_angle_d3d11on12",               platformANGLED3D11ON12,             &extensionStrings);
+    InsertExtensionString("EGL_ANGLE_platform_angle_device_type_swiftshader", platformANGLEDeviceTypeSwiftShader, &extensionStrings);
+    InsertExtensionString("EGL_ANGLE_platform_angle_opengl",                  platformANGLEOpenGL,                &extensionStrings);
+    InsertExtensionString("EGL_ANGLE_platform_angle_null",                    platformANGLENULL,                  &extensionStrings);
+    InsertExtensionString("EGL_ANGLE_platform_angle_vulkan",                  platformANGLEVulkan,                &extensionStrings);
+    InsertExtensionString("EGL_ANGLE_platform_angle_metal",                   platformANGLEMetal,                 &extensionStrings);
+    InsertExtensionString("EGL_ANGLE_platform_angle_context_virtualization",  platformANGLEContextVirtualization, &extensionStrings);
+    InsertExtensionString("EGL_ANGLE_device_creation",                        deviceCreation,                     &extensionStrings);
+    InsertExtensionString("EGL_ANGLE_device_creation_d3d11",                  deviceCreationD3D11,                &extensionStrings);
+    InsertExtensionString("EGL_ANGLE_x11_visual",                             x11Visual,                          &extensionStrings);
+    InsertExtensionString("EGL_ANGLE_experimental_present_path",              experimentalPresentPath,            &extensionStrings);
+    InsertExtensionString("EGL_KHR_client_get_all_proc_addresses",            clientGetAllProcAddresses,          &extensionStrings);
+    InsertExtensionString("EGL_KHR_debug",                                    debug,                              &extensionStrings);
+    InsertExtensionString("EGL_ANGLE_explicit_context",                       explicitContext,                    &extensionStrings);
+    InsertExtensionString("EGL_ANGLE_feature_control",                        featureControlANGLE,                &extensionStrings);
     // clang-format on
 
     return extensionStrings;
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/Caps.h b/Source/ThirdParty/ANGLE/src/libANGLE/Caps.h
index bd82e5b..0e0b17e 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/Caps.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/Caps.h
@@ -83,7 +83,7 @@
                                const Extensions &extensions,
                                TextureCapsMap *capsMap);
 
-// Returns true if all the formats required to support GL_CHROMIUM_compressed_texture_etc are
+// Returns true if all the formats required to support GL_ANGLE_compressed_texture_etc are
 // present. Does not determine if they are natively supported without decompression.
 bool DetermineCompressedTextureETCSupport(const TextureCapsMap &textureCaps);
 
@@ -234,7 +234,7 @@
     // OES_compressed_EAC_RG11_signed_texture
     bool compressedEACRG11SignedTexture = false;
 
-    // GL_CHROMIUM_compressed_texture_etc
+    // ANGLE_compressed_texture_etc
     // ONLY exposed if ETC texture formats are natively supported without decompression
     // Backends should enable this extension explicitly. It is not enabled with
     // setTextureExtensionSupport, use DetermineCompressedTextureETCSupport to check if all of the
@@ -385,6 +385,9 @@
     // GL_OES_vertex_array_object
     bool vertexArrayObject = false;
 
+    // GL_OES_vertex_type_10_10_10_2
+    bool vertexAttribType1010102 = false;
+
     // GL_KHR_debug
     bool debug                     = false;
     GLuint maxDebugMessageLength   = 0;
@@ -925,6 +928,9 @@
 
     // EGL_ANGLE_create_context_backwards_compatible
     bool createContextBackwardsCompatible = false;
+
+    // EGL_KHR_no_config_context
+    bool noConfigContext = false;
 };
 
 struct DeviceExtensions
@@ -936,6 +942,9 @@
 
     // EGL_ANGLE_device_d3d
     bool deviceD3D = false;
+
+    // EGL_ANGLE_device_cgl
+    bool deviceCGL = false;
 };
 
 struct ClientExtensions
@@ -961,6 +970,9 @@
     // EGL_ANGLE_platform_angle_d3d
     bool platformANGLED3D = false;
 
+    // EGL_ANGLE_platform_angle_d3d11on12
+    bool platformANGLED3D11ON12 = false;
+
     // EGL_ANGLE_platform_angle_opengl
     bool platformANGLEOpenGL = false;
 
@@ -970,6 +982,9 @@
     // EGL_ANGLE_platform_angle_vulkan
     bool platformANGLEVulkan = false;
 
+    // EGL_ANGLE_platform_angle_metal
+    bool platformANGLEMetal = false;
+
     // EGL_ANGLE_platform_angle_context_virtualization
     bool platformANGLEContextVirtualization = false;
 
@@ -996,6 +1011,9 @@
 
     // EGL_ANGLE_feature_control
     bool featureControlANGLE = false;
+
+    // EGL_ANGLE_platform_angle_device_type_swiftshader
+    bool platformANGLEDeviceTypeSwiftShader = false;
 };
 
 }  // namespace egl
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/Constants.h b/Source/ThirdParty/ANGLE/src/libANGLE/Constants.h
index 5a2f987..92b426d 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/Constants.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/Constants.h
@@ -34,11 +34,11 @@
         IMPLEMENTATION_MAX_DRAW_BUFFERS + 2,  // 2 extra for depth and/or stencil buffers
 
     IMPLEMENTATION_MAX_VERTEX_SHADER_UNIFORM_BUFFERS   = 16,
+    IMPLEMENTATION_MAX_GEOMETRY_SHADER_UNIFORM_BUFFERS = 16,
     IMPLEMENTATION_MAX_FRAGMENT_SHADER_UNIFORM_BUFFERS = 16,
     IMPLEMENTATION_MAX_COMPUTE_SHADER_UNIFORM_BUFFERS  = 16,
-    IMPLEMENTATION_MAX_COMBINED_SHADER_UNIFORM_BUFFERS =
-        IMPLEMENTATION_MAX_VERTEX_SHADER_UNIFORM_BUFFERS +
-        IMPLEMENTATION_MAX_FRAGMENT_SHADER_UNIFORM_BUFFERS,
+    // GL_EXT_geometry_shader increases the minimum value of GL_MAX_COMBINED_UNIFORM_BLOCKS to 36.
+    IMPLEMENTATION_MAX_COMBINED_SHADER_UNIFORM_BUFFERS = 36,
 
     // GL_EXT_geometry_shader increases the minimum value of GL_MAX_UNIFORM_BUFFER_BINDINGS to 48.
     IMPLEMENTATION_MAX_UNIFORM_BUFFER_BINDINGS = 48,
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/Context.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/Context.cpp
index 130c55b..ba479e5 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/Context.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/Context.cpp
@@ -292,7 +292,9 @@
 {
     kTexture0SubjectIndex       = 0,
     kTextureMaxSubjectIndex     = kTexture0SubjectIndex + IMPLEMENTATION_MAX_ACTIVE_TEXTURES,
-    kUniformBuffer0SubjectIndex = kTextureMaxSubjectIndex,
+    kImage0SubjectIndex         = kTextureMaxSubjectIndex,
+    kImageMaxSubjectIndex       = kImage0SubjectIndex + IMPLEMENTATION_MAX_IMAGE_UNITS,
+    kUniformBuffer0SubjectIndex = kImageMaxSubjectIndex,
     kUniformBufferMaxSubjectIndex =
         kUniformBuffer0SubjectIndex + IMPLEMENTATION_MAX_UNIFORM_BUFFER_BINDINGS,
     kSampler0SubjectIndex    = kUniformBufferMaxSubjectIndex,
@@ -367,6 +369,12 @@
     {
         mSamplerObserverBindings.emplace_back(this, samplerIndex);
     }
+
+    for (angle::SubjectIndex imageIndex = kImage0SubjectIndex; imageIndex < kImageMaxSubjectIndex;
+         ++imageIndex)
+    {
+        mImageObserverBindings.emplace_back(this, imageIndex);
+    }
 }
 
 void Context::initialize()
@@ -535,6 +543,7 @@
     mComputeDirtyBits.set(State::DIRTY_BIT_DISPATCH_INDIRECT_BUFFER_BINDING);
     mComputeDirtyObjects.set(State::DIRTY_OBJECT_TEXTURES);
     mComputeDirtyObjects.set(State::DIRTY_OBJECT_PROGRAM);
+    mComputeDirtyObjects.set(State::DIRTY_OBJECT_IMAGES);
     mComputeDirtyObjects.set(State::DIRTY_OBJECT_SAMPLERS);
 
     mCopyImageDirtyBits.set(State::DIRTY_BIT_READ_FRAMEBUFFER_BINDING);
@@ -548,6 +557,9 @@
 
 egl::Error Context::onDestroy(const egl::Display *display)
 {
+    // Dump frame capture if enabled.
+    mFrameCapture->onEndFrame(this);
+
     if (mGLES1Renderer)
     {
         mGLES1Renderer->onDestroy(this, &mState);
@@ -1163,6 +1175,7 @@
 {
     Texture *tex = mState.mTextureManager->getTexture(texture);
     mState.setImageUnit(this, unit, tex, level, layered, layer, access, format);
+    mImageObserverBindings[unit].bind(tex);
 }
 
 void Context::useProgram(ShaderProgramID program)
@@ -1234,7 +1247,7 @@
     switch (pname)
     {
         case GL_CURRENT_QUERY_EXT:
-            params[0] = mState.getActiveQueryId(target);
+            params[0] = mState.getActiveQueryId(target).value;
             break;
         case GL_QUERY_COUNTER_BITS_EXT:
             switch (target)
@@ -2793,6 +2806,16 @@
 
 void Context::detachTexture(TextureID texture)
 {
+    // The State cannot unbind image observers itself, they are owned by the Context
+    Texture *tex = mState.mTextureManager->getTexture(texture);
+    for (auto &imageBinding : mImageObserverBindings)
+    {
+        if (imageBinding.getSubject() == tex)
+        {
+            imageBinding.reset();
+        }
+    }
+
     // Simple pass-through to State's detachTexture method, as textures do not require
     // allocation map management either here or in the resource manager at detach time.
     // Zero textures are held by the Context, and we don't attempt to request them from
@@ -3271,6 +3294,20 @@
         {
             supportedExtensions.textureSRGBDecode = false;
         }
+
+        // Don't expose GL_OES_texture_float_linear without full legacy float texture support
+        // The renderer may report OES_texture_float_linear without OES_texture_float
+        // This is valid in a GLES 3.0 context, but not in a GLES 2.0 context
+        if (!(supportedExtensions.textureFloat && supportedExtensions.textureHalfFloat))
+        {
+            supportedExtensions.textureFloatLinear     = false;
+            supportedExtensions.textureHalfFloatLinear = false;
+        }
+
+        // Because of the difference in the SNORM to FLOAT conversion formula
+        // between GLES 2.0 and 3.0, vertex type 10_10_10_2 is disabled
+        // when the context version is lower than 3.0
+        supportedExtensions.vertexAttribType1010102 = false;
     }
 
     if (getClientVersion() < ES_3_1)
@@ -3287,6 +3324,25 @@
     {
         // FIXME(geofflang): Don't support EXT_sRGB in non-ES2 contexts
         // supportedExtensions.sRGB = false;
+
+        // If colorBufferFloat is disabled but colorBufferHalfFloat is enabled, then we will expose
+        // some floating-point formats as color buffer targets but reject blits between fixed-point
+        // and floating-point formats (this behavior is only enabled in colorBufferFloat, and must
+        // be rejected if only colorBufferHalfFloat is enabled).
+        // dEQP does not check for this, and will assume that floating-point and fixed-point formats
+        // can be blit onto each other if the format is available.
+        // We require colorBufferFloat to be present in order to enable colorBufferHalfFloat, so
+        // that blitting is always allowed if the requested formats are exposed and have the correct
+        // feature capabilities
+        if (!supportedExtensions.colorBufferFloat)
+        {
+            supportedExtensions.colorBufferHalfFloat = false;
+        }
+
+        // Disable support for CHROMIUM_color_buffer_float_rgb[a] in ES 3.0+, these extensions are
+        // non-conformant in ES 3.0 and superseded by EXT_color_buffer_float.
+        supportedExtensions.colorBufferFloatRGB  = false;
+        supportedExtensions.colorBufferFloatRGBA = false;
     }
 
     // Some extensions are always available because they are implemented in the GL layer.
@@ -3404,6 +3460,14 @@
 
     LimitCap(&mState.mCaps.maxShaderUniformBlocks[ShaderType::Vertex],
              IMPLEMENTATION_MAX_VERTEX_SHADER_UNIFORM_BUFFERS);
+    LimitCap(&mState.mCaps.maxShaderUniformBlocks[ShaderType::Geometry],
+             IMPLEMENTATION_MAX_GEOMETRY_SHADER_UNIFORM_BUFFERS);
+    LimitCap(&mState.mCaps.maxShaderUniformBlocks[ShaderType::Fragment],
+             IMPLEMENTATION_MAX_FRAGMENT_SHADER_UNIFORM_BUFFERS);
+    LimitCap(&mState.mCaps.maxShaderUniformBlocks[ShaderType::Compute],
+             IMPLEMENTATION_MAX_COMPUTE_SHADER_UNIFORM_BUFFERS);
+    LimitCap(&mState.mCaps.maxCombinedUniformBlocks,
+             IMPLEMENTATION_MAX_COMBINED_SHADER_UNIFORM_BUFFERS);
     LimitCap(&mState.mCaps.maxUniformBufferBindings, IMPLEMENTATION_MAX_UNIFORM_BUFFER_BINDINGS);
 
     LimitCap(&mState.mCaps.maxVertexOutputComponents, IMPLEMENTATION_MAX_VARYING_VECTORS * 4);
@@ -8795,6 +8859,14 @@
                     mStateCache.onActiveTextureChange(this);
                 }
             }
+            else if (index < kImageMaxSubjectIndex)
+            {
+                mState.onImageStateChange(this, index - kImage0SubjectIndex);
+                if (message == angle::SubjectMessage::ContentsChanged)
+                {
+                    mState.mDirtyBits.set(State::DirtyBitType::DIRTY_BIT_IMAGE_BINDINGS);
+                }
+            }
             else if (index < kUniformBufferMaxSubjectIndex)
             {
                 mState.onUniformBufferStateChange(index - kUniformBuffer0SubjectIndex);
@@ -9021,7 +9093,7 @@
         return;
     }
 
-    AttributesMask activeAttribs = isGLES1 ? glState.gles1().getVertexArraysAttributeMask()
+    AttributesMask activeAttribs = isGLES1 ? glState.gles1().getActiveAttributesMask()
                                            : glState.getProgram()->getActiveAttribLocationsMask();
 
     const VertexArray *vao = glState.getVertexArray();
@@ -9308,6 +9380,14 @@
 
 void StateCache::updateVertexAttribTypesValidation(Context *context)
 {
+    VertexAttribTypeCase halfFloatValidity = (context->getExtensions().vertexHalfFloat)
+                                                 ? VertexAttribTypeCase::Valid
+                                                 : VertexAttribTypeCase::Invalid;
+
+    VertexAttribTypeCase vertexType1010102Validity =
+        (context->getExtensions().vertexAttribType1010102) ? VertexAttribTypeCase::ValidSize3or4
+                                                           : VertexAttribTypeCase::Invalid;
+
     if (context->getClientMajorVersion() <= 2)
     {
         mCachedVertexAttribTypesValidation = {{
@@ -9317,6 +9397,7 @@
             {VertexAttribType::UnsignedShort, VertexAttribTypeCase::Valid},
             {VertexAttribType::Float, VertexAttribTypeCase::Valid},
             {VertexAttribType::Fixed, VertexAttribTypeCase::Valid},
+            {VertexAttribType::HalfFloatOES, halfFloatValidity},
         }};
     }
     else
@@ -9332,7 +9413,10 @@
             {VertexAttribType::HalfFloat, VertexAttribTypeCase::Valid},
             {VertexAttribType::Fixed, VertexAttribTypeCase::Valid},
             {VertexAttribType::Int2101010, VertexAttribTypeCase::ValidSize4Only},
+            {VertexAttribType::HalfFloatOES, halfFloatValidity},
             {VertexAttribType::UnsignedInt2101010, VertexAttribTypeCase::ValidSize4Only},
+            {VertexAttribType::Int1010102, vertexType1010102Validity},
+            {VertexAttribType::UnsignedInt1010102, vertexType1010102Validity},
         }};
 
         mCachedIntegerVertexAttribTypesValidation = {{
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/Context.h b/Source/ThirdParty/ANGLE/src/libANGLE/Context.h
index 22aba60..7fab36e2 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/Context.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/Context.h
@@ -122,6 +122,7 @@
     Invalid        = 0,
     Valid          = 1,
     ValidSize4Only = 2,
+    ValidSize3or4  = 3,
 };
 
 // Helper class for managing cache variables and state changes.
@@ -714,6 +715,7 @@
     angle::ObserverBinding mReadFramebufferObserverBinding;
     std::vector<angle::ObserverBinding> mUniformBufferObserverBindings;
     std::vector<angle::ObserverBinding> mSamplerObserverBindings;
+    std::vector<angle::ObserverBinding> mImageObserverBindings;
 
     // Not really a property of context state. The size and contexts change per-api-call.
     mutable angle::ScratchBuffer mScratchBuffer;
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/Device.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/Device.cpp
index 734fb88..e549af6 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/Device.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/Device.cpp
@@ -101,11 +101,12 @@
     return mLabel;
 }
 
-Error Device::getDevice(EGLAttrib *value)
+Error Device::getAttribute(EGLint attribute, EGLAttrib *value)
 {
-    void *nativeDevice = nullptr;
-    egl::Error error   = getImplementation()->getDevice(&nativeDevice);
-    *value             = reinterpret_cast<EGLAttrib>(nativeDevice);
+    void *nativeAttribute = nullptr;
+    egl::Error error =
+        getImplementation()->getAttribute(getOwningDisplay(), attribute, &nativeAttribute);
+    *value = reinterpret_cast<EGLAttrib>(nativeAttribute);
     return error;
 }
 
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/Device.h b/Source/ThirdParty/ANGLE/src/libANGLE/Device.h
index e360b0c..e28e532 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/Device.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/Device.h
@@ -32,7 +32,7 @@
     void setLabel(EGLLabelKHR label) override;
     EGLLabelKHR getLabel() const override;
 
-    Error getDevice(EGLAttrib *value);
+    Error getAttribute(EGLint attribute, EGLAttrib *value);
     Display *getOwningDisplay() { return mOwningDisplay; }
     EGLint getType();
 
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/Display.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/Display.cpp
index 84449c1..f36d34d 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/Display.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/Display.cpp
@@ -42,6 +42,8 @@
 #include "libANGLE/trace.h"
 
 #if defined(ANGLE_ENABLE_D3D9) || defined(ANGLE_ENABLE_D3D11)
+#    include <versionhelpers.h>
+
 #    include "libANGLE/renderer/d3d/DisplayD3D.h"
 #endif
 
@@ -924,7 +926,8 @@
     if (usesProgramCacheControl)
     {
         bool programCacheControlEnabled =
-            mAttributeMap.get(EGL_CONTEXT_PROGRAM_BINARY_CACHE_ENABLED_ANGLE, GL_FALSE);
+            (mAttributeMap.get(EGL_CONTEXT_PROGRAM_BINARY_CACHE_ENABLED_ANGLE, GL_FALSE) ==
+             GL_TRUE);
         // A program cache size of zero indicates it should be disabled.
         if (!programCacheControlEnabled || mMemoryProgramCache.maxSize() == 0)
         {
@@ -1222,6 +1225,10 @@
     extensions.platformDevice   = true;
 #endif
 
+#if defined(ANGLE_ENABLE_D3D11)
+    extensions.platformANGLED3D11ON12 = IsWindows10OrGreater();
+#endif
+
 #if defined(ANGLE_ENABLE_OPENGL)
     extensions.platformANGLEOpenGL = true;
 
@@ -1240,7 +1247,8 @@
 #endif
 
 #if defined(ANGLE_ENABLE_VULKAN)
-    extensions.platformANGLEVulkan = true;
+    extensions.platformANGLEVulkan                = true;
+    extensions.platformANGLEDeviceTypeSwiftShader = true;
 #endif
 
 #if defined(ANGLE_USE_X11)
@@ -1367,7 +1375,7 @@
         return true;
     }
 
-#if defined(ANGLE_PLATFORM_WINDOWS) && !defined(ANGLE_ENABLE_WINDOWS_STORE)
+#if defined(ANGLE_PLATFORM_WINDOWS) && !defined(ANGLE_ENABLE_WINDOWS_UWP)
     if (display == EGL_SOFTWARE_DISPLAY_ANGLE || display == EGL_D3D11_ELSE_D3D9_DISPLAY_ANGLE ||
         display == EGL_D3D11_ONLY_DISPLAY_ANGLE)
     {
@@ -1387,8 +1395,8 @@
 void Display::initializeFrontendFeatures()
 {
     // Enable on all Impls
-    mFrontendFeatures.loseContextOnOutOfMemory.enabled          = true;
-    mFrontendFeatures.scalarizeVecAndMatConstructorArgs.enabled = true;
+    ANGLE_FEATURE_CONDITION((&mFrontendFeatures), loseContextOnOutOfMemory, true)
+    ANGLE_FEATURE_CONDITION((&mFrontendFeatures), scalarizeVecAndMatConstructorArgs, true)
 
     mImplementation->initializeFrontendFeatures(&mFrontendFeatures);
 
@@ -1541,6 +1549,9 @@
         case EGL_FEATURE_STATUS_ANGLE:
             result = angle::FeatureStatusToString(mFeatures[index]->enabled);
             break;
+        case EGL_FEATURE_CONDITION_ANGLE:
+            result = mFeatures[index]->condition;
+            break;
         default:
             UNREACHABLE();
             return nullptr;
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/ErrorStrings.h b/Source/ThirdParty/ANGLE/src/libANGLE/ErrorStrings.h
index 5197fd3..e86fe69 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/ErrorStrings.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/ErrorStrings.h
@@ -329,6 +329,7 @@
 MSG kInvalidVertexArray = "Vertex array does not exist.";
 MSG kInvalidVertexArrayName = "name is not a valid vertex array.";
 MSG kInvalidVertexAttribSize2101010 = "Type is INT_2_10_10_10_REV or UNSIGNED_INT_2_10_10_10_REV and size is not 4.";
+MSG kInvalidVertexAttribSize1010102 = "Type is INT_10_10_10_2_OES or UNSIGNED_INT_10_10_10_2_OES and size is not 3 or 4.";
 MSG kInvalidVertexAttrSize = "Vertex attribute size must be 1 = 2 = 3 = or 4.";
 MSG kInvalidVertexPointerSize = "Size for built-in vertex attribute is outside allowed range.";
 MSG kInvalidVertexPointerStride = "Invalid stride for built-in vertex attribute.";
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/Fence.h b/Source/ThirdParty/ANGLE/src/libANGLE/Fence.h
index 738e713..32939be 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/Fence.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/Fence.h
@@ -48,7 +48,7 @@
     GLenum mCondition;
 };
 
-class Sync final : public RefCountObject, public LabeledObject
+class Sync final : public RefCountObject<GLuint>, public LabeledObject
 {
   public:
     Sync(rx::SyncImpl *impl, GLuint id);
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/FrameCapture.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/FrameCapture.cpp
index d37dbcb..c470512 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/FrameCapture.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/FrameCapture.cpp
@@ -17,6 +17,10 @@
 #include "libANGLE/VertexArray.h"
 #include "libANGLE/gl_enum_utils_autogen.h"
 
+#if !ANGLE_CAPTURE_ENABLED
+#    error Frame capture must be enbled to include this file.
+#endif  // !ANGLE_CAPTURE_ENABLED
+
 #ifdef ANGLE_PLATFORM_ANDROID
 #    define ANGLE_CAPTURE_PATH ("/sdcard/Android/data/" + CurrentAPKName() + "/")
 
@@ -53,19 +57,9 @@
 
 namespace angle
 {
-#if !ANGLE_CAPTURE_ENABLED
-CallCapture::~CallCapture() {}
-ParamBuffer::~ParamBuffer() {}
-ParamCapture::~ParamCapture() {}
-
-FrameCapture::FrameCapture() {}
-FrameCapture::~FrameCapture() {}
-void FrameCapture::onEndFrame(const gl::Context *context) {}
-void FrameCapture::replay(gl::Context *context) {}
-#else
 namespace
 {
-std::string GetCaptureFileName(int contextId, size_t frameIndex, const char *suffix)
+std::string GetCaptureFileName(int contextId, uint32_t frameIndex, const char *suffix)
 {
     std::stringstream fnameStream;
     fnameStream << "angle_capture_context" << contextId << "_frame" << std::setfill('0')
@@ -73,7 +67,7 @@
     return fnameStream.str();
 }
 
-std::string GetCaptureFilePath(int contextId, size_t frameIndex, const char *suffix)
+std::string GetCaptureFilePath(int contextId, uint32_t frameIndex, const char *suffix)
 {
     return ANGLE_CAPTURE_PATH + GetCaptureFileName(contextId, frameIndex, suffix);
 }
@@ -110,6 +104,415 @@
     std::string str(data.begin(), data.end() - 1);
     out << "\"" << str << "\"";
 }
+
+void WriteStringPointerParamReplay(DataCounters *counters,
+                                   std::ostream &out,
+                                   std::ostream &header,
+                                   const CallCapture &call,
+                                   const ParamCapture &param)
+{
+    int counter = counters->getAndIncrement(call.entryPoint, param.name);
+
+    header << "const char *";
+    WriteParamStaticVarName(call, param, counter, header);
+    header << "[] = { \n";
+
+    for (const std::vector<uint8_t> &data : param.data)
+    {
+        // null terminate C style string
+        ASSERT(data.size() > 0 && data.back() == '\0');
+        std::string str(data.begin(), data.end() - 1);
+        header << "    R\"(" << str << ")\",\n";
+    }
+
+    header << " };\n";
+    WriteParamStaticVarName(call, param, counter, out);
+}
+
+template <typename ParamT>
+void WriteResourceIDPointerParamReplay(DataCounters *counters,
+                                       std::ostream &out,
+                                       std::ostream &header,
+                                       const CallCapture &call,
+                                       const ParamCapture &param)
+{
+    int counter = counters->getAndIncrement(call.entryPoint, param.name);
+
+    header << "const GLuint ";
+    WriteParamStaticVarName(call, param, counter, header);
+    header << "[] = { ";
+
+    const ResourceIDType resourceIDType = GetResourceIDTypeFromParamType(param.type);
+    ASSERT(resourceIDType != ResourceIDType::InvalidEnum);
+    const char *name = GetResourceIDTypeName(resourceIDType);
+
+    GLsizei n = call.params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal;
+    ASSERT(param.data.size() == 1);
+    const ParamT *returnedIDs = reinterpret_cast<const ParamT *>(param.data[0].data());
+    for (GLsizei resIndex = 0; resIndex < n; ++resIndex)
+    {
+        ParamT id = returnedIDs[resIndex];
+        if (resIndex > 0)
+        {
+            header << ", ";
+        }
+        header << "g" << name << "Map[" << id.value << "]";
+    }
+
+    header << " };\n    ";
+
+    WriteParamStaticVarName(call, param, counter, out);
+}
+
+void WriteBinaryParamReplay(DataCounters *counters,
+                            std::ostream &out,
+                            std::ostream &header,
+                            const CallCapture &call,
+                            const ParamCapture &param,
+                            std::vector<uint8_t> *binaryData)
+{
+    int counter = counters->getAndIncrement(call.entryPoint, param.name);
+
+    ASSERT(param.data.size() == 1);
+    const std::vector<uint8_t> &data = param.data[0];
+
+    if (data.size() > kInlineDataThreshold)
+    {
+        size_t offset = binaryData->size();
+        binaryData->resize(offset + data.size());
+        memcpy(binaryData->data() + offset, data.data(), data.size());
+        if (param.type == ParamType::TvoidConstPointer || param.type == ParamType::TvoidPointer)
+        {
+            out << "&gBinaryData[" << offset << "]";
+        }
+        else
+        {
+            out << "reinterpret_cast<" << ParamTypeToString(param.type) << ">(&gBinaryData["
+                << offset << "])";
+        }
+    }
+    else
+    {
+        ParamType overrideType = param.type;
+        if (param.type == ParamType::TGLvoidConstPointer ||
+            param.type == ParamType::TvoidConstPointer)
+        {
+            overrideType = ParamType::TGLubyteConstPointer;
+        }
+
+        std::string paramTypeString = ParamTypeToString(overrideType);
+        header << paramTypeString.substr(0, paramTypeString.length() - 1);
+        WriteParamStaticVarName(call, param, counter, header);
+
+        header << "[] = { ";
+
+        switch (overrideType)
+        {
+            case ParamType::TGLintConstPointer:
+                WriteInlineData<GLint>(data, header);
+                break;
+            case ParamType::TGLshortConstPointer:
+                WriteInlineData<GLshort>(data, header);
+                break;
+            case ParamType::TGLfloatConstPointer:
+                WriteInlineData<GLfloat>(data, header);
+                break;
+            case ParamType::TGLubyteConstPointer:
+                WriteInlineData<GLubyte, int>(data, header);
+                break;
+            case ParamType::TGLuintConstPointer:
+            case ParamType::TGLenumConstPointer:
+                WriteInlineData<GLuint>(data, header);
+                break;
+            default:
+                UNIMPLEMENTED();
+                break;
+        }
+
+        header << " };\n";
+
+        WriteParamStaticVarName(call, param, counter, out);
+    }
+}
+void WriteCppReplayForCall(const CallCapture &call,
+                           DataCounters *counters,
+                           std::ostream &out,
+                           std::ostream &header,
+                           std::vector<uint8_t> *binaryData)
+{
+    std::ostringstream callOut;
+
+    if (call.entryPoint == gl::EntryPoint::CreateShader ||
+        call.entryPoint == gl::EntryPoint::CreateProgram)
+    {
+        GLuint id = call.params.getReturnValue().value.GLuintVal;
+        callOut << "gShaderProgramMap[" << id << "] = ";
+    }
+
+    callOut << call.name() << "(";
+
+    bool first = true;
+    for (const ParamCapture &param : call.params.getParamCaptures())
+    {
+        if (!first)
+        {
+            callOut << ", ";
+        }
+
+        if (param.arrayClientPointerIndex != -1)
+        {
+            callOut << "gClientArrays[" << param.arrayClientPointerIndex << "].data()";
+        }
+        else if (param.readBufferSizeBytes > 0)
+        {
+            callOut << "reinterpret_cast<" << ParamTypeToString(param.type)
+                    << ">(gReadBuffer.data())";
+        }
+        else if (param.data.empty())
+        {
+            if (param.type == ParamType::TGLenum)
+            {
+                OutputGLenumString(callOut, param.enumGroup, param.value.GLenumVal);
+            }
+            else if (param.type == ParamType::TGLbitfield)
+            {
+                OutputGLbitfieldString(callOut, param.enumGroup, param.value.GLbitfieldVal);
+            }
+            else
+            {
+                callOut << param;
+            }
+        }
+        else
+        {
+            switch (param.type)
+            {
+                case ParamType::TGLcharConstPointer:
+                    WriteStringParamReplay(callOut, param);
+                    break;
+                case ParamType::TGLcharConstPointerPointer:
+                    WriteStringPointerParamReplay(counters, callOut, header, call, param);
+                    break;
+                case ParamType::TBufferIDConstPointer:
+                    WriteResourceIDPointerParamReplay<gl::BufferID>(counters, callOut, out, call,
+                                                                    param);
+                    break;
+                case ParamType::TFenceNVIDConstPointer:
+                    WriteResourceIDPointerParamReplay<gl::FenceNVID>(counters, callOut, out, call,
+                                                                     param);
+                    break;
+                case ParamType::TFramebufferIDConstPointer:
+                    WriteResourceIDPointerParamReplay<gl::FramebufferID>(counters, callOut, out,
+                                                                         call, param);
+                    break;
+                case ParamType::TMemoryObjectIDConstPointer:
+                    WriteResourceIDPointerParamReplay<gl::MemoryObjectID>(counters, callOut, out,
+                                                                          call, param);
+                    break;
+                case ParamType::TProgramPipelineIDConstPointer:
+                    WriteResourceIDPointerParamReplay<gl::ProgramPipelineID>(counters, callOut, out,
+                                                                             call, param);
+                    break;
+                case ParamType::TQueryIDConstPointer:
+                    WriteResourceIDPointerParamReplay<gl::QueryID>(counters, callOut, out, call,
+                                                                   param);
+                    break;
+                case ParamType::TRenderbufferIDConstPointer:
+                    WriteResourceIDPointerParamReplay<gl::RenderbufferID>(counters, callOut, out,
+                                                                          call, param);
+                    break;
+                case ParamType::TSamplerIDConstPointer:
+                    WriteResourceIDPointerParamReplay<gl::SamplerID>(counters, callOut, out, call,
+                                                                     param);
+                    break;
+                case ParamType::TSemaphoreIDConstPointer:
+                    WriteResourceIDPointerParamReplay<gl::SemaphoreID>(counters, callOut, out, call,
+                                                                       param);
+                    break;
+                case ParamType::TTextureIDConstPointer:
+                    WriteResourceIDPointerParamReplay<gl::TextureID>(counters, callOut, out, call,
+                                                                     param);
+                    break;
+                case ParamType::TTransformFeedbackIDConstPointer:
+                    WriteResourceIDPointerParamReplay<gl::TransformFeedbackID>(counters, callOut,
+                                                                               out, call, param);
+                    break;
+                case ParamType::TVertexArrayIDConstPointer:
+                    WriteResourceIDPointerParamReplay<gl::VertexArrayID>(counters, callOut, out,
+                                                                         call, param);
+                    break;
+                default:
+                    WriteBinaryParamReplay(counters, callOut, header, call, param, binaryData);
+                    break;
+            }
+        }
+
+        first = false;
+    }
+
+    callOut << ")";
+
+    out << callOut.str();
+}
+
+bool AnyClientArray(const gl::AttribArray<size_t> &clientArraySizes)
+{
+    for (size_t size : clientArraySizes)
+    {
+        if (size > 0)
+            return true;
+    }
+
+    return false;
+}
+
+void WriteCppReplay(int contextId,
+                    uint32_t frameIndex,
+                    const std::vector<CallCapture> &calls,
+                    const gl::AttribArray<size_t> &clientArraySizes,
+                    size_t readBufferSize)
+{
+    bool useClientArrays = AnyClientArray(clientArraySizes);
+
+    // Count resource IDs.
+    angle::PackedEnumMap<ResourceIDType, uint32_t, angle::kParamTypeCount> resourceIDCounts = {};
+    for (const CallCapture &call : calls)
+    {
+        for (const ParamCapture &param : call.params.getParamCaptures())
+        {
+            ResourceIDType idType = GetResourceIDTypeFromParamType(param.type);
+            if (idType != ResourceIDType::InvalidEnum)
+            {
+                resourceIDCounts[idType]++;
+            }
+        }
+    }
+
+    DataCounters counters;
+
+    std::stringstream out;
+    std::stringstream header;
+    std::vector<uint8_t> binaryData;
+
+    header << "#include \"util/gles_loader_autogen.h\"\n";
+    header << "\n";
+    header << "#include <cstdio>\n";
+    header << "#include <cstring>\n";
+    header << "#include <vector>\n";
+    header << "#include <unordered_map>\n";
+    header << "\n";
+    header << "namespace\n";
+    header << "{\n";
+    if (readBufferSize > 0)
+    {
+        header << "std::vector<uint8_t> gReadBuffer;\n";
+    }
+    if (useClientArrays)
+    {
+        header << "std::vector<uint8_t> gClientArrays[" << gl::MAX_VERTEX_ATTRIBS << "];\n";
+        header << "void UpdateClientArrayPointer(int arrayIndex, const void *data, GLuint64 size)"
+               << "\n";
+        header << "{\n";
+        header << "    memcpy(gClientArrays[arrayIndex].data(), data, size);\n";
+        header << "}\n";
+    }
+
+    header << "using ResourceMap = std::unordered_map<GLuint, GLuint>;\n";
+    header << "void UpdateResourceMap(ResourceMap *resourceMap, GLuint id, GLsizei "
+              "readBufferOffset)\n";
+    header << "{\n";
+    header << "    GLuint returnedID;\n";
+    header << "    memcpy(&returnedID, &gReadBuffer[readBufferOffset], sizeof(GLuint));\n";
+    header << "    (*resourceMap)[id] = returnedID;\n";
+    header << "}\n";
+    header << "\n";
+    header << "// Resource Maps\n";
+
+    for (ResourceIDType resourceType : AllEnums<ResourceIDType>())
+    {
+        if (resourceIDCounts[resourceType] == 0)
+            continue;
+
+        const char *name = GetResourceIDTypeName(resourceType);
+        header << "ResourceMap g" << name << "Map;\n";
+        header << "void Update" << name << "ID(GLuint id, GLsizei readBufferOffset)\n";
+        header << "{\n";
+        header << "    UpdateResourceMap(&g" << name << "Map, id, readBufferOffset);\n";
+        header << "}\n";
+    }
+
+    out << "void ReplayFrame" << frameIndex << "()\n";
+    out << "{\n";
+    out << "    LoadBinaryData();\n";
+
+    for (size_t arrayIndex = 0; arrayIndex < clientArraySizes.size(); ++arrayIndex)
+    {
+        if (clientArraySizes[arrayIndex] > 0)
+        {
+            out << "    gClientArrays[" << arrayIndex << "].resize(" << clientArraySizes[arrayIndex]
+                << ");\n";
+        }
+    }
+
+    if (readBufferSize > 0)
+    {
+        out << "    gReadBuffer.resize(" << readBufferSize << ");\n";
+    }
+
+    for (const CallCapture &call : calls)
+    {
+        out << "    ";
+        WriteCppReplayForCall(call, &counters, out, header, &binaryData);
+        out << ";\n";
+    }
+
+    if (!binaryData.empty())
+    {
+        std::string dataFilepath = GetCaptureFilePath(contextId, frameIndex, ".angledata");
+
+        FILE *fp = fopen(dataFilepath.c_str(), "wb");
+        if (!fp)
+        {
+            FATAL() << "file " << dataFilepath << " can not be created!: " << strerror(errno);
+        }
+        fwrite(binaryData.data(), 1, binaryData.size(), fp);
+        fclose(fp);
+
+        std::string fname = GetCaptureFileName(contextId, frameIndex, ".angledata");
+        header << "std::vector<uint8_t> gBinaryData;\n";
+        header << "void LoadBinaryData()\n";
+        header << "{\n";
+        header << "    gBinaryData.resize(" << static_cast<int>(binaryData.size()) << ");\n";
+        header << "    FILE *fp = fopen(\"" << fname << "\", \"rb\");\n";
+        header << "    fread(gBinaryData.data(), 1, " << static_cast<int>(binaryData.size())
+               << ", fp);\n";
+        header << "    fclose(fp);\n";
+        header << "}\n";
+    }
+    else
+    {
+        header << "// No binary data.\n";
+        header << "void LoadBinaryData() {}\n";
+    }
+
+    out << "}\n";
+
+    header << "}  // anonymous namespace\n";
+
+    std::string outString    = out.str();
+    std::string headerString = header.str();
+
+    std::string cppFilePath = GetCaptureFilePath(contextId, frameIndex, ".cpp");
+    FILE *fp                = fopen(cppFilePath.c_str(), "w");
+    if (!fp)
+    {
+        FATAL() << "file " << cppFilePath << " can not be created!: " << strerror(errno);
+    }
+    fprintf(fp, "%s\n\n%s", headerString.c_str(), outString.c_str());
+    fclose(fp);
+
+    printf("Saved '%s'.\n", cppFilePath.c_str());
+}
 }  // anonymous namespace
 
 ParamCapture::ParamCapture() : type(ParamType::TGLenum), enumGroup(gl::GLenumGroup::DefaultGroup) {}
@@ -152,6 +555,7 @@
     std::swap(mParamCaptures, other.mParamCaptures);
     std::swap(mClientArrayDataParam, other.mClientArrayDataParam);
     std::swap(mReadBufferSize, other.mReadBufferSize);
+    std::swap(mReturnValueCapture, other.mReturnValueCapture);
     return *this;
 }
 
@@ -335,29 +739,132 @@
     maybeUpdateResourceIDs(context, mCalls.back());
 }
 
+template <typename IDType>
+void FrameCapture::captureUpdateResourceIDs(const gl::Context *context,
+                                            const CallCapture &call,
+                                            const ParamCapture &param)
+{
+    GLsizei n = call.params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal;
+    ASSERT(param.data.size() == 1);
+    const IDType *returnedIDs     = reinterpret_cast<const IDType *>(param.data[0].data());
+    ResourceIDType resourceIDType = GetResourceIDTypeFromParamType(param.type);
+    ASSERT(resourceIDType != ResourceIDType::InvalidEnum);
+    const char *resourceName = GetResourceIDTypeName(resourceIDType);
+
+    std::stringstream updateFuncNameStr;
+    updateFuncNameStr << "Update" << resourceName << "ID";
+    std::string updateFuncName = updateFuncNameStr.str();
+
+    for (GLsizei idIndex = 0; idIndex < n; ++idIndex)
+    {
+        IDType id                = returnedIDs[idIndex];
+        GLsizei readBufferOffset = idIndex * sizeof(gl::RenderbufferID);
+        ParamBuffer params;
+        params.addValueParam("id", ParamType::TGLuint, id.value);
+        params.addValueParam("readBufferOffset", ParamType::TGLsizei, readBufferOffset);
+        mCalls.emplace_back(updateFuncName, std::move(params));
+    }
+}
+
 void FrameCapture::maybeUpdateResourceIDs(const gl::Context *context, const CallCapture &call)
 {
     switch (call.entryPoint)
     {
+        case gl::EntryPoint::GenBuffers:
+        {
+            const ParamCapture &buffers =
+                call.params.getParam("buffersPacked", ParamType::TBufferIDPointer, 1);
+            captureUpdateResourceIDs<gl::BufferID>(context, call, buffers);
+            break;
+        }
+
+        case gl::EntryPoint::GenFencesNV:
+        {
+            const ParamCapture &fences =
+                call.params.getParam("fencesPacked", ParamType::TFenceNVIDPointer, 1);
+            captureUpdateResourceIDs<gl::FenceNVID>(context, call, fences);
+            break;
+        }
+
+        case gl::EntryPoint::GenFramebuffers:
+        case gl::EntryPoint::GenFramebuffersOES:
+        {
+            const ParamCapture &framebuffers =
+                call.params.getParam("framebuffersPacked", ParamType::TFramebufferIDPointer, 1);
+            captureUpdateResourceIDs<gl::FramebufferID>(context, call, framebuffers);
+            break;
+        }
+
+        case gl::EntryPoint::GenPathsCHROMIUM:
+        {
+            // TODO(jmadill): Handle path IDs. http://anglebug.com/3611
+            break;
+        }
+
+        case gl::EntryPoint::GenProgramPipelines:
+        {
+            const ParamCapture &pipelines =
+                call.params.getParam("pipelinesPacked", ParamType::TProgramPipelineIDPointer, 1);
+            captureUpdateResourceIDs<gl::ProgramPipelineID>(context, call, pipelines);
+            break;
+        }
+
+        case gl::EntryPoint::GenQueries:
+        case gl::EntryPoint::GenQueriesEXT:
+        {
+            const ParamCapture &queries =
+                call.params.getParam("idsPacked", ParamType::TQueryIDPointer, 1);
+            captureUpdateResourceIDs<gl::QueryID>(context, call, queries);
+            break;
+        }
+
         case gl::EntryPoint::GenRenderbuffers:
         case gl::EntryPoint::GenRenderbuffersOES:
         {
-            GLsizei n = call.params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal;
             const ParamCapture &renderbuffers =
                 call.params.getParam("renderbuffersPacked", ParamType::TRenderbufferIDPointer, 1);
-            ASSERT(renderbuffers.data.size() == 1);
-            const gl::RenderbufferID *returnedIDs =
-                reinterpret_cast<const gl::RenderbufferID *>(renderbuffers.data[0].data());
+            captureUpdateResourceIDs<gl::RenderbufferID>(context, call, renderbuffers);
+            break;
+        }
 
-            for (GLsizei idIndex = 0; idIndex < n; ++idIndex)
-            {
-                gl::RenderbufferID id    = returnedIDs[idIndex];
-                GLsizei readBufferOffset = idIndex * sizeof(gl::RenderbufferID);
-                ParamBuffer params;
-                params.addValueParam("id", ParamType::TGLuint, id.value);
-                params.addValueParam("readBufferOffset", ParamType::TGLsizei, readBufferOffset);
-                mCalls.emplace_back("UpdateRenderbufferID", std::move(params));
-            }
+        case gl::EntryPoint::GenSamplers:
+        {
+            const ParamCapture &samplers =
+                call.params.getParam("samplersPacked", ParamType::TSamplerIDPointer, 1);
+            captureUpdateResourceIDs<gl::SamplerID>(context, call, samplers);
+            break;
+        }
+
+        case gl::EntryPoint::GenSemaphoresEXT:
+        {
+            const ParamCapture &semaphores =
+                call.params.getParam("semaphoresPacked", ParamType::TSemaphoreIDPointer, 1);
+            captureUpdateResourceIDs<gl::SemaphoreID>(context, call, semaphores);
+            break;
+        }
+
+        case gl::EntryPoint::GenTextures:
+        {
+            const ParamCapture &textures =
+                call.params.getParam("texturesPacked", ParamType::TTextureIDPointer, 1);
+            captureUpdateResourceIDs<gl::TextureID>(context, call, textures);
+            break;
+        }
+
+        case gl::EntryPoint::GenTransformFeedbacks:
+        {
+            const ParamCapture &xfbs =
+                call.params.getParam("idsPacked", ParamType::TTransformFeedbackIDPointer, 1);
+            captureUpdateResourceIDs<gl::TransformFeedbackID>(context, call, xfbs);
+            break;
+        }
+
+        case gl::EntryPoint::GenVertexArrays:
+        case gl::EntryPoint::GenVertexArraysOES:
+        {
+            const ParamCapture &vertexArrays =
+                call.params.getParam("vetexArraysPacked", ParamType::TVertexArrayIDPointer, 1);
+            captureUpdateResourceIDs<gl::VertexArrayID>(context, call, vertexArrays);
             break;
         }
 
@@ -415,339 +922,24 @@
     }
 }
 
-bool FrameCapture::anyClientArray() const
-{
-    for (size_t size : mClientArraySizes)
-    {
-        if (size > 0)
-            return true;
-    }
-
-    return false;
-}
-
 void FrameCapture::onEndFrame(const gl::Context *context)
 {
     if (!mCalls.empty())
     {
-        saveCapturedFrameAsCpp(context->id());
+        WriteCppReplay(context->id(), mFrameIndex, mCalls, mClientArraySizes, mReadBufferSize);
         reset();
         mFrameIndex++;
     }
 }
 
-void FrameCapture::saveCapturedFrameAsCpp(int contextId)
+DataCounters::DataCounters() = default;
+
+DataCounters::~DataCounters() = default;
+
+int DataCounters::getAndIncrement(gl::EntryPoint entryPoint, const std::string &paramName)
 {
-    bool useClientArrays = anyClientArray();
-
-    std::stringstream out;
-    std::stringstream header;
-    std::vector<uint8_t> binaryData;
-
-    header << "#include \"util/gles_loader_autogen.h\"\n";
-    header << "\n";
-    header << "#include <cstdio>\n";
-    header << "#include <cstring>\n";
-    header << "#include <vector>\n";
-    header << "#include <unordered_map>\n";
-    header << "\n";
-    header << "namespace\n";
-    header << "{\n";
-    if (mReadBufferSize > 0)
-    {
-        header << "std::vector<uint8_t> gReadBuffer;\n";
-    }
-    if (useClientArrays)
-    {
-        header << "std::vector<uint8_t> gClientArrays[" << gl::MAX_VERTEX_ATTRIBS << "];\n";
-        header << "void UpdateClientArrayPointer(int arrayIndex, const void *data, GLuint64 size)"
-               << "\n";
-        header << "{\n";
-        header << "    memcpy(gClientArrays[arrayIndex].data(), data, size);\n";
-        header << "}\n";
-    }
-
-    header << "std::unordered_map<GLuint, GLuint> gRenderbufferMap;\n";
-    header << "void UpdateRenderbufferID(GLuint id, GLsizei readBufferOffset)\n";
-    header << "{\n";
-    header << "    GLuint returnedID;\n";
-    header << "    memcpy(&returnedID, &gReadBuffer[readBufferOffset], sizeof(GLuint));\n";
-    header << "    gRenderbufferMap[id] = returnedID;\n";
-    header << "}\n";
-
-    out << "void ReplayFrame" << mFrameIndex << "()\n";
-    out << "{\n";
-    out << "    LoadBinaryData();\n";
-
-    for (size_t arrayIndex = 0; arrayIndex < mClientArraySizes.size(); ++arrayIndex)
-    {
-        if (mClientArraySizes[arrayIndex] > 0)
-        {
-            out << "    gClientArrays[" << arrayIndex << "].resize("
-                << mClientArraySizes[arrayIndex] << ");\n";
-        }
-    }
-
-    if (mReadBufferSize > 0)
-    {
-        out << "    gReadBuffer.resize(" << mReadBufferSize << ");\n";
-    }
-
-    for (const CallCapture &call : mCalls)
-    {
-        out << "    ";
-        writeCallReplay(call, out, header, &binaryData);
-        out << ";\n";
-    }
-
-    if (!binaryData.empty())
-    {
-        std::string dataFilepath = GetCaptureFilePath(contextId, mFrameIndex, ".angledata");
-
-        FILE *fp = fopen(dataFilepath.c_str(), "wb");
-        if (!fp)
-        {
-            FATAL() << "file " << dataFilepath << " can not be created!: " << strerror(errno);
-        }
-        fwrite(binaryData.data(), 1, binaryData.size(), fp);
-        fclose(fp);
-
-        std::string fname = GetCaptureFileName(contextId, mFrameIndex, ".angledata");
-        header << "std::vector<uint8_t> gBinaryData;\n";
-        header << "void LoadBinaryData()\n";
-        header << "{\n";
-        header << "    gBinaryData.resize(" << static_cast<int>(binaryData.size()) << ");\n";
-        header << "    FILE *fp = fopen(\"" << fname << "\", \"rb\");\n";
-        header << "    fread(gBinaryData.data(), 1, " << static_cast<int>(binaryData.size())
-               << ", fp);\n";
-        header << "    fclose(fp);\n";
-        header << "}\n";
-    }
-    else
-    {
-        header << "// No binary data.\n";
-        header << "void LoadBinaryData() {}\n";
-    }
-
-    out << "}\n";
-
-    header << "}  // anonymous namespace\n";
-
-    std::string outString    = out.str();
-    std::string headerString = header.str();
-
-    std::string cppFilePath = GetCaptureFilePath(contextId, mFrameIndex, ".cpp");
-    FILE *fp                = fopen(cppFilePath.c_str(), "w");
-    if (!fp)
-    {
-        FATAL() << "file " << cppFilePath << " can not be created!: " << strerror(errno);
-    }
-    fprintf(fp, "%s\n\n%s", headerString.c_str(), outString.c_str());
-    fclose(fp);
-
-    printf("Saved '%s'.\n", cppFilePath.c_str());
-}
-
-int FrameCapture::getAndIncrementCounter(gl::EntryPoint entryPoint, const std::string &paramName)
-{
-    auto counterKey = std::tie(entryPoint, paramName);
-    return mDataCounters[counterKey]++;
-}
-
-void FrameCapture::writeStringPointerParamReplay(std::ostream &out,
-                                                 std::ostream &header,
-                                                 const CallCapture &call,
-                                                 const ParamCapture &param)
-{
-    int counter = getAndIncrementCounter(call.entryPoint, param.name);
-
-    header << "const char *";
-    WriteParamStaticVarName(call, param, counter, header);
-    header << "[] = { \n";
-
-    for (const std::vector<uint8_t> &data : param.data)
-    {
-        // null terminate C style string
-        ASSERT(data.size() > 0 && data.back() == '\0');
-        std::string str(data.begin(), data.end() - 1);
-        header << "    R\"(" << str << ")\",\n";
-    }
-
-    header << " };\n";
-    WriteParamStaticVarName(call, param, counter, out);
-}
-
-void FrameCapture::writeRenderbufferIDPointerParamReplay(std::ostream &out,
-                                                         std::ostream &header,
-                                                         const CallCapture &call,
-                                                         const ParamCapture &param)
-{
-    int counter = getAndIncrementCounter(call.entryPoint, param.name);
-
-    header << "const GLuint ";
-    WriteParamStaticVarName(call, param, counter, header);
-    header << "[] = { ";
-
-    GLsizei n = call.params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal;
-    const ParamCapture &renderbuffers =
-        call.params.getParam("renderbuffersPacked", ParamType::TRenderbufferIDConstPointer, 1);
-    ASSERT(renderbuffers.data.size() == 1);
-    const gl::RenderbufferID *returnedIDs =
-        reinterpret_cast<const gl::RenderbufferID *>(renderbuffers.data[0].data());
-    for (GLsizei resIndex = 0; resIndex < n; ++resIndex)
-    {
-        gl::RenderbufferID id = returnedIDs[resIndex];
-        if (resIndex > 0)
-        {
-            header << ", ";
-        }
-        header << "gRenderbufferMap[" << id.value << "]";
-    }
-
-    header << " };\n    ";
-
-    WriteParamStaticVarName(call, param, counter, out);
-}
-
-void FrameCapture::writeBinaryParamReplay(std::ostream &out,
-                                          std::ostream &header,
-                                          const CallCapture &call,
-                                          const ParamCapture &param,
-                                          std::vector<uint8_t> *binaryData)
-{
-    int counter = getAndIncrementCounter(call.entryPoint, param.name);
-
-    ASSERT(param.data.size() == 1);
-    const std::vector<uint8_t> &data = param.data[0];
-
-    if (data.size() > kInlineDataThreshold)
-    {
-        size_t offset = binaryData->size();
-        binaryData->resize(offset + data.size());
-        memcpy(binaryData->data() + offset, data.data(), data.size());
-        if (param.type == ParamType::TvoidConstPointer || param.type == ParamType::TvoidPointer)
-        {
-            out << "&gBinaryData[" << offset << "]";
-        }
-        else
-        {
-            out << "reinterpret_cast<" << ParamTypeToString(param.type) << ">(&gBinaryData["
-                << offset << "])";
-        }
-    }
-    else
-    {
-        ParamType overrideType = param.type;
-        if (param.type == ParamType::TGLvoidConstPointer ||
-            param.type == ParamType::TvoidConstPointer)
-        {
-            overrideType = ParamType::TGLubyteConstPointer;
-        }
-
-        std::string paramTypeString = ParamTypeToString(overrideType);
-        header << paramTypeString.substr(0, paramTypeString.length() - 1);
-        WriteParamStaticVarName(call, param, counter, header);
-
-        header << "[] = { ";
-
-        switch (overrideType)
-        {
-            case ParamType::TGLintConstPointer:
-                WriteInlineData<GLint>(data, header);
-                break;
-            case ParamType::TGLshortConstPointer:
-                WriteInlineData<GLshort>(data, header);
-                break;
-            case ParamType::TGLfloatConstPointer:
-                WriteInlineData<GLfloat>(data, header);
-                break;
-            case ParamType::TGLubyteConstPointer:
-                WriteInlineData<GLubyte, int>(data, header);
-                break;
-            case ParamType::TGLuintConstPointer:
-            case ParamType::TGLenumConstPointer:
-                WriteInlineData<GLuint>(data, header);
-                break;
-            default:
-                UNIMPLEMENTED();
-                break;
-        }
-
-        header << " };\n";
-
-        WriteParamStaticVarName(call, param, counter, out);
-    }
-}
-
-void FrameCapture::writeCallReplay(const CallCapture &call,
-                                   std::ostream &out,
-                                   std::ostream &header,
-                                   std::vector<uint8_t> *binaryData)
-{
-    std::ostringstream callOut;
-
-    callOut << call.name() << "(";
-
-    bool first = true;
-    for (const ParamCapture &param : call.params.getParamCaptures())
-    {
-        if (!first)
-        {
-            callOut << ", ";
-        }
-
-        if (param.arrayClientPointerIndex != -1)
-        {
-            callOut << "gClientArrays[" << param.arrayClientPointerIndex << "].data()";
-        }
-        else if (param.readBufferSizeBytes > 0)
-        {
-            callOut << "reinterpret_cast<" << ParamTypeToString(param.type)
-                    << ">(gReadBuffer.data())";
-        }
-        else if (param.data.empty())
-        {
-            if (param.type == ParamType::TGLenum)
-            {
-                OutputGLenumString(callOut, param.enumGroup, param.value.GLenumVal);
-            }
-            else if (param.type == ParamType::TGLbitfield)
-            {
-                OutputGLbitfieldString(callOut, param.enumGroup, param.value.GLbitfieldVal);
-            }
-            else
-            {
-                callOut << param;
-            }
-        }
-        else
-        {
-            switch (param.type)
-            {
-                case ParamType::TGLcharConstPointer:
-                    WriteStringParamReplay(callOut, param);
-                    break;
-                case ParamType::TGLcharConstPointerPointer:
-                    writeStringPointerParamReplay(callOut, header, call, param);
-                    break;
-                case ParamType::TRenderbufferIDConstPointer:
-                    writeRenderbufferIDPointerParamReplay(callOut, out, call, param);
-                    break;
-                case ParamType::TRenderbufferIDPointer:
-                    UNIMPLEMENTED();
-                    break;
-                default:
-                    writeBinaryParamReplay(callOut, header, call, param, binaryData);
-                    break;
-            }
-        }
-
-        first = false;
-    }
-
-    callOut << ")";
-
-    out << callOut.str();
+    Counter counterKey = {entryPoint, paramName};
+    return mData[counterKey]++;
 }
 
 bool FrameCapture::enabled() const
@@ -795,7 +987,6 @@
     mCalls.clear();
     mClientVertexArrayMap.fill(-1);
     mClientArraySizes.fill(0);
-    mDataCounters.clear();
     mReadBufferSize = 0;
 }
 
@@ -818,6 +1009,12 @@
     CaptureMemory(str, strlen(str) + 1, paramCapture);
 }
 
+void CaptureGenHandlesImpl(GLsizei n, GLuint *handles, ParamCapture *paramCapture)
+{
+    paramCapture->readBufferSizeBytes = sizeof(GLuint) * n;
+    CaptureMemory(handles, paramCapture->readBufferSizeBytes, paramCapture);
+}
+
 template <>
 void WriteParamValueToStream<ParamType::TGLboolean>(std::ostream &os, GLboolean value)
 {
@@ -856,92 +1053,90 @@
 void WriteParamValueToStream<ParamType::TGLDEBUGPROC>(std::ostream &os, GLDEBUGPROC value)
 {}
 
-// TODO(jmadill): Use resource ID map. http://anglebug.com/3611
 template <>
 void WriteParamValueToStream<ParamType::TBufferID>(std::ostream &os, gl::BufferID value)
 {
-    os << value.value;
+    os << "gBufferMap[" << value.value << "]";
 }
 
 template <>
 void WriteParamValueToStream<ParamType::TFenceNVID>(std::ostream &os, gl::FenceNVID value)
 {
-    os << value.value;
+    os << "gFenceMap[" << value.value << "]";
 }
 
 template <>
 void WriteParamValueToStream<ParamType::TFramebufferID>(std::ostream &os, gl::FramebufferID value)
 {
-    os << value.value;
+    os << "gFramebufferMap[" << value.value << "]";
 }
 
 template <>
 void WriteParamValueToStream<ParamType::TMemoryObjectID>(std::ostream &os, gl::MemoryObjectID value)
 {
-    os << value.value;
+    os << "gMemoryObjectMap[" << value.value << "]";
 }
 
 template <>
 void WriteParamValueToStream<ParamType::TPathID>(std::ostream &os, gl::PathID value)
 {
-    os << value.value;
+    os << "gPathMap[" << value.value << "]";
 }
 
 template <>
 void WriteParamValueToStream<ParamType::TProgramPipelineID>(std::ostream &os,
                                                             gl::ProgramPipelineID value)
 {
-    os << value.value;
+    os << "gProgramPipelineMap[" << value.value << "]";
 }
 
 template <>
 void WriteParamValueToStream<ParamType::TQueryID>(std::ostream &os, gl::QueryID value)
 {
-    os << value.value;
+    os << "gQueryMap[" << value.value << "]";
 }
 
 template <>
 void WriteParamValueToStream<ParamType::TRenderbufferID>(std::ostream &os, gl::RenderbufferID value)
 {
-    os << value.value;
+    os << "gRenderbufferMap[" << value.value << "]";
 }
 
 template <>
 void WriteParamValueToStream<ParamType::TSamplerID>(std::ostream &os, gl::SamplerID value)
 {
-    os << value.value;
+    os << "gSamplerMap[" << value.value << "]";
 }
 
 template <>
 void WriteParamValueToStream<ParamType::TSemaphoreID>(std::ostream &os, gl::SemaphoreID value)
 {
-    os << value.value;
+    os << "gSempahoreMap[" << value.value << "]";
 }
 
 template <>
 void WriteParamValueToStream<ParamType::TShaderProgramID>(std::ostream &os,
                                                           gl::ShaderProgramID value)
 {
-    os << value.value;
+    os << "gShaderProgramMap[" << value.value << "]";
 }
 
 template <>
 void WriteParamValueToStream<ParamType::TTextureID>(std::ostream &os, gl::TextureID value)
 {
-    os << value.value;
+    os << "gTextureMap[" << value.value << "]";
 }
 
 template <>
 void WriteParamValueToStream<ParamType::TTransformFeedbackID>(std::ostream &os,
                                                               gl::TransformFeedbackID value)
 {
-    os << value.value;
+    os << "gTransformFeedbackMap[" << value.value << "]";
 }
 
 template <>
 void WriteParamValueToStream<ParamType::TVertexArrayID>(std::ostream &os, gl::VertexArrayID value)
 {
-    os << value.value;
+    os << "gVertexArrayMap[" << value.value << "]";
 }
-#endif  // ANGLE_CAPTURE_ENABLED
 }  // namespace angle
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/FrameCapture.h b/Source/ThirdParty/ANGLE/src/libANGLE/FrameCapture.h
index 2ac7b6c..da81e6a 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/FrameCapture.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/FrameCapture.h
@@ -16,8 +16,6 @@
 #include "libANGLE/entry_points_utils.h"
 #include "libANGLE/frame_capture_utils_autogen.h"
 
-#include <tuple>
-
 namespace gl
 {
 enum class GLenumGroup;
@@ -149,6 +147,21 @@
     gl::AttribArray<std::vector<uint8_t>> mClientArraysBuffer;
 };
 
+// Helper to use unique IDs for each local data variable.
+class DataCounters final : angle::NonCopyable
+{
+  public:
+    DataCounters();
+    ~DataCounters();
+
+    int getAndIncrement(gl::EntryPoint entryPoint, const std::string &paramName);
+
+  private:
+    // <CallName, ParamName>
+    using Counter = std::pair<gl::EntryPoint, std::string>;
+    std::map<Counter, int> mData;
+};
+
 class FrameCapture final : angle::NonCopyable
 {
   public:
@@ -161,42 +174,23 @@
     void replay(gl::Context *context);
 
   private:
-    // <CallName, ParamName>
-    using Counter = std::tuple<gl::EntryPoint, std::string>;
-
     void captureClientArraySnapshot(const gl::Context *context,
                                     size_t vertexCount,
                                     size_t instanceCount);
 
-    void writeCallReplay(const CallCapture &call,
-                         std::ostream &out,
-                         std::ostream &header,
-                         std::vector<uint8_t> *binaryData);
     void reset();
-    int getAndIncrementCounter(gl::EntryPoint entryPoint, const std::string &paramName);
-    bool anyClientArray() const;
-    void saveCapturedFrameAsCpp(int contextId);
-    void writeStringPointerParamReplay(std::ostream &out,
-                                       std::ostream &header,
-                                       const CallCapture &call,
-                                       const ParamCapture &param);
-    void writeRenderbufferIDPointerParamReplay(std::ostream &out,
-                                               std::ostream &header,
-                                               const CallCapture &call,
-                                               const ParamCapture &param);
-    void writeBinaryParamReplay(std::ostream &out,
-                                std::ostream &header,
-                                const CallCapture &call,
-                                const ParamCapture &param,
-                                std::vector<uint8_t> *binaryData);
     void maybeCaptureClientData(const gl::Context *context, const CallCapture &call);
     void maybeUpdateResourceIDs(const gl::Context *context, const CallCapture &call);
 
+    template <typename IDType>
+    void captureUpdateResourceIDs(const gl::Context *context,
+                                  const CallCapture &call,
+                                  const ParamCapture &param);
+
     std::vector<CallCapture> mCalls;
     gl::AttribArray<int> mClientVertexArrayMap;
-    size_t mFrameIndex;
+    uint32_t mFrameIndex;
     gl::AttribArray<size_t> mClientArraySizes;
-    std::map<Counter, int> mDataCounters;
     size_t mReadBufferSize;
 
     static void ReplayCall(gl::Context *context,
@@ -243,6 +237,13 @@
 // Pointer capture helpers.
 void CaptureMemory(const void *source, size_t size, ParamCapture *paramCapture);
 void CaptureString(const GLchar *str, ParamCapture *paramCapture);
+void CaptureGenHandlesImpl(GLsizei n, GLuint *handles, ParamCapture *paramCapture);
+
+template <typename T>
+void CaptureGenHandles(GLsizei n, T *handles, ParamCapture *paramCapture)
+{
+    CaptureGenHandlesImpl(n, reinterpret_cast<GLuint *>(handles), paramCapture);
+}
 
 template <ParamType ParamT, typename T>
 void WriteParamValueToStream(std::ostream &os, T value);
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/FrameCapture_mock.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/FrameCapture_mock.cpp
new file mode 100644
index 0000000..b0ff3a8
--- /dev/null
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/FrameCapture_mock.cpp
@@ -0,0 +1,26 @@
+//
+// 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.
+//
+// FrameCapture_mock.cpp:
+//   ANGLE mock Frame capture implementation.
+//
+
+#include "libANGLE/FrameCapture.h"
+
+#if ANGLE_CAPTURE_ENABLED
+#    error Frame capture must be disabled to include this file.
+#endif  // ANGLE_CAPTURE_ENABLED
+
+namespace angle
+{
+CallCapture::~CallCapture() {}
+ParamBuffer::~ParamBuffer() {}
+ParamCapture::~ParamCapture() {}
+
+FrameCapture::FrameCapture() {}
+FrameCapture::~FrameCapture() {}
+void FrameCapture::onEndFrame(const gl::Context *context) {}
+void FrameCapture::replay(gl::Context *context) {}
+}  // namespace angle
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/Framebuffer.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/Framebuffer.cpp
index bfbebdd..7fa5a3a 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/Framebuffer.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/Framebuffer.cpp
@@ -1974,7 +1974,7 @@
         // Regardless of if enabled or masked.
         if (checkDepth)
         {
-            if (texture->id() == depth->id())
+            if (texture->getId() == depth->id())
             {
                 return true;
             }
@@ -1982,7 +1982,7 @@
 
         if (checkStencil)
         {
-            if (texture->id() == stencil->id())
+            if (texture->getId() == stencil->id())
             {
                 return true;
             }
@@ -2005,7 +2005,7 @@
     return false;
 }
 
-bool Framebuffer::formsCopyingFeedbackLoopWith(GLuint copyTextureID,
+bool Framebuffer::formsCopyingFeedbackLoopWith(TextureID copyTextureID,
                                                GLint copyTextureLevel,
                                                GLint copyTextureLayer) const
 {
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/Framebuffer.h b/Source/ThirdParty/ANGLE/src/libANGLE/Framebuffer.h
index 94ee9f9..73d8ec8 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/Framebuffer.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/Framebuffer.h
@@ -354,7 +354,7 @@
     void onSubjectStateChange(angle::SubjectIndex index, angle::SubjectMessage message) override;
 
     bool formsRenderingFeedbackLoopWith(const Context *context) const;
-    bool formsCopyingFeedbackLoopWith(GLuint copyTextureID,
+    bool formsCopyingFeedbackLoopWith(TextureID copyTextureID,
                                       GLint copyTextureLevel,
                                       GLint copyTextureLayer) const;
 
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/FramebufferAttachment.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/FramebufferAttachment.cpp
index 9bad9e4..58f07f7 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/FramebufferAttachment.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/FramebufferAttachment.cpp
@@ -140,32 +140,32 @@
 
 GLuint FramebufferAttachment::getRedSize() const
 {
-    return getFormat().info->redBits;
+    return getSize().empty() ? 0 : getFormat().info->redBits;
 }
 
 GLuint FramebufferAttachment::getGreenSize() const
 {
-    return getFormat().info->greenBits;
+    return getSize().empty() ? 0 : getFormat().info->greenBits;
 }
 
 GLuint FramebufferAttachment::getBlueSize() const
 {
-    return getFormat().info->blueBits;
+    return getSize().empty() ? 0 : getFormat().info->blueBits;
 }
 
 GLuint FramebufferAttachment::getAlphaSize() const
 {
-    return getFormat().info->alphaBits;
+    return getSize().empty() ? 0 : getFormat().info->alphaBits;
 }
 
 GLuint FramebufferAttachment::getDepthSize() const
 {
-    return getFormat().info->depthBits;
+    return getSize().empty() ? 0 : getFormat().info->depthBits;
 }
 
 GLuint FramebufferAttachment::getStencilSize() const
 {
-    return getFormat().info->stencilBits;
+    return getSize().empty() ? 0 : getFormat().info->stencilBits;
 }
 
 GLenum FramebufferAttachment::getComponentType() const
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/FramebufferAttachment.h b/Source/ThirdParty/ANGLE/src/libANGLE/FramebufferAttachment.h
index 9416c45..1370d1b 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/FramebufferAttachment.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/FramebufferAttachment.h
@@ -92,9 +92,9 @@
     GLenum getComponentType() const;
     GLenum getColorEncoding() const;
 
-    bool isTextureWithId(GLuint textureId) const
+    bool isTextureWithId(TextureID textureId) const
     {
-        return mType == GL_TEXTURE && id() == textureId;
+        return mType == GL_TEXTURE && id() == textureId.value;
     }
     bool isRenderbufferWithId(GLuint renderbufferId) const
     {
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/GLES1State.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/GLES1State.cpp
index 2ff2b3d..f8a3024 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/GLES1State.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/GLES1State.cpp
@@ -512,6 +512,12 @@
     return attribsMask;
 }
 
+AttributesMask GLES1State::getActiveAttributesMask() const
+{
+    // The program always has 8 attributes enabled.
+    return AttributesMask(0xFF);
+}
+
 void GLES1State::setHint(GLenum target, GLenum mode)
 {
     setDirty(DIRTY_GLES1_HINT_SETTING);
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/GLES1State.h b/Source/ThirdParty/ANGLE/src/libANGLE/GLES1State.h
index b52388b..95b9f13 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/GLES1State.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/GLES1State.h
@@ -215,6 +215,7 @@
     const PointParameters &pointParameters() const;
 
     AttributesMask getVertexArraysAttributeMask() const;
+    AttributesMask getActiveAttributesMask() const;
 
     void setHint(GLenum target, GLenum mode);
     GLenum getHint(GLenum target);
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/ImageIndex.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/ImageIndex.cpp
index e301685..49ff816 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/ImageIndex.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/ImageIndex.cpp
@@ -54,6 +54,19 @@
     }
 }
 
+bool IsArrayTarget(TextureTarget target)
+{
+    switch (target)
+    {
+        case TextureTarget::_2DArray:
+        case TextureTarget::_2DMultisampleArray:
+            return true;
+        default:
+            return false;
+    }
+}
+}  // anonymous namespace
+
 TextureTarget TextureTypeToTarget(TextureType type, GLint layerIndex)
 {
     if (type == TextureType::CubeMap)
@@ -69,19 +82,6 @@
     }
 }
 
-bool IsArrayTarget(TextureTarget target)
-{
-    switch (target)
-    {
-        case TextureTarget::_2DArray:
-        case TextureTarget::_2DMultisampleArray:
-            return true;
-        default:
-            return false;
-    }
-}
-}  // anonymous namespace
-
 ImageIndex::ImageIndex()
     : mType(TextureType::InvalidEnum), mLevelIndex(0), mLayerIndex(0), mLayerCount(kEntireLevel)
 {}
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/ImageIndex.h b/Source/ThirdParty/ANGLE/src/libANGLE/ImageIndex.h
index d8402b5..53825fc 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/ImageIndex.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/ImageIndex.h
@@ -123,6 +123,9 @@
 
     ImageIndex mCurrentIndex;
 };
+
+TextureTarget TextureTypeToTarget(TextureType type, GLint layerIndex);
+
 }  // namespace gl
 
 #endif  // LIBANGLE_IMAGE_INDEX_H_
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/MemoryObject.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/MemoryObject.cpp
index 0626dd4..0629327 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/MemoryObject.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/MemoryObject.cpp
@@ -15,7 +15,7 @@
 {
 
 MemoryObject::MemoryObject(rx::GLImplFactory *factory, MemoryObjectID id)
-    : RefCountObject(id.value), mImplementation(factory->createMemoryObject())
+    : RefCountObject(id), mImplementation(factory->createMemoryObject())
 {}
 
 MemoryObject::~MemoryObject() {}
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/MemoryObject.h b/Source/ThirdParty/ANGLE/src/libANGLE/MemoryObject.h
index ca03e22..7c9a8a5 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/MemoryObject.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/MemoryObject.h
@@ -24,7 +24,7 @@
 {
 class Context;
 
-class MemoryObject final : public RefCountObject
+class MemoryObject final : public RefCountObject<MemoryObjectID>
 {
   public:
     MemoryObject(rx::GLImplFactory *factory, MemoryObjectID id);
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/MemoryProgramCache.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/MemoryProgramCache.cpp
index cff2766..13b81c7 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/MemoryProgramCache.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/MemoryProgramCache.cpp
@@ -59,6 +59,15 @@
 {
     for (const auto &binding : bindings)
     {
+        stream << binding.first << binding.second;
+    }
+    return stream;
+}
+
+HashStream &operator<<(HashStream &stream, const ProgramAliasedBindings &bindings)
+{
+    for (const auto &binding : bindings)
+    {
         stream << binding.first << binding.second.location;
     }
     return stream;
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/Program.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/Program.cpp
index d0f8b24..a160003 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/Program.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/Program.cpp
@@ -126,8 +126,7 @@
     return GL_INVALID_INDEX;
 }
 
-template <typename VarT>
-GLint GetVariableLocation(const std::vector<VarT> &list,
+GLint GetVariableLocation(const std::vector<sh::ShaderVariable> &list,
                           const std::vector<VariableLocation> &locationList,
                           const std::string &name)
 {
@@ -142,13 +141,45 @@
             continue;
         }
 
-        const VarT &variable = list[variableLocation.index];
+        const sh::ShaderVariable &variable = list[variableLocation.index];
+
+        // Array output variables may be bound out of order, so we need to ensure we only pick the
+        // first element if given the base name.
+        if ((variable.name == name) && (variableLocation.arrayIndex == 0))
+        {
+            return static_cast<GLint>(location);
+        }
+        if (variable.isArray() && variableLocation.arrayIndex == arrayIndex &&
+            angle::BeginsWith(variable.name, name, nameLengthWithoutArrayIndex))
+        {
+            return static_cast<GLint>(location);
+        }
+    }
+
+    return -1;
+}
+
+GLint GetVariableLocation(const std::vector<LinkedUniform> &list,
+                          const std::vector<VariableLocation> &locationList,
+                          const std::string &name)
+{
+    size_t nameLengthWithoutArrayIndex;
+    unsigned int arrayIndex = ParseArrayIndex(name, &nameLengthWithoutArrayIndex);
+
+    for (size_t location = 0u; location < locationList.size(); ++location)
+    {
+        const VariableLocation &variableLocation = locationList[location];
+        if (!variableLocation.used())
+        {
+            continue;
+        }
+
+        const LinkedUniform &variable = list[variableLocation.index];
 
         // Array output variables may be bound out of order, so we need to ensure we only pick the
         // first element if given the base name. Uniforms don't allow this behavior and some code
         // seemingly depends on the opposite behavior, so only enable it for output variables.
-        if (angle::BeginsWith(variable.name, name) &&
-            (!std::is_base_of<sh::ShaderVariable, VarT>::value || variableLocation.arrayIndex == 0))
+        if (angle::BeginsWith(variable.name, name) && (variableLocation.arrayIndex == 0))
         {
             if (name.length() == variable.name.length())
             {
@@ -902,6 +933,37 @@
 
 void ProgramBindings::bindLocation(GLuint index, const std::string &name)
 {
+    mBindings[name] = index;
+}
+
+int ProgramBindings::getBindingByName(const std::string &name) const
+{
+    auto iter = mBindings.find(name);
+    return (iter != mBindings.end()) ? iter->second : -1;
+}
+
+int ProgramBindings::getBinding(const sh::ShaderVariable &variable) const
+{
+    return getBindingByName(variable.name);
+}
+
+ProgramBindings::const_iterator ProgramBindings::begin() const
+{
+    return mBindings.begin();
+}
+
+ProgramBindings::const_iterator ProgramBindings::end() const
+{
+    return mBindings.end();
+}
+
+// ProgramAliasedBindings implementation.
+ProgramAliasedBindings::ProgramAliasedBindings() {}
+
+ProgramAliasedBindings::~ProgramAliasedBindings() {}
+
+void ProgramAliasedBindings::bindLocation(GLuint index, const std::string &name)
+{
     mBindings[name] = ProgramBinding(index);
 
     // EXT_blend_func_extended spec: "If it specifies the base name of an array,
@@ -923,13 +985,13 @@
     }
 }
 
-int ProgramBindings::getBindingByName(const std::string &name) const
+int ProgramAliasedBindings::getBindingByName(const std::string &name) const
 {
     auto iter = mBindings.find(name);
     return (iter != mBindings.end()) ? iter->second.location : -1;
 }
 
-int ProgramBindings::getBinding(const sh::ShaderVariable &variable) const
+int ProgramAliasedBindings::getBinding(const sh::ShaderVariable &variable) const
 {
     const std::string &name = variable.name;
 
@@ -949,17 +1011,29 @@
                 return iter->second.location;
             }
         }
+        else if (arrayIndex == GL_INVALID_INDEX)
+        {
+            auto iter = mBindings.find(variable.name);
+            // If "name" exists and is not aliased, that means it was modified more
+            // recently than its "name[0]" form and should be used instead of that.
+            if (iter != mBindings.end() && !iter->second.aliased)
+            {
+                return iter->second.location;
+            }
+            // The base name was aliased, so use the name with the array notation.
+            return getBindingByName(name + "[0]");
+        }
     }
 
     return getBindingByName(name);
 }
 
-ProgramBindings::const_iterator ProgramBindings::begin() const
+ProgramAliasedBindings::const_iterator ProgramAliasedBindings::begin() const
 {
     return mBindings.begin();
 }
 
-ProgramBindings::const_iterator ProgramBindings::end() const
+ProgramAliasedBindings::const_iterator ProgramAliasedBindings::end() const
 {
     return mBindings.end();
 }
@@ -1096,7 +1170,7 @@
 
 GLuint ProgramState::getAttributeLocation(const std::string &name) const
 {
-    for (const sh::ShaderVariable &attribute : mAttributes)
+    for (const sh::ShaderVariable &attribute : mProgramInputs)
     {
         if (attribute.name == name)
         {
@@ -1119,6 +1193,44 @@
     return false;
 }
 
+ShaderType ProgramState::getFirstAttachedShaderStageType() const
+{
+    for (const gl::ShaderType shaderType : gl::kAllGraphicsShaderTypes)
+    {
+        if (hasLinkedShaderStage(shaderType))
+        {
+            return shaderType;
+        }
+    }
+
+    if (hasLinkedShaderStage(ShaderType::Compute))
+    {
+        return ShaderType::Compute;
+    }
+
+    return ShaderType::InvalidEnum;
+}
+
+ShaderType ProgramState::getLastAttachedShaderStageType() const
+{
+    for (int i = gl::kAllGraphicsShaderTypes.size() - 1; i >= 0; --i)
+    {
+        const gl::ShaderType shaderType = gl::kAllGraphicsShaderTypes[i];
+
+        if (hasLinkedShaderStage(shaderType))
+        {
+            return shaderType;
+        }
+    }
+
+    if (hasLinkedShaderStage(ShaderType::Compute))
+    {
+        return ShaderType::Compute;
+    }
+
+    return ShaderType::InvalidEnum;
+}
+
 Program::Program(rx::GLImplFactory *factory, ShaderProgramManager *manager, ShaderProgramID handle)
     : mProgram(factory->createProgram(mState)),
       mValidated(false),
@@ -1261,7 +1373,7 @@
 
     for (const auto &binding : mFragmentInputBindings)
     {
-        if (binding.second.location != static_cast<GLuint>(index))
+        if (binding.second != static_cast<GLuint>(index))
             continue;
 
         ret.valid = true;
@@ -1364,7 +1476,8 @@
     unlink();
 
     // Re-link shaders after the unlink call.
-    ASSERT(linkValidateShaders(mInfoLog));
+    bool result = linkValidateShaders(mInfoLog);
+    ASSERT(result);
 
     std::unique_ptr<ProgramLinkedResources> resources;
     if (mState.mAttachedShaders[ShaderType::Compute])
@@ -1499,6 +1612,10 @@
     mLinkingState->resources         = std::move(resources);
     mLinkResolved                    = false;
 
+    // Must be after mProgram->link() to avoid misleading the linker about output variables.
+    mState.updateProgramInterfaceInputs();
+    mState.updateProgramInterfaceOutputs();
+
     return angle::Result::Continue;
 }
 
@@ -1637,10 +1754,81 @@
     }
 }
 
+void ProgramState::updateProgramInterfaceInputs()
+{
+    const ShaderType firstAttachedShaderType = getFirstAttachedShaderStageType();
+
+    if (firstAttachedShaderType == ShaderType::Vertex)
+    {
+        // Vertex attributes are already what we need, so nothing to do
+        return;
+    }
+
+    Shader *shader = getAttachedShader(firstAttachedShaderType);
+    ASSERT(shader);
+
+    // Copy over each input varying, since the Shader could go away
+    for (const sh::ShaderVariable &varying : shader->getInputVaryings())
+    {
+        if (varying.isStruct())
+        {
+            for (const sh::ShaderVariable &field : varying.fields)
+            {
+                sh::ShaderVariable fieldVarying = sh::ShaderVariable(field);
+                fieldVarying.location           = varying.location;
+                fieldVarying.name               = varying.name + "." + field.name;
+                mProgramInputs.emplace_back(fieldVarying);
+            }
+        }
+        else
+        {
+            mProgramInputs.emplace_back(varying);
+        }
+    }
+}
+
+void ProgramState::updateProgramInterfaceOutputs()
+{
+    const ShaderType lastAttachedShaderType = getLastAttachedShaderStageType();
+
+    if (lastAttachedShaderType == ShaderType::Fragment)
+    {
+        // Fragment outputs are already what we need, so nothing to do
+        return;
+    }
+    if (lastAttachedShaderType == ShaderType::Compute)
+    {
+        // If the program only contains a Compute Shader, then there are no user-defined outputs.
+        return;
+    }
+
+    Shader *shader = getAttachedShader(lastAttachedShaderType);
+    ASSERT(shader);
+
+    // Copy over each output varying, since the Shader could go away
+    for (const sh::ShaderVariable &varying : shader->getOutputVaryings())
+    {
+        if (varying.isStruct())
+        {
+            for (const sh::ShaderVariable &field : varying.fields)
+            {
+                sh::ShaderVariable fieldVarying = sh::ShaderVariable(field);
+                fieldVarying.location           = varying.location;
+                fieldVarying.name               = varying.name + "." + field.name;
+                mOutputVariables.emplace_back(fieldVarying);
+            }
+        }
+        else
+        {
+            mOutputVariables.emplace_back(varying);
+        }
+    }
+}
+
 // Returns the program object to an unlinked state, before re-linking, or at destruction
 void Program::unlink()
 {
-    mState.mAttributes.clear();
+    mState.mProgramInputs.clear();
     mState.mAttributesTypeMask.reset();
     mState.mAttributesMask.reset();
     mState.mActiveAttribLocationsMask.reset();
@@ -1897,8 +2085,8 @@
         return;
     }
 
-    ASSERT(index < mState.mAttributes.size());
-    const sh::ShaderVariable &attrib = mState.mAttributes[index];
+    ASSERT(index < mState.mProgramInputs.size());
+    const sh::ShaderVariable &attrib = mState.mProgramInputs[index];
 
     if (bufsize > 0)
     {
@@ -1918,7 +2106,7 @@
         return 0;
     }
 
-    return static_cast<GLint>(mState.mAttributes.size());
+    return static_cast<GLint>(mState.mProgramInputs.size());
 }
 
 GLint Program::getActiveAttributeMaxLength() const
@@ -1931,7 +2119,7 @@
 
     size_t maxLength = 0;
 
-    for (const sh::ShaderVariable &attrib : mState.mAttributes)
+    for (const sh::ShaderVariable &attrib : mState.mProgramInputs)
     {
         maxLength = std::max(attrib.name.length() + 1, maxLength);
     }
@@ -1942,7 +2130,7 @@
 const std::vector<sh::ShaderVariable> &Program::getAttributes() const
 {
     ASSERT(mLinkResolved);
-    return mState.mAttributes;
+    return mState.mProgramInputs;
 }
 
 const std::vector<SamplerBinding> &Program::getSamplerBindings() const
@@ -1978,16 +2166,124 @@
     return mState.mGeometryShaderMaxVertices;
 }
 
+const sh::ShaderVariable &Program::getInputResource(size_t index) const
+{
+    ASSERT(mLinkResolved);
+    ASSERT(index < mState.mProgramInputs.size());
+    return mState.mProgramInputs[index];
+}
+
 GLuint Program::getInputResourceIndex(const GLchar *name) const
 {
     ASSERT(mLinkResolved);
-    return GetResourceIndexFromName(mState.mAttributes, std::string(name));
+    const std::string nameString = StripLastArrayIndex(name);
+
+    for (size_t index = 0; index < mState.mProgramInputs.size(); index++)
+    {
+        sh::ShaderVariable resource = getInputResource(index);
+        if (resource.name == nameString)
+        {
+            return static_cast<GLuint>(index);
+        }
+    }
+
+    return GL_INVALID_INDEX;
+}
+
+GLuint Program::getResourceMaxNameSize(const sh::ShaderVariable &resource, GLint max) const
+{
+    if (resource.isArray())
+    {
+        return std::max(max, clampCast<GLint>((resource.name + "[0]").size()));
+    }
+    else
+    {
+        return std::max(max, clampCast<GLint>((resource.name).size()));
+    }
+}
+
+GLuint Program::getInputResourceMaxNameSize() const
+{
+    GLint max = 0;
+
+    for (const sh::ShaderVariable &resource : mState.mProgramInputs)
+    {
+        max = getResourceMaxNameSize(resource, max);
+    }
+
+    return max;
+}
+
+GLuint Program::getOutputResourceMaxNameSize() const
+{
+    GLint max = 0;
+
+    for (const sh::ShaderVariable &resource : mState.mOutputVariables)
+    {
+        max = getResourceMaxNameSize(resource, max);
+    }
+
+    return max;
+}
+
+GLuint Program::getResourceLocation(const GLchar *name, const sh::ShaderVariable &variable) const
+{
+    GLint location = variable.location;
+    if (variable.isArray())
+    {
+        size_t nameLengthWithoutArrayIndexOut;
+        size_t arrayIndex = ParseArrayIndex(name, &nameLengthWithoutArrayIndexOut);
+        // The 'name' string may not contain the array notation "[0]"
+        if (arrayIndex != GL_INVALID_INDEX)
+        {
+            location += arrayIndex;
+        }
+    }
+
+    return location;
+}
+
+GLuint Program::getInputResourceLocation(const GLchar *name) const
+{
+    const GLuint index = getInputResourceIndex(name);
+    if (index == GL_INVALID_INDEX)
+    {
+        return index;
+    }
+
+    const sh::ShaderVariable &variable = getInputResource(index);
+
+    return getResourceLocation(name, variable);
+}
+
+GLuint Program::getOutputResourceLocation(const GLchar *name) const
+{
+    const GLuint index = getOutputResourceIndex(name);
+    if (index == GL_INVALID_INDEX)
+    {
+        return index;
+    }
+
+    const sh::ShaderVariable &variable = getOutputResource(index);
+
+    return getResourceLocation(name, variable);
 }
 
 GLuint Program::getOutputResourceIndex(const GLchar *name) const
 {
     ASSERT(mLinkResolved);
-    return GetResourceIndexFromName(mState.mOutputVariables, std::string(name));
+    const std::string nameString = StripLastArrayIndex(name);
+
+    for (size_t index = 0; index < mState.mOutputVariables.size(); index++)
+    {
+        sh::ShaderVariable resource = getOutputResource(index);
+        if (resource.name == nameString)
+        {
+            return static_cast<GLuint>(index);
+        }
+    }
+
+    return GL_INVALID_INDEX;
 }
 
 size_t Program::getOutputResourceCount() const
@@ -2002,12 +2298,10 @@
     return mState.mOutputVariableTypes;
 }
 
-template <typename T>
-void Program::getResourceName(GLuint index,
-                              const std::vector<T> &resources,
+void Program::getResourceName(const std::string name,
                               GLsizei bufSize,
                               GLsizei *length,
-                              GLchar *name) const
+                              GLchar *dest) const
 {
     if (length)
     {
@@ -2018,16 +2312,14 @@
     {
         if (bufSize > 0)
         {
-            name[0] = '\0';
+            dest[0] = '\0';
         }
         return;
     }
-    ASSERT(index < resources.size());
-    const auto &resource = resources[index];
 
     if (bufSize > 0)
     {
-        CopyStringToBuffer(name, resource.name, bufSize, length);
+        CopyStringToBuffer(dest, name, bufSize, length);
     }
 }
 
@@ -2037,7 +2329,7 @@
                                    GLchar *name) const
 {
     ASSERT(mLinkResolved);
-    getResourceName(index, mState.mAttributes, bufSize, length, name);
+    getResourceName(getInputResourceName(index), bufSize, length, name);
 }
 
 void Program::getOutputResourceName(GLuint index,
@@ -2046,7 +2338,7 @@
                                     GLchar *name) const
 {
     ASSERT(mLinkResolved);
-    getResourceName(index, mState.mOutputVariables, bufSize, length, name);
+    getResourceName(getOutputResourceName(index), bufSize, length, name);
 }
 
 void Program::getUniformResourceName(GLuint index,
@@ -2055,7 +2347,8 @@
                                      GLchar *name) const
 {
     ASSERT(mLinkResolved);
-    getResourceName(index, mState.mUniforms, bufSize, length, name);
+    ASSERT(index < mState.mUniforms.size());
+    getResourceName(mState.mUniforms[index].name, bufSize, length, name);
 }
 
 void Program::getBufferVariableResourceName(GLuint index,
@@ -2064,17 +2357,39 @@
                                             GLchar *name) const
 {
     ASSERT(mLinkResolved);
-    getResourceName(index, mState.mBufferVariables, bufSize, length, name);
+    ASSERT(index < mState.mBufferVariables.size());
+    getResourceName(mState.mBufferVariables[index].name, bufSize, length, name);
 }
 
-const sh::ShaderVariable &Program::getInputResource(GLuint index) const
+const std::string Program::getResourceName(const sh::ShaderVariable &resource) const
+{
+    std::string resourceName = resource.name;
+
+    if (resource.isArray())
+    {
+        resourceName += "[0]";
+    }
+
+    return resourceName;
+}
+
+const std::string Program::getInputResourceName(GLuint index) const
 {
     ASSERT(mLinkResolved);
-    ASSERT(index < mState.mAttributes.size());
-    return mState.mAttributes[index];
+    const sh::ShaderVariable &resource = getInputResource(index);
+
+    return getResourceName(resource);
 }
 
-const sh::ShaderVariable &Program::getOutputResource(GLuint index) const
+const std::string Program::getOutputResourceName(GLuint index) const
+{
+    ASSERT(mLinkResolved);
+    const sh::ShaderVariable &resource = getOutputResource(index);
+
+    return getResourceName(resource);
+}
+
+const sh::ShaderVariable &Program::getOutputResource(size_t index) const
 {
     ASSERT(mLinkResolved);
     ASSERT(index < mState.mOutputVariables.size());
@@ -2086,7 +2401,7 @@
     ASSERT(mLinkResolved);
     return mAttributeBindings;
 }
-const ProgramBindings &Program::getUniformLocationBindings() const
+const ProgramAliasedBindings &Program::getUniformLocationBindings() const
 {
     ASSERT(mLinkResolved);
     return mUniformLocationBindings;
@@ -3167,7 +3482,7 @@
 
 bool Program::linkUniforms(const Caps &caps,
                            InfoLog &infoLog,
-                           const ProgramBindings &uniformLocationBindings,
+                           const ProgramAliasedBindings &uniformLocationBindings,
                            GLuint *combinedImageUniformsCount,
                            std::vector<UnusedUniform> *unusedUniforms)
 {
@@ -3321,19 +3636,19 @@
         // In GLSL ES 3.00.6, aliasing checks should be done with all declared attributes -
         // see GLSL ES 3.00.6 section 12.46. Inactive attributes will be pruned after
         // aliasing checks.
-        mState.mAttributes = vertexShader->getAllAttributes();
+        mState.mProgramInputs = vertexShader->getAllAttributes();
     }
     else
     {
         // In GLSL ES 1.00.17 we only do aliasing checks for active attributes.
-        mState.mAttributes = vertexShader->getActiveAttributes();
+        mState.mProgramInputs = vertexShader->getActiveAttributes();
     }
 
     GLuint maxAttribs = caps.maxVertexAttributes;
     std::vector<sh::ShaderVariable *> usedAttribMap(maxAttribs, nullptr);
 
     // Assign locations to attributes that have a binding location and check for attribute aliasing.
-    for (sh::ShaderVariable &attribute : mState.mAttributes)
+    for (sh::ShaderVariable &attribute : mState.mProgramInputs)
     {
         // GLSL ES 3.10 January 2016 section 4.3.4: Vertex shader inputs can't be arrays or
         // structures, so we don't need to worry about adjusting their names or generating entries
@@ -3389,7 +3704,7 @@
     }
 
     // Assign locations to attributes that don't have a binding location.
-    for (sh::ShaderVariable &attribute : mState.mAttributes)
+    for (sh::ShaderVariable &attribute : mState.mProgramInputs)
     {
         // Not set by glBindAttribLocation or by location layout qualifier
         if (attribute.location == -1)
@@ -3414,8 +3729,8 @@
     // shader versions we're only processing active attributes to begin with.
     if (shaderVersion >= 300)
     {
-        for (auto attributeIter = mState.mAttributes.begin();
-             attributeIter != mState.mAttributes.end();)
+        for (auto attributeIter = mState.mProgramInputs.begin();
+             attributeIter != mState.mProgramInputs.end();)
         {
             if (attributeIter->active)
             {
@@ -3423,12 +3738,12 @@
             }
             else
             {
-                attributeIter = mState.mAttributes.erase(attributeIter);
+                attributeIter = mState.mProgramInputs.erase(attributeIter);
             }
         }
     }
 
-    for (const sh::ShaderVariable &attribute : mState.mAttributes)
+    for (const sh::ShaderVariable &attribute : mState.mProgramInputs)
     {
         ASSERT(attribute.active);
         ASSERT(attribute.location != -1);
@@ -3895,7 +4210,7 @@
                     uniformBlockFieldMap[field.name];
                 for (const auto &prevBlockFieldPair : prevBlockFieldPairs)
                 {
-                    const sh::InterfaceBlock *prevUniformBlock = prevBlockFieldPair.first;
+                    const sh::InterfaceBlock *prevUniformBlock      = prevBlockFieldPair.first;
                     const sh::ShaderVariable *prevUniformBlockField = prevBlockFieldPair.second;
 
                     if (uniformBlock.isSameInterfaceBlockAtLinkTime(*prevUniformBlock))
@@ -3991,21 +4306,18 @@
 {
     ProgramMergedVaryings merged;
 
-    Shader *vertexShader = mState.mAttachedShaders[ShaderType::Vertex];
-    if (vertexShader)
+    for (Shader *shader : mState.mAttachedShaders)
     {
-        for (const sh::ShaderVariable &varying : vertexShader->getOutputVaryings())
+        if (shader)
         {
-            merged[varying.name].vertex = &varying;
-        }
-    }
-
-    Shader *fragmentShader = mState.mAttachedShaders[ShaderType::Fragment];
-    if (fragmentShader)
-    {
-        for (const sh::ShaderVariable &varying : fragmentShader->getInputVaryings())
-        {
-            merged[varying.name].fragment = &varying;
+            for (const sh::ShaderVariable &varying : shader->getOutputVaryings())
+            {
+                merged[varying.name].frontShader = &varying;
+            }
+            for (const sh::ShaderVariable &varying : shader->getInputVaryings())
+            {
+                merged[varying.name].backShader = &varying;
+            }
         }
     }
 
@@ -4085,7 +4397,8 @@
                            unsigned int baseLocation,
                            unsigned int elementCount,
                            const std::vector<VariableLocation> &reservedLocations,
-                           unsigned int variableIndex)
+                           unsigned int variableIndex,
+                           sh::ShaderVariable &outputVariable)
 {
     if (baseLocation + elementCount > outputLocations.size())
     {
@@ -4097,6 +4410,7 @@
         if (std::find(reservedLocations.begin(), reservedLocations.end(), locationInfo) ==
             reservedLocations.end())
         {
+            outputVariable.location     = baseLocation;
             const unsigned int location = baseLocation + elementIndex;
             outputLocations[location]   = locationInfo;
         }
@@ -4184,17 +4498,6 @@
     mState.mOutputVariables = outputVariables;
     // TODO(jmadill): any caps validation here?
 
-    for (sh::ShaderVariable &outputVariable : mState.mOutputVariables)
-    {
-        if (outputVariable.isArray())
-        {
-            // We're following the GLES 3.1 November 2016 spec section 7.3.1.1 Naming Active
-            // Resources and including [0] at the end of array variable names.
-            outputVariable.name += "[0]";
-            outputVariable.mappedName += "[0]";
-        }
-    }
-
     // EXT_blend_func_extended doesn't specify anything related to binding specific elements of an
     // output array in explicit terms.
     //
@@ -4298,7 +4601,7 @@
             return false;
         }
         AssignOutputLocations(outputLocations, baseLocation, elementCount, reservedLocations,
-                              outputVariableIndex);
+                              outputVariableIndex, mState.mOutputVariables[outputVariableIndex]);
     }
 
     // Here we assign locations for the output variables that don't yet have them. Note that we're
@@ -4346,7 +4649,8 @@
                 baseLocation++;
             }
             AssignOutputLocations(outputLocations, baseLocation, elementCount, reservedLocations,
-                                  outputVariableIndex);
+                                  outputVariableIndex,
+                                  mState.mOutputVariables[outputVariableIndex]);
         }
 
         // Check for any elements assigned above the max location that are actually used.
@@ -4682,8 +4986,8 @@
 
     stream.writeInt(mState.getActiveAttribLocationsMask().to_ulong());
 
-    stream.writeInt(mState.getAttributes().size());
-    for (const sh::ShaderVariable &attrib : mState.getAttributes())
+    stream.writeInt(mState.getProgramInputs().size());
+    for (const sh::ShaderVariable &attrib : mState.getProgramInputs())
     {
         WriteShaderVar(&stream, attrib);
         stream.writeInt(attrib.location);
@@ -4876,13 +5180,13 @@
     mState.mActiveAttribLocationsMask = stream.readInt<gl::AttributesMask>();
 
     unsigned int attribCount = stream.readInt<unsigned int>();
-    ASSERT(mState.mAttributes.empty());
+    ASSERT(mState.mProgramInputs.empty());
     for (unsigned int attribIndex = 0; attribIndex < attribCount; ++attribIndex)
     {
         sh::ShaderVariable attrib;
         LoadShaderVar(&stream, &attrib);
         attrib.location = stream.readInt<int>();
-        mState.mAttributes.push_back(attrib);
+        mState.mProgramInputs.push_back(attrib);
     }
 
     unsigned int uniformCount = stream.readInt<unsigned int>();
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/Program.h b/Source/ThirdParty/ANGLE/src/libANGLE/Program.h
index cc2686c..c028b23 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/Program.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/Program.h
@@ -321,7 +321,7 @@
     {
         return mActiveUniformBlockBindings;
     }
-    const std::vector<sh::ShaderVariable> &getAttributes() const { return mAttributes; }
+    const std::vector<sh::ShaderVariable> &getProgramInputs() const { return mProgramInputs; }
     const AttributesMask &getActiveAttribLocationsMask() const
     {
         return mActiveAttribLocationsMask;
@@ -400,6 +400,8 @@
     {
         return mActiveSamplerFormats[textureUnitIndex];
     }
+    ShaderType getFirstAttachedShaderStageType() const;
+    ShaderType getLastAttachedShaderStageType() const;
 
   private:
     friend class MemoryProgramCache;
@@ -408,6 +410,8 @@
     void updateTransformFeedbackStrides();
     void updateActiveSamplers();
     void updateActiveImages();
+    void updateProgramInterfaceInputs();
+    void updateProgramInterfaceOutputs();
 
     // Scans the sampler bindings for type conflicts with sampler 'textureUnitIndex'.
     void setSamplerUniformTextureTypeAndFormat(size_t textureUnitIndex);
@@ -425,7 +429,8 @@
     // For faster iteration on the blocks currently being bound.
     UniformBlockBindingMask mActiveUniformBlockBindings;
 
-    std::vector<sh::ShaderVariable> mAttributes;
+    // Vertex attributes, Fragment input varyings, etc.
+    std::vector<sh::ShaderVariable> mProgramInputs;
     angle::BitSet<MAX_VERTEX_ATTRIBS> mActiveAttribLocationsMask;
     unsigned int mMaxActiveAttribLocation;
     ComponentTypeMask mAttributesTypeMask;
@@ -531,6 +536,25 @@
     int getBindingByName(const std::string &name) const;
     int getBinding(const sh::ShaderVariable &variable) const;
 
+    using const_iterator = std::unordered_map<std::string, GLuint>::const_iterator;
+    const_iterator begin() const;
+    const_iterator end() const;
+
+  private:
+    std::unordered_map<std::string, GLuint> mBindings;
+};
+
+// Uniforms and Fragment Outputs require special treatment due to array notation (e.g., "[0]")
+class ProgramAliasedBindings final : angle::NonCopyable
+{
+  public:
+    ProgramAliasedBindings();
+    ~ProgramAliasedBindings();
+
+    void bindLocation(GLuint index, const std::string &name);
+    int getBindingByName(const std::string &name) const;
+    int getBinding(const sh::ShaderVariable &variable) const;
+
     using const_iterator = std::unordered_map<std::string, ProgramBinding>::const_iterator;
     const_iterator begin() const;
     const_iterator end() const;
@@ -541,10 +565,10 @@
 
 struct ProgramVaryingRef
 {
-    const sh::ShaderVariable *get() const { return vertex ? vertex : fragment; }
+    const sh::ShaderVariable *get() const { return frontShader ? frontShader : backShader; }
 
-    const sh::ShaderVariable *vertex   = nullptr;
-    const sh::ShaderVariable *fragment = nullptr;
+    const sh::ShaderVariable *frontShader = nullptr;
+    const sh::ShaderVariable *backShader  = nullptr;
 };
 
 using ProgramMergedVaryings = std::map<std::string, ProgramVaryingRef>;
@@ -879,12 +903,21 @@
                                        GLsizei bufSize,
                                        GLsizei *length,
                                        GLchar *name) const;
-    const sh::ShaderVariable &getInputResource(GLuint index) const;
-    const sh::ShaderVariable &getOutputResource(GLuint index) const;
+    const sh::ShaderVariable &getInputResource(size_t index) const;
+    GLuint getResourceMaxNameSize(const sh::ShaderVariable &resource, GLint max) const;
+    GLuint getInputResourceMaxNameSize() const;
+    GLuint getOutputResourceMaxNameSize() const;
+    GLuint getResourceLocation(const GLchar *name, const sh::ShaderVariable &variable) const;
+    GLuint getInputResourceLocation(const GLchar *name) const;
+    GLuint getOutputResourceLocation(const GLchar *name) const;
+    const std::string getResourceName(const sh::ShaderVariable &resource) const;
+    const std::string getInputResourceName(GLuint index) const;
+    const std::string getOutputResourceName(GLuint index) const;
+    const sh::ShaderVariable &getOutputResource(size_t index) const;
 
     const ProgramBindings &getAttributeBindings() const;
-    const ProgramBindings &getUniformLocationBindings() const;
     const ProgramBindings &getFragmentInputBindings() const;
+    const ProgramAliasedBindings &getUniformLocationBindings() const;
 
     int getNumViews() const
     {
@@ -958,7 +991,7 @@
 
     bool linkUniforms(const Caps &caps,
                       InfoLog &infoLog,
-                      const ProgramBindings &uniformLocationBindings,
+                      const ProgramAliasedBindings &uniformLocationBindings,
                       GLuint *combinedImageUniformsCount,
                       std::vector<UnusedUniform> *unusedUniforms);
     void linkSamplerAndImageBindings(GLuint *combinedImageUniformsCount);
@@ -1024,12 +1057,10 @@
                             GLenum nativeType,
                             int components) const;
 
-    template <typename T>
-    void getResourceName(GLuint index,
-                         const std::vector<T> &resources,
+    void getResourceName(const std::string name,
                          GLsizei bufSize,
                          GLsizei *length,
-                         GLchar *name) const;
+                         GLchar *dest) const;
 
     template <typename T>
     GLint getActiveInterfaceBlockMaxNameLength(const std::vector<T> &resources) const;
@@ -1053,14 +1084,14 @@
 
     // Note that this has nothing to do with binding layout qualifiers that can be set for some
     // uniforms in GLES3.1+. It is used to pre-set the location of uniforms.
-    ProgramBindings mUniformLocationBindings;
+    ProgramAliasedBindings mUniformLocationBindings;
 
     // CHROMIUM_path_rendering
     ProgramBindings mFragmentInputBindings;
 
     // EXT_blend_func_extended
-    ProgramBindings mFragmentOutputLocations;
-    ProgramBindings mFragmentOutputIndexes;
+    ProgramAliasedBindings mFragmentOutputLocations;
+    ProgramAliasedBindings mFragmentOutputIndexes;
 
     bool mLinked;
     bool mLinkResolved;
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/ProgramLinkedResources.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/ProgramLinkedResources.cpp
index f743a36..90849cf 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/ProgramLinkedResources.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/ProgramLinkedResources.cpp
@@ -670,7 +670,7 @@
 
 bool UniformLinker::link(const Caps &caps,
                          InfoLog &infoLog,
-                         const ProgramBindings &uniformLocationBindings)
+                         const ProgramAliasedBindings &uniformLocationBindings)
 {
     if (mState.getAttachedShader(ShaderType::Vertex) &&
         mState.getAttachedShader(ShaderType::Fragment))
@@ -735,7 +735,8 @@
     return true;
 }
 
-bool UniformLinker::indexUniforms(InfoLog &infoLog, const ProgramBindings &uniformLocationBindings)
+bool UniformLinker::indexUniforms(InfoLog &infoLog,
+                                  const ProgramAliasedBindings &uniformLocationBindings)
 {
     // Locations which have been allocated for an unused uniform.
     std::set<GLuint> ignoredLocations;
@@ -830,7 +831,7 @@
 
 bool UniformLinker::gatherUniformLocationsAndCheckConflicts(
     InfoLog &infoLog,
-    const ProgramBindings &uniformLocationBindings,
+    const ProgramAliasedBindings &uniformLocationBindings,
     std::set<GLuint> *ignoredLocations,
     int *maxUniformLocation)
 {
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/ProgramLinkedResources.h b/Source/ThirdParty/ANGLE/src/libANGLE/ProgramLinkedResources.h
index 9b00190..7c2ba27 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/ProgramLinkedResources.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/ProgramLinkedResources.h
@@ -40,6 +40,7 @@
 struct LinkedUniform;
 class ProgramState;
 class ProgramBindings;
+class ProgramAliasedBindings;
 class Shader;
 struct ShaderVariableBuffer;
 struct UnusedUniform;
@@ -53,7 +54,9 @@
     UniformLinker(const ProgramState &state);
     ~UniformLinker();
 
-    bool link(const Caps &caps, InfoLog &infoLog, const ProgramBindings &uniformLocationBindings);
+    bool link(const Caps &caps,
+              InfoLog &infoLog,
+              const ProgramAliasedBindings &uniformLocationBindings);
 
     void getResults(std::vector<LinkedUniform> *uniforms,
                     std::vector<UnusedUniform> *unusedUniforms,
@@ -73,11 +76,12 @@
     bool flattenUniformsAndCheckCaps(const Caps &caps, InfoLog &infoLog);
     bool checkMaxCombinedAtomicCounters(const Caps &caps, InfoLog &infoLog);
 
-    bool indexUniforms(InfoLog &infoLog, const ProgramBindings &uniformLocationBindings);
-    bool gatherUniformLocationsAndCheckConflicts(InfoLog &infoLog,
-                                                 const ProgramBindings &uniformLocationBindings,
-                                                 std::set<GLuint> *ignoredLocations,
-                                                 int *maxUniformLocation);
+    bool indexUniforms(InfoLog &infoLog, const ProgramAliasedBindings &uniformLocationBindings);
+    bool gatherUniformLocationsAndCheckConflicts(
+        InfoLog &infoLog,
+        const ProgramAliasedBindings &uniformLocationBindings,
+        std::set<GLuint> *ignoredLocations,
+        int *maxUniformLocation);
     void pruneUnusedUniforms();
 
     const ProgramState &mState;
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/ProgramPipeline.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/ProgramPipeline.cpp
index 821c9f9..d86596a 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/ProgramPipeline.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/ProgramPipeline.cpp
@@ -27,7 +27,7 @@
 }
 
 ProgramPipeline::ProgramPipeline(rx::GLImplFactory *factory, ProgramPipelineID handle)
-    : RefCountObject(handle.value), mProgramPipeline(factory->createProgramPipeline(mState))
+    : RefCountObject(handle), mProgramPipeline(factory->createProgramPipeline(mState))
 {
     ASSERT(mProgramPipeline);
 }
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/ProgramPipeline.h b/Source/ThirdParty/ANGLE/src/libANGLE/ProgramPipeline.h
index 2394040..6da4103 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/ProgramPipeline.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/ProgramPipeline.h
@@ -42,7 +42,7 @@
     std::string mLabel;
 };
 
-class ProgramPipeline final : public RefCountObject, public LabeledObject
+class ProgramPipeline final : public RefCountObject<ProgramPipelineID>, public LabeledObject
 {
   public:
     ProgramPipeline(rx::GLImplFactory *factory, ProgramPipelineID handle);
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/Query.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/Query.cpp
index e4c4eb5..f3ad0a8 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/Query.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/Query.cpp
@@ -11,7 +11,7 @@
 
 namespace gl
 {
-Query::Query(rx::QueryImpl *impl, QueryID id) : RefCountObject(id.value), mQuery(impl), mLabel() {}
+Query::Query(rx::QueryImpl *impl, QueryID id) : RefCountObject(id), mQuery(impl), mLabel() {}
 
 Query::~Query()
 {
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/Query.h b/Source/ThirdParty/ANGLE/src/libANGLE/Query.h
index 57fc9df..ec68629 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/Query.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/Query.h
@@ -26,7 +26,7 @@
 namespace gl
 {
 
-class Query final : public RefCountObject, public LabeledObject
+class Query final : public RefCountObject<QueryID>, public LabeledObject
 {
   public:
     Query(rx::QueryImpl *impl, QueryID id);
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/RefCountObject.h b/Source/ThirdParty/ANGLE/src/libANGLE/RefCountObject.h
index b34fe7c..e17a9cf 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/RefCountObject.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/RefCountObject.h
@@ -13,6 +13,7 @@
 #define LIBANGLE_REFCOUNTOBJECT_H_
 
 #include "angle_gl.h"
+#include "common/PackedEnums.h"
 #include "common/debug.h"
 #include "libANGLE/Error.h"
 #include "libANGLE/Observer.h"
@@ -135,18 +136,19 @@
 
 using RefCountObjectNoID = angle::RefCountObject<Context, angle::Result>;
 
+template <typename IDType>
 class RefCountObject : public gl::RefCountObjectNoID
 {
   public:
-    explicit RefCountObject(GLuint id) : mId(id) {}
+    explicit RefCountObject(IDType id) : mId(id) {}
 
-    GLuint id() const { return mId; }
+    IDType id() const { return mId; }
 
   protected:
     ~RefCountObject() override {}
 
   private:
-    GLuint mId;
+    IDType mId;
 };
 
 template <class ObjectType>
@@ -160,10 +162,12 @@
 
     BindingPointer(ObjectType *object) : angle::BindingPointer<ObjectType, Context>(object) {}
 
-    GLuint id() const
+    typename ResourceTypeToID<ObjectType>::IDType id() const
     {
         ObjectType *obj = this->get();
-        return obj ? obj->id() : 0;
+        if (obj)
+            return obj->id();
+        return {0};
     }
 };
 
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/Renderbuffer.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/Renderbuffer.cpp
index 421b1f3..25ae10f 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/Renderbuffer.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/Renderbuffer.cpp
@@ -64,7 +64,7 @@
 
 // Renderbuffer implementation.
 Renderbuffer::Renderbuffer(rx::GLImplFactory *implFactory, RenderbufferID id)
-    : RefCountObject(id.value),
+    : RefCountObject(id),
       mState(),
       mImplementation(implFactory->createRenderbuffer(mState)),
       mLabel()
@@ -223,7 +223,7 @@
 
 GLuint Renderbuffer::getId() const
 {
-    return id();
+    return id().value;
 }
 
 Extents Renderbuffer::getAttachmentSize(const gl::ImageIndex & /*imageIndex*/) const
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/Renderbuffer.h b/Source/ThirdParty/ANGLE/src/libANGLE/Renderbuffer.h
index 05fd487..d4344e0 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/Renderbuffer.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/Renderbuffer.h
@@ -61,7 +61,9 @@
     InitState mInitState;
 };
 
-class Renderbuffer final : public RefCountObject, public egl::ImageSibling, public LabeledObject
+class Renderbuffer final : public RefCountObject<RenderbufferID>,
+                           public egl::ImageSibling,
+                           public LabeledObject
 {
   public:
     Renderbuffer(rx::GLImplFactory *implFactory, RenderbufferID id);
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/Sampler.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/Sampler.cpp
index cbef0b3..fc19fbb 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/Sampler.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/Sampler.cpp
@@ -16,11 +16,7 @@
 {
 
 Sampler::Sampler(rx::GLImplFactory *factory, SamplerID id)
-    : RefCountObject(id.value),
-      mState(),
-      mDirty(true),
-      mSampler(factory->createSampler(mState)),
-      mLabel()
+    : RefCountObject(id), mState(), mDirty(true), mSampler(factory->createSampler(mState)), mLabel()
 {}
 
 Sampler::~Sampler()
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/Sampler.h b/Source/ThirdParty/ANGLE/src/libANGLE/Sampler.h
index b75dba3..443aefd 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/Sampler.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/Sampler.h
@@ -24,7 +24,7 @@
 namespace gl
 {
 
-class Sampler final : public RefCountObject, public LabeledObject, public angle::Subject
+class Sampler final : public RefCountObject<SamplerID>, public LabeledObject, public angle::Subject
 {
   public:
     Sampler(rx::GLImplFactory *factory, SamplerID id);
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/Semaphore.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/Semaphore.cpp
index 5542100..5f7e0bc 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/Semaphore.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/Semaphore.cpp
@@ -15,7 +15,7 @@
 {
 
 Semaphore::Semaphore(rx::GLImplFactory *factory, SemaphoreID id)
-    : RefCountObject(id.value), mImplementation(factory->createSemaphore())
+    : RefCountObject(id), mImplementation(factory->createSemaphore())
 {}
 
 Semaphore::~Semaphore() {}
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/Semaphore.h b/Source/ThirdParty/ANGLE/src/libANGLE/Semaphore.h
index c549a16..62230a3 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/Semaphore.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/Semaphore.h
@@ -27,7 +27,7 @@
 {
 class Context;
 
-class Semaphore final : public RefCountObject
+class Semaphore final : public RefCountObject<SemaphoreID>
 {
   public:
     Semaphore(rx::GLImplFactory *factory, SemaphoreID id);
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/Shader.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/Shader.cpp
index 9c26bb1..df08f70 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/Shader.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/Shader.cpp
@@ -472,7 +472,7 @@
         {
             mState.mAllAttributes    = GetShaderVariables(sh::GetAttributes(compilerHandle));
             mState.mActiveAttributes = GetActiveShaderVariables(&mState.mAllAttributes);
-            mState.mInputVaryings = GetShaderVariables(sh::GetInputVaryings(compilerHandle));
+            mState.mInputVaryings    = GetShaderVariables(sh::GetInputVaryings(compilerHandle));
             // TODO(jmadill): Figure out why we only sort in the FS, and if we need to.
             std::sort(mState.mInputVaryings.begin(), mState.mInputVaryings.end(), CompareShaderVar);
             mState.mActiveOutputVariables =
@@ -610,7 +610,8 @@
 std::string Shader::getTransformFeedbackVaryingMappedName(const std::string &tfVaryingName)
 {
     // TODO(jiawei.shao@intel.com): support transform feedback on geometry shader.
-    ASSERT(mState.getShaderType() == ShaderType::Vertex);
+    ASSERT(mState.getShaderType() == ShaderType::Vertex ||
+           mState.getShaderType() == ShaderType::Geometry);
     const auto &varyings = getOutputVaryings();
     auto bracketPos      = tfVaryingName.find("[");
     if (bracketPos != std::string::npos)
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/State.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/State.cpp
index dca047a..1421b86 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/State.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/State.cpp
@@ -1163,7 +1163,7 @@
     return getSamplerTexture(static_cast<unsigned int>(mActiveSampler), type);
 }
 
-GLuint State::getSamplerTextureId(unsigned int sampler, TextureType type) const
+TextureID State::getSamplerTextureId(unsigned int sampler, TextureType type) const
 {
     ASSERT(sampler < mSamplerTextures[type].size());
     return mSamplerTextures[type][sampler].id();
@@ -1187,7 +1187,7 @@
         for (size_t bindingIndex = 0; bindingIndex < textureVector.size(); ++bindingIndex)
         {
             BindingPointer<Texture> &binding = textureVector[bindingIndex];
-            if (binding.id() == texture.value)
+            if (binding.id() == texture)
             {
                 // Zero textures are the "default" textures instead of NULL
                 Texture *zeroTexture = zeroTextures[type].get();
@@ -1203,7 +1203,7 @@
 
     for (auto &bindingImageUnit : mImageUnits)
     {
-        if (bindingImageUnit.texture.id() == texture.value)
+        if (bindingImageUnit.texture.id() == texture)
         {
             bindingImageUnit.texture.set(context, nullptr);
             bindingImageUnit.level   = 0;
@@ -1265,7 +1265,7 @@
     // which the sampler is bound, with unit set to the texture unit and sampler set to zero.
     for (size_t i = 0; i < mSamplers.size(); i++)
     {
-        if (mSamplers[i].id() == sampler.value)
+        if (mSamplers[i].id() == sampler)
         {
             setSamplerBinding(context, static_cast<GLuint>(i), nullptr);
         }
@@ -1284,7 +1284,7 @@
     // If a renderbuffer that is currently bound to RENDERBUFFER is deleted, it is as though
     // BindRenderbuffer had been executed with the target RENDERBUFFER and name of zero.
 
-    if (mRenderbuffer.id() == renderbuffer.value)
+    if (mRenderbuffer.id() == renderbuffer)
     {
         setRenderbufferBinding(context, nullptr);
     }
@@ -1493,7 +1493,7 @@
 bool State::removeTransformFeedbackBinding(const Context *context,
                                            TransformFeedbackID transformFeedback)
 {
-    if (mTransformFeedback.id() == transformFeedback.value)
+    if (mTransformFeedback.id() == transformFeedback)
     {
         if (mTransformFeedback.get())
             mTransformFeedback->onBindingChanged(context, false);
@@ -1550,10 +1550,14 @@
     mActiveQueries[type].set(context, query);
 }
 
-GLuint State::getActiveQueryId(QueryType type) const
+QueryID State::getActiveQueryId(QueryType type) const
 {
     const Query *query = getActiveQuery(type);
-    return (query ? query->id() : 0u);
+    if (query)
+    {
+        return query->id();
+    }
+    return {0};
 }
 
 Query *State::getActiveQuery(QueryType type) const
@@ -1620,10 +1624,10 @@
     {
         return angle::Result::Continue;
     }
-    GLuint bufferName = buffer->id();
-    for (auto target : angle::AllEnums<BufferBinding>())
+    BufferID bufferID = buffer->id();
+    for (gl::BufferBinding target : angle::AllEnums<BufferBinding>())
     {
-        if (mBoundBuffers[target].id() == bufferName)
+        if (mBoundBuffers[target].id() == bufferID)
         {
             UpdateBufferBinding(context, &mBoundBuffers[target], nullptr, target);
         }
@@ -1632,10 +1636,10 @@
     TransformFeedback *curTransformFeedback = getCurrentTransformFeedback();
     if (curTransformFeedback)
     {
-        ANGLE_TRY(curTransformFeedback->detachBuffer(context, bufferName));
+        ANGLE_TRY(curTransformFeedback->detachBuffer(context, bufferID));
     }
 
-    if (getVertexArray()->detachBuffer(context, bufferName))
+    if (getVertexArray()->detachBuffer(context, bufferID))
     {
         mDirtyObjects.set(DIRTY_OBJECT_VERTEX_ARRAY);
         context->getStateCache().onVertexArrayStateChange(context);
@@ -1643,7 +1647,7 @@
 
     for (auto &buf : mUniformBuffers)
     {
-        if (buf.id() == bufferName)
+        if (buf.id() == bufferID)
         {
             UpdateIndexedBufferBinding(context, &buf, nullptr, BufferBinding::Uniform, 0, 0);
         }
@@ -1651,7 +1655,7 @@
 
     for (auto &buf : mAtomicCounterBuffers)
     {
-        if (buf.id() == bufferName)
+        if (buf.id() == bufferID)
         {
             UpdateIndexedBufferBinding(context, &buf, nullptr, BufferBinding::AtomicCounter, 0, 0);
         }
@@ -1659,7 +1663,7 @@
 
     for (auto &buf : mShaderStorageBuffers)
     {
-        if (buf.id() == bufferName)
+        if (buf.id() == bufferID)
         {
             UpdateIndexedBufferBinding(context, &buf, nullptr, BufferBinding::ShaderStorage, 0, 0);
         }
@@ -2067,15 +2071,15 @@
     switch (pname)
     {
         case GL_ARRAY_BUFFER_BINDING:
-            *params = mBoundBuffers[BufferBinding::Array].id();
+            *params = mBoundBuffers[BufferBinding::Array].id().value;
             break;
         case GL_DRAW_INDIRECT_BUFFER_BINDING:
-            *params = mBoundBuffers[BufferBinding::DrawIndirect].id();
+            *params = mBoundBuffers[BufferBinding::DrawIndirect].id().value;
             break;
         case GL_ELEMENT_ARRAY_BUFFER_BINDING:
         {
             Buffer *elementArrayBuffer = getVertexArray()->getElementArrayBuffer();
-            *params                    = elementArrayBuffer ? elementArrayBuffer->id() : 0;
+            *params                    = elementArrayBuffer ? elementArrayBuffer->id().value : 0;
             break;
         }
         case GL_DRAW_FRAMEBUFFER_BINDING:
@@ -2089,7 +2093,7 @@
             *params = mReadFramebuffer->id().value;
             break;
         case GL_RENDERBUFFER_BINDING:
-            *params = mRenderbuffer.id();
+            *params = mRenderbuffer.id().value;
             break;
         case GL_VERTEX_ARRAY_BINDING:
             *params = mVertexArray->id().value;
@@ -2326,70 +2330,78 @@
         case GL_TEXTURE_BINDING_2D:
             ASSERT(mActiveSampler < mMaxCombinedTextureImageUnits);
             *params =
-                getSamplerTextureId(static_cast<unsigned int>(mActiveSampler), TextureType::_2D);
+                getSamplerTextureId(static_cast<unsigned int>(mActiveSampler), TextureType::_2D)
+                    .value;
             break;
         case GL_TEXTURE_BINDING_RECTANGLE_ANGLE:
             ASSERT(mActiveSampler < mMaxCombinedTextureImageUnits);
             *params = getSamplerTextureId(static_cast<unsigned int>(mActiveSampler),
-                                          TextureType::Rectangle);
+                                          TextureType::Rectangle)
+                          .value;
             break;
         case GL_TEXTURE_BINDING_CUBE_MAP:
             ASSERT(mActiveSampler < mMaxCombinedTextureImageUnits);
-            *params = getSamplerTextureId(static_cast<unsigned int>(mActiveSampler),
-                                          TextureType::CubeMap);
+            *params =
+                getSamplerTextureId(static_cast<unsigned int>(mActiveSampler), TextureType::CubeMap)
+                    .value;
             break;
         case GL_TEXTURE_BINDING_3D:
             ASSERT(mActiveSampler < mMaxCombinedTextureImageUnits);
             *params =
-                getSamplerTextureId(static_cast<unsigned int>(mActiveSampler), TextureType::_3D);
+                getSamplerTextureId(static_cast<unsigned int>(mActiveSampler), TextureType::_3D)
+                    .value;
             break;
         case GL_TEXTURE_BINDING_2D_ARRAY:
             ASSERT(mActiveSampler < mMaxCombinedTextureImageUnits);
             *params = getSamplerTextureId(static_cast<unsigned int>(mActiveSampler),
-                                          TextureType::_2DArray);
+                                          TextureType::_2DArray)
+                          .value;
             break;
         case GL_TEXTURE_BINDING_2D_MULTISAMPLE:
             ASSERT(mActiveSampler < mMaxCombinedTextureImageUnits);
             *params = getSamplerTextureId(static_cast<unsigned int>(mActiveSampler),
-                                          TextureType::_2DMultisample);
+                                          TextureType::_2DMultisample)
+                          .value;
             break;
         case GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY:
             ASSERT(mActiveSampler < mMaxCombinedTextureImageUnits);
             *params = getSamplerTextureId(static_cast<unsigned int>(mActiveSampler),
-                                          TextureType::_2DMultisampleArray);
+                                          TextureType::_2DMultisampleArray)
+                          .value;
             break;
         case GL_TEXTURE_BINDING_EXTERNAL_OES:
             ASSERT(mActiveSampler < mMaxCombinedTextureImageUnits);
             *params = getSamplerTextureId(static_cast<unsigned int>(mActiveSampler),
-                                          TextureType::External);
+                                          TextureType::External)
+                          .value;
             break;
         case GL_UNIFORM_BUFFER_BINDING:
-            *params = mBoundBuffers[BufferBinding::Uniform].id();
+            *params = mBoundBuffers[BufferBinding::Uniform].id().value;
             break;
         case GL_TRANSFORM_FEEDBACK_BINDING:
-            *params = mTransformFeedback.id();
+            *params = mTransformFeedback.id().value;
             break;
         case GL_TRANSFORM_FEEDBACK_BUFFER_BINDING:
-            *params = mBoundBuffers[BufferBinding::TransformFeedback].id();
+            *params = mBoundBuffers[BufferBinding::TransformFeedback].id().value;
             break;
         case GL_COPY_READ_BUFFER_BINDING:
-            *params = mBoundBuffers[BufferBinding::CopyRead].id();
+            *params = mBoundBuffers[BufferBinding::CopyRead].id().value;
             break;
         case GL_COPY_WRITE_BUFFER_BINDING:
-            *params = mBoundBuffers[BufferBinding::CopyWrite].id();
+            *params = mBoundBuffers[BufferBinding::CopyWrite].id().value;
             break;
         case GL_PIXEL_PACK_BUFFER_BINDING:
-            *params = mBoundBuffers[BufferBinding::PixelPack].id();
+            *params = mBoundBuffers[BufferBinding::PixelPack].id().value;
             break;
         case GL_PIXEL_UNPACK_BUFFER_BINDING:
-            *params = mBoundBuffers[BufferBinding::PixelUnpack].id();
+            *params = mBoundBuffers[BufferBinding::PixelUnpack].id().value;
             break;
         case GL_READ_BUFFER:
             *params = mReadFramebuffer->getReadBufferState();
             break;
         case GL_SAMPLER_BINDING:
             ASSERT(mActiveSampler < mMaxCombinedTextureImageUnits);
-            *params = getSamplerId(static_cast<GLuint>(mActiveSampler));
+            *params = getSamplerId(static_cast<GLuint>(mActiveSampler)).value;
             break;
         case GL_DEBUG_LOGGED_MESSAGES:
             *params = static_cast<GLint>(mDebug.getMessageCount());
@@ -2410,13 +2422,13 @@
             *params = static_cast<GLint>(mCoverageModulation);
             break;
         case GL_ATOMIC_COUNTER_BUFFER_BINDING:
-            *params = mBoundBuffers[BufferBinding::AtomicCounter].id();
+            *params = mBoundBuffers[BufferBinding::AtomicCounter].id().value;
             break;
         case GL_SHADER_STORAGE_BUFFER_BINDING:
-            *params = mBoundBuffers[BufferBinding::ShaderStorage].id();
+            *params = mBoundBuffers[BufferBinding::ShaderStorage].id().value;
             break;
         case GL_DISPATCH_INDIRECT_BUFFER_BINDING:
-            *params = mBoundBuffers[BufferBinding::DispatchIndirect].id();
+            *params = mBoundBuffers[BufferBinding::DispatchIndirect].id().value;
             break;
         case GL_ALPHA_TEST_FUNC:
             *params = ToGLenum(mGLES1State.mAlphaTestFunc);
@@ -2495,23 +2507,23 @@
     {
         case GL_TRANSFORM_FEEDBACK_BUFFER_BINDING:
             ASSERT(static_cast<size_t>(index) < mTransformFeedback->getIndexedBufferCount());
-            *data = mTransformFeedback->getIndexedBuffer(index).id();
+            *data = mTransformFeedback->getIndexedBuffer(index).id().value;
             break;
         case GL_UNIFORM_BUFFER_BINDING:
             ASSERT(static_cast<size_t>(index) < mUniformBuffers.size());
-            *data = mUniformBuffers[index].id();
+            *data = mUniformBuffers[index].id().value;
             break;
         case GL_ATOMIC_COUNTER_BUFFER_BINDING:
             ASSERT(static_cast<size_t>(index) < mAtomicCounterBuffers.size());
-            *data = mAtomicCounterBuffers[index].id();
+            *data = mAtomicCounterBuffers[index].id().value;
             break;
         case GL_SHADER_STORAGE_BUFFER_BINDING:
             ASSERT(static_cast<size_t>(index) < mShaderStorageBuffers.size());
-            *data = mShaderStorageBuffers[index].id();
+            *data = mShaderStorageBuffers[index].id().value;
             break;
         case GL_VERTEX_BINDING_BUFFER:
             ASSERT(static_cast<size_t>(index) < mVertexArray->getMaxBindings());
-            *data = mVertexArray->getVertexBinding(index).getBuffer().id();
+            *data = mVertexArray->getVertexBinding(index).getBuffer().id().value;
             break;
         case GL_VERTEX_BINDING_DIVISOR:
             ASSERT(static_cast<size_t>(index) < mVertexArray->getMaxBindings());
@@ -2531,7 +2543,7 @@
             break;
         case GL_IMAGE_BINDING_NAME:
             ASSERT(static_cast<size_t>(index) < mImageUnits.size());
-            *data = mImageUnits[index].texture.id();
+            *data = mImageUnits[index].texture.id().value;
             break;
         case GL_IMAGE_BINDING_LEVEL:
             ASSERT(static_cast<size_t>(index) < mImageUnits.size());
@@ -2688,6 +2700,24 @@
     return angle::Result::Continue;
 }
 
+angle::Result State::syncImages(const Context *context)
+{
+    if (mDirtyImages.none())
+        return angle::Result::Continue;
+
+    for (size_t imageUnitIndex : mDirtyImages)
+    {
+        Texture *texture = mImageUnits[imageUnitIndex].texture.get();
+        if (texture && texture->hasAnyDirtyBit())
+        {
+            ANGLE_TRY(texture->syncState(context));
+        }
+    }
+
+    mDirtyImages.reset();
+    return angle::Result::Continue;
+}
+
 angle::Result State::syncSamplers(const Context *context)
 {
     if (mDirtySamplers.none())
@@ -2891,6 +2921,12 @@
     {
         const ImageUnit &image = mImageUnits[unit];
         ASSERT(image.texture.get());
+        if (image.texture->hasAnyDirtyBit())
+        {
+            mDirtyImages.set(unit);
+            mDirtyObjects.set(DIRTY_OBJECT_IMAGES);
+        }
+
         if (mRobustResourceInit && image.texture->initState() == InitState::MayNeedInit)
         {
             mDirtyObjects.set(DIRTY_OBJECT_IMAGES_INIT);
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/State.h b/Source/ThirdParty/ANGLE/src/libANGLE/State.h
index 4f99382..43bbb28 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/State.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/State.h
@@ -234,7 +234,7 @@
         return mSamplerTextures[type][sampler].get();
     }
 
-    GLuint getSamplerTextureId(unsigned int sampler, TextureType type) const;
+    TextureID getSamplerTextureId(unsigned int sampler, TextureType type) const;
     void detachTexture(const Context *context, const TextureMap &zeroTextures, TextureID texture);
     void initializeZeroTextures(const Context *context, const TextureMap &zeroTextures);
 
@@ -242,7 +242,7 @@
 
     // Sampler object binding manipulation
     void setSamplerBinding(const Context *context, GLuint textureUnit, Sampler *sampler);
-    GLuint getSamplerId(GLuint textureUnit) const
+    SamplerID getSamplerId(GLuint textureUnit) const
     {
         ASSERT(textureUnit < mSamplers.size());
         return mSamplers[textureUnit].id();
@@ -257,7 +257,7 @@
 
     // Renderbuffer binding manipulation
     void setRenderbufferBinding(const Context *context, Renderbuffer *renderbuffer);
-    GLuint getRenderbufferId() const { return mRenderbuffer.id(); }
+    RenderbufferID getRenderbufferId() const { return mRenderbuffer.id(); }
     Renderbuffer *getCurrentRenderbuffer() const { return mRenderbuffer.get(); }
     void detachRenderbuffer(const Context *context, RenderbufferID renderbuffer);
 
@@ -323,7 +323,7 @@
     bool isQueryActive(QueryType type) const;
     bool isQueryActive(Query *query) const;
     void setActiveQuery(const Context *context, QueryType type, Query *query);
-    GLuint getActiveQueryId(QueryType type) const;
+    QueryID getActiveQueryId(QueryType type) const;
     Query *getActiveQuery(QueryType type) const;
 
     // Program Pipeline binding manipulation
@@ -586,6 +586,7 @@
         DIRTY_OBJECT_DRAW_FRAMEBUFFER,
         DIRTY_OBJECT_VERTEX_ARRAY,
         DIRTY_OBJECT_TEXTURES,  // Top-level dirty bit. Also see mDirtyTextures.
+        DIRTY_OBJECT_IMAGES,    // Top-level dirty bit. Also see mDirtyImages.
         DIRTY_OBJECT_SAMPLERS,  // Top-level dirty bit. Also see mDirtySamplers.
         DIRTY_OBJECT_PROGRAM,
         DIRTY_OBJECT_UNKNOWN,
@@ -702,6 +703,7 @@
     angle::Result syncDrawFramebuffer(const Context *context);
     angle::Result syncVertexArray(const Context *context);
     angle::Result syncTextures(const Context *context);
+    angle::Result syncImages(const Context *context);
     angle::Result syncSamplers(const Context *context);
     angle::Result syncProgram(const Context *context);
 
@@ -709,8 +711,8 @@
     static constexpr DirtyObjectHandler kDirtyObjectHandlers[DIRTY_OBJECT_MAX] = {
         &State::syncTexturesInit,    &State::syncImagesInit,      &State::syncReadAttachments,
         &State::syncDrawAttachments, &State::syncReadFramebuffer, &State::syncDrawFramebuffer,
-        &State::syncVertexArray,     &State::syncTextures,        &State::syncSamplers,
-        &State::syncProgram,
+        &State::syncVertexArray,     &State::syncTextures,        &State::syncImages,
+        &State::syncSamplers,        &State::syncProgram,
     };
 
     // Robust init must happen before Framebuffer init for the Vulkan back-end.
@@ -727,8 +729,9 @@
     static_assert(DIRTY_OBJECT_DRAW_FRAMEBUFFER == 5, "check DIRTY_OBJECT_DRAW_FRAMEBUFFER index");
     static_assert(DIRTY_OBJECT_VERTEX_ARRAY == 6, "check DIRTY_OBJECT_VERTEX_ARRAY index");
     static_assert(DIRTY_OBJECT_TEXTURES == 7, "check DIRTY_OBJECT_TEXTURES index");
-    static_assert(DIRTY_OBJECT_SAMPLERS == 8, "check DIRTY_OBJECT_SAMPLERS index");
-    static_assert(DIRTY_OBJECT_PROGRAM == 9, "check DIRTY_OBJECT_PROGRAM index");
+    static_assert(DIRTY_OBJECT_IMAGES == 8, "check DIRTY_OBJECT_IMAGES index");
+    static_assert(DIRTY_OBJECT_SAMPLERS == 9, "check DIRTY_OBJECT_SAMPLERS index");
+    static_assert(DIRTY_OBJECT_PROGRAM == 10, "check DIRTY_OBJECT_PROGRAM index");
 
     // Dispatch table for buffer update functions.
     static const angle::PackedEnumMap<BufferBinding, BufferBindingSetter> kBufferSetters;
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/Texture.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/Texture.cpp
index 3cb41b2..23f7d68 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/Texture.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/Texture.cpp
@@ -616,7 +616,7 @@
 }
 
 Texture::Texture(rx::GLImplFactory *factory, TextureID id, TextureType type)
-    : RefCountObject(id.value),
+    : RefCountObject(id),
       mState(type),
       mTexture(factory->createTexture(mState)),
       mImplObserver(this, rx::kTextureImageImplObserverMessageIndex),
@@ -1266,10 +1266,11 @@
     ANGLE_TRY(releaseTexImageInternal(context));
     ANGLE_TRY(orphanImages(context));
 
-    ANGLE_TRY(mTexture->setStorage(context, type, levels, internalFormat, size));
-
     mState.mImmutableFormat = true;
     mState.mImmutableLevels = static_cast<GLuint>(levels);
+
+    ANGLE_TRY(mTexture->setStorage(context, type, levels, internalFormat, size));
+
     mState.clearImageDescs();
     mState.setImageDescChain(0, static_cast<GLuint>(levels - 1), size, Format(internalFormat),
                              InitState::MayNeedInit);
@@ -1673,7 +1674,7 @@
 
 GLuint Texture::getId() const
 {
-    return id();
+    return id().value;
 }
 
 GLuint Texture::getNativeID() const
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/Texture.h b/Source/ThirdParty/ANGLE/src/libANGLE/Texture.h
index f1ecf04..a6281e5 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/Texture.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/Texture.h
@@ -212,7 +212,9 @@
 bool operator==(const TextureState &a, const TextureState &b);
 bool operator!=(const TextureState &a, const TextureState &b);
 
-class Texture final : public RefCountObject, public egl::ImageSibling, public LabeledObject
+class Texture final : public RefCountObject<TextureID>,
+                      public egl::ImageSibling,
+                      public LabeledObject
 {
   public:
     Texture(rx::GLImplFactory *factory, TextureID id, TextureType type);
@@ -438,7 +440,10 @@
 
     void onAttach(const Context *context) override;
     void onDetach(const Context *context) override;
+
+    // Used specifically for FramebufferAttachmentObject.
     GLuint getId() const override;
+
     GLuint getNativeID() const;
 
     // Needed for robust resource init.
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/TransformFeedback.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/TransformFeedback.cpp
index 5af2309..98f2491 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/TransformFeedback.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/TransformFeedback.cpp
@@ -87,7 +87,7 @@
 TransformFeedback::TransformFeedback(rx::GLImplFactory *implFactory,
                                      TransformFeedbackID id,
                                      const Caps &caps)
-    : RefCountObject(id.value),
+    : RefCountObject(id),
       mState(caps.maxTransformFeedbackSeparateAttributes),
       mImplementation(implFactory->createTransformFeedback(mState))
 {
@@ -242,12 +242,12 @@
     return mState.mProgram != nullptr && mState.mProgram->id().value == program.value;
 }
 
-angle::Result TransformFeedback::detachBuffer(const Context *context, GLuint bufferName)
+angle::Result TransformFeedback::detachBuffer(const Context *context, BufferID bufferID)
 {
     bool isBound = context->isCurrentTransformFeedback(this);
     for (size_t index = 0; index < mState.mIndexedBuffers.size(); index++)
     {
-        if (mState.mIndexedBuffers[index].id() == bufferName)
+        if (mState.mIndexedBuffers[index].id() == bufferID)
         {
             if (isBound)
             {
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/TransformFeedback.h b/Source/ThirdParty/ANGLE/src/libANGLE/TransformFeedback.h
index aa01b43..a646427 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/TransformFeedback.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/TransformFeedback.h
@@ -57,7 +57,7 @@
     std::vector<OffsetBindingPointer<Buffer>> mIndexedBuffers;
 };
 
-class TransformFeedback final : public RefCountObject, public LabeledObject
+class TransformFeedback final : public RefCountObject<TransformFeedbackID>, public LabeledObject
 {
   public:
     TransformFeedback(rx::GLImplFactory *implFactory, TransformFeedbackID id, const Caps &caps);
@@ -101,7 +101,7 @@
     // Returns true if any buffer bound to this object is also bound to another target.
     bool buffersBoundForOtherUse() const;
 
-    angle::Result detachBuffer(const Context *context, GLuint bufferName);
+    angle::Result detachBuffer(const Context *context, BufferID bufferID);
 
     rx::TransformFeedbackImpl *getImplementation() const;
 
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/VaryingPacking.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/VaryingPacking.cpp
index e6a88f7..16b8e3b 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/VaryingPacking.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/VaryingPacking.cpp
@@ -287,8 +287,8 @@
 
     for (const auto &ref : mergedVaryings)
     {
-        const sh::ShaderVariable *input  = ref.second.vertex;
-        const sh::ShaderVariable *output = ref.second.fragment;
+        const sh::ShaderVariable *input  = ref.second.frontShader;
+        const sh::ShaderVariable *output = ref.second.backShader;
 
         // Only pack statically used varyings that have a matched input or output, plus special
         // builtins. Note that we pack all statically used user-defined varyings even if they are
@@ -313,7 +313,7 @@
                 // variable is taken from the fragment shader.
                 if (varying->isStruct())
                 {
-                    ASSERT(!varying->isArray());
+                    ASSERT(!(varying->isArray() && varying == input));
                     for (GLuint fieldIndex = 0; fieldIndex < varying->fields.size(); ++fieldIndex)
                     {
                         const sh::ShaderVariable &field = varying->fields[fieldIndex];
@@ -406,7 +406,6 @@
 bool VaryingPacking::packUserVaryings(gl::InfoLog &infoLog,
                                       const std::vector<PackedVarying> &packedVaryings)
 {
-
     // "Variables are packed into the registers one at a time so that they each occupy a contiguous
     // subrectangle. No splitting of variables is permitted."
     for (const PackedVarying &packedVarying : packedVaryings)
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/VertexArray.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/VertexArray.cpp
index 6a83e6c..8987129 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/VertexArray.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/VertexArray.cpp
@@ -144,14 +144,14 @@
     return mState.mLabel;
 }
 
-bool VertexArray::detachBuffer(const Context *context, GLuint bufferName)
+bool VertexArray::detachBuffer(const Context *context, BufferID bufferID)
 {
     bool isBound           = context->isCurrentVertexArray(this);
     bool anyBufferDetached = false;
     for (uint32_t bindingIndex = 0; bindingIndex < gl::MAX_VERTEX_ATTRIB_BINDINGS; ++bindingIndex)
     {
         VertexBinding &binding = mState.mVertexBindings[bindingIndex];
-        if (binding.getBuffer().id() == bufferName)
+        if (binding.getBuffer().id() == bufferID)
         {
             if (isBound)
             {
@@ -180,7 +180,7 @@
         }
     }
 
-    if (mState.mElementArrayBuffer.get() && mState.mElementArrayBuffer->id() == bufferName)
+    if (mState.mElementArrayBuffer.get() && mState.mElementArrayBuffer->id() == bufferID)
     {
         if (isBound && mState.mElementArrayBuffer.get())
             mState.mElementArrayBuffer->onNonTFBindingChanged(-1);
@@ -315,7 +315,8 @@
         mCachedTransformFeedbackConflictedBindingsMask.set(
             bindingIndex, boundBuffer->isBoundForTransformFeedbackAndOtherUse());
         mState.mClientMemoryAttribsMask &= ~binding->getBoundAttributesMask();
-        updateCachedMappedArrayBuffers(boundBuffer->isMapped(), binding->getBoundAttributesMask());
+        updateCachedMappedArrayBuffers((boundBuffer->isMapped() == GL_TRUE),
+                                       binding->getBoundAttributesMask());
     }
     else
     {
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/VertexArray.h b/Source/ThirdParty/ANGLE/src/libANGLE/VertexArray.h
index cf4b7a9..354f767 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/VertexArray.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/VertexArray.h
@@ -179,7 +179,7 @@
     }
 
     // Returns true if the function finds and detaches a bound buffer.
-    bool detachBuffer(const Context *context, GLuint bufferName);
+    bool detachBuffer(const Context *context, BufferID bufferID);
 
     void setVertexAttribDivisor(const Context *context, size_t index, GLuint divisor);
     void enableAttribute(size_t attribIndex, bool enabledState);
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/capture_gles_2_0_params.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/capture_gles_2_0_params.cpp
index 14f0405..1d50a79 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/capture_gles_2_0_params.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/capture_gles_2_0_params.cpp
@@ -100,7 +100,7 @@
                                         const BufferID *buffers,
                                         ParamCapture *paramCapture)
 {
-    UNIMPLEMENTED();
+    CaptureMemory(buffers, sizeof(BufferID) * n, paramCapture);
 }
 
 void CaptureDeleteFramebuffers_framebuffersPacked(const Context *context,
@@ -109,7 +109,7 @@
                                                   const FramebufferID *framebuffers,
                                                   ParamCapture *paramCapture)
 {
-    CaptureMemory(framebuffers, sizeof(GLuint) * n, paramCapture);
+    CaptureMemory(framebuffers, sizeof(FramebufferID) * n, paramCapture);
 }
 
 void CaptureDeleteRenderbuffers_renderbuffersPacked(const Context *context,
@@ -127,7 +127,7 @@
                                           const TextureID *textures,
                                           ParamCapture *paramCapture)
 {
-    CaptureMemory(textures, sizeof(GLuint) * n, paramCapture);
+    CaptureMemory(textures, sizeof(TextureID) * n, paramCapture);
 }
 
 void CaptureDrawElements_indices(const Context *context,
@@ -156,7 +156,7 @@
                                      BufferID *buffers,
                                      ParamCapture *paramCapture)
 {
-    paramCapture->readBufferSizeBytes = sizeof(GLuint) * n;
+    CaptureGenHandles(n, buffers, paramCapture);
 }
 
 void CaptureGenFramebuffers_framebuffersPacked(const Context *context,
@@ -165,7 +165,7 @@
                                                FramebufferID *framebuffers,
                                                ParamCapture *paramCapture)
 {
-    paramCapture->readBufferSizeBytes = sizeof(GLuint) * n;
+    CaptureGenHandles(n, framebuffers, paramCapture);
 }
 
 void CaptureGenRenderbuffers_renderbuffersPacked(const Context *context,
@@ -174,8 +174,7 @@
                                                  RenderbufferID *renderbuffers,
                                                  ParamCapture *paramCapture)
 {
-    paramCapture->readBufferSizeBytes = sizeof(RenderbufferID) * n;
-    CaptureMemory(renderbuffers, paramCapture->readBufferSizeBytes, paramCapture);
+    CaptureGenHandles(n, renderbuffers, paramCapture);
 }
 
 void CaptureGenTextures_texturesPacked(const Context *context,
@@ -184,7 +183,7 @@
                                        TextureID *textures,
                                        ParamCapture *paramCapture)
 {
-    paramCapture->readBufferSizeBytes = sizeof(GLuint) * n;
+    CaptureGenHandles(n, textures, paramCapture);
 }
 
 void CaptureGetActiveAttrib_length(const Context *context,
@@ -643,10 +642,11 @@
 {
     for (GLsizei index = 0; index < count; ++index)
     {
+        size_t len = ((length && length[index] >= 0) ? length[index] : strlen(string[index]));
         // includes the '\0' suffix
-        size_t len = (length ? length[index] : strlen(string[index])) + 1;
-        CaptureMemory(string[index], len, paramCapture);
-        paramCapture->data[paramCapture->data.size() - 1][len] = '\0';
+        std::vector<uint8_t> data(len + 1, 0);
+        memcpy(data.data(), string[index], len);
+        paramCapture->data.emplace_back(std::move(data));
     }
 }
 
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/capture_gles_3_0_params.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/capture_gles_3_0_params.cpp
index 24f33eb..d73c431 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/capture_gles_3_0_params.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/capture_gles_3_0_params.cpp
@@ -82,7 +82,7 @@
                                     const QueryID *ids,
                                     ParamCapture *paramCapture)
 {
-    UNIMPLEMENTED();
+    CaptureMemory(ids, sizeof(QueryID) * n, paramCapture);
 }
 
 void CaptureDeleteSamplers_samplersPacked(const Context *context,
@@ -91,7 +91,7 @@
                                           const SamplerID *samplers,
                                           ParamCapture *paramCapture)
 {
-    UNIMPLEMENTED();
+    CaptureMemory(samplers, sizeof(SamplerID) * count, paramCapture);
 }
 
 void CaptureDeleteTransformFeedbacks_idsPacked(const Context *context,
@@ -100,7 +100,7 @@
                                                const TransformFeedbackID *ids,
                                                ParamCapture *paramCapture)
 {
-    UNIMPLEMENTED();
+    CaptureMemory(ids, sizeof(TransformFeedbackID) * n, paramCapture);
 }
 
 void CaptureDeleteVertexArrays_arraysPacked(const Context *context,
@@ -109,7 +109,7 @@
                                             const VertexArrayID *arrays,
                                             ParamCapture *paramCapture)
 {
-    UNIMPLEMENTED();
+    CaptureMemory(arrays, sizeof(VertexArrayID) * n, paramCapture);
 }
 
 void CaptureDrawBuffers_bufs(const Context *context,
@@ -152,7 +152,7 @@
                                  QueryID *ids,
                                  ParamCapture *paramCapture)
 {
-    UNIMPLEMENTED();
+    CaptureGenHandles(n, ids, paramCapture);
 }
 
 void CaptureGenSamplers_samplersPacked(const Context *context,
@@ -161,7 +161,7 @@
                                        SamplerID *samplers,
                                        ParamCapture *paramCapture)
 {
-    UNIMPLEMENTED();
+    CaptureGenHandles(count, samplers, paramCapture);
 }
 
 void CaptureGenTransformFeedbacks_idsPacked(const Context *context,
@@ -170,7 +170,7 @@
                                             TransformFeedbackID *ids,
                                             ParamCapture *paramCapture)
 {
-    UNIMPLEMENTED();
+    CaptureGenHandles(n, ids, paramCapture);
 }
 
 void CaptureGenVertexArrays_arraysPacked(const Context *context,
@@ -179,7 +179,7 @@
                                          VertexArrayID *arrays,
                                          ParamCapture *paramCapture)
 {
-    UNIMPLEMENTED();
+    CaptureGenHandles(n, arrays, paramCapture);
 }
 
 void CaptureGetActiveUniformBlockName_length(const Context *context,
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/capture_gles_3_1_params.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/capture_gles_3_1_params.cpp
index 995cd7f..8cadb2b 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/capture_gles_3_1_params.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/capture_gles_3_1_params.cpp
@@ -29,7 +29,7 @@
                                                    const ProgramPipelineID *pipelines,
                                                    ParamCapture *paramCapture)
 {
-    UNIMPLEMENTED();
+    CaptureMemory(pipelines, sizeof(ProgramPipelineID) * n, paramCapture);
 }
 
 void CaptureDrawArraysIndirect_indirect(const Context *context,
@@ -57,7 +57,7 @@
                                                 ProgramPipelineID *pipelines,
                                                 ParamCapture *paramCapture)
 {
-    UNIMPLEMENTED();
+    CaptureGenHandles(n, pipelines, paramCapture);
 }
 
 void CaptureGetBooleani_v_data(const Context *context,
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/capture_gles_ext_params.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/capture_gles_ext_params.cpp
index aa28efd..7506b81 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/capture_gles_ext_params.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/capture_gles_ext_params.cpp
@@ -2177,7 +2177,7 @@
                                        const QueryID *ids,
                                        ParamCapture *paramCapture)
 {
-    UNIMPLEMENTED();
+    CaptureMemory(ids, sizeof(QueryID) * n, paramCapture);
 }
 
 void CaptureGenQueriesEXT_idsPacked(const Context *context,
@@ -2186,7 +2186,7 @@
                                     QueryID *ids,
                                     ParamCapture *paramCapture)
 {
-    UNIMPLEMENTED();
+    CaptureGenHandles(n, ids, paramCapture);
 }
 
 void CaptureGetQueryObjecti64vEXT_params(const Context *context,
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/features.h b/Source/ThirdParty/ANGLE/src/libANGLE/features.h
index 9459237..5a562da 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/features.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/features.h
@@ -53,8 +53,9 @@
 #endif
 
 // Controls if our threading code uses std::async or falls back to single-threaded operations.
-#if !defined(ANGLE_STD_ASYNC_WORKERS)
+// Note that we can't easily use std::async in UWPs due to UWP threading restrictions.
+#if !defined(ANGLE_STD_ASYNC_WORKERS) && !defined(ANGLE_ENABLE_WINDOWS_UWP)
 #    define ANGLE_STD_ASYNC_WORKERS ANGLE_ENABLED
-#endif  // !defined(ANGLE_STD_ASYNC_WORKERS)
+#endif  // !defined(ANGLE_STD_ASYNC_WORKERS) && & !defined(ANGLE_ENABLE_WINDOWS_UWP)
 
 #endif  // LIBANGLE_FEATURES_H_
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/formatutils.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/formatutils.cpp
index 823c069..8780a85 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/formatutils.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/formatutils.cpp
@@ -144,6 +144,15 @@
     return extensions.*bool1 || extensions.*bool2 || extensions.*bool3;
 }
 
+static bool UnsizedHalfFloatOESRGBATextureAttachmentSupport(const Version &clientVersion,
+                                                            const Extensions &extensions)
+{
+    // dEQP requires ES3 + EXT_color_buffer_half_float for rendering to RGB[A] + HALF_FLOAT_OES
+    // textures but WebGL allows it with just ES 2.0
+    return (clientVersion.major >= 3 || extensions.webglCompatibility) &&
+           extensions.colorBufferHalfFloat;
+}
+
 // R8, RG8
 static bool SizedRGSupport(const Version &clientVersion, const Extensions &extensions)
 {
@@ -1004,8 +1013,8 @@
     AddRGBAFormat(&map, GL_RGBA,         false, 16, 16, 16, 16, 0, GL_RGBA, GL_HALF_FLOAT,                   GL_FLOAT, false, NeverSupported,                                                          NeverSupported,                                  NeverSupported,                                 NeverSupported);
     AddRGBAFormat(&map, GL_RED,          false, 16,  0,  0,  0, 0, GL_RED,  GL_HALF_FLOAT_OES,               GL_FLOAT, false, RequireExtAndExt<&Extensions::textureHalfFloat, &Extensions::textureRG>, RequireExt<&Extensions::textureHalfFloatLinear>, AlwaysSupported,                                NeverSupported);
     AddRGBAFormat(&map, GL_RG,           false, 16, 16,  0,  0, 0, GL_RG,   GL_HALF_FLOAT_OES,               GL_FLOAT, false, RequireExtAndExt<&Extensions::textureHalfFloat, &Extensions::textureRG>, RequireExt<&Extensions::textureHalfFloatLinear>, AlwaysSupported,                                NeverSupported);
-    AddRGBAFormat(&map, GL_RGB,          false, 16, 16, 16,  0, 0, GL_RGB,  GL_HALF_FLOAT_OES,               GL_FLOAT, false, RequireExt<&Extensions::textureHalfFloat>,                               RequireExt<&Extensions::textureHalfFloatLinear>, RequireExt<&Extensions::colorBufferHalfFloat>,  NeverSupported);
-    AddRGBAFormat(&map, GL_RGBA,         false, 16, 16, 16, 16, 0, GL_RGBA, GL_HALF_FLOAT_OES,               GL_FLOAT, false, RequireExt<&Extensions::textureHalfFloat>,                               RequireExt<&Extensions::textureHalfFloatLinear>, RequireExt<&Extensions::colorBufferHalfFloat>,  NeverSupported);
+    AddRGBAFormat(&map, GL_RGB,          false, 16, 16, 16,  0, 0, GL_RGB,  GL_HALF_FLOAT_OES,               GL_FLOAT, false, RequireExt<&Extensions::textureHalfFloat>,                               RequireExt<&Extensions::textureHalfFloatLinear>, UnsizedHalfFloatOESRGBATextureAttachmentSupport, NeverSupported);
+    AddRGBAFormat(&map, GL_RGBA,         false, 16, 16, 16, 16, 0, GL_RGBA, GL_HALF_FLOAT_OES,               GL_FLOAT, false, RequireExt<&Extensions::textureHalfFloat>,                               RequireExt<&Extensions::textureHalfFloatLinear>, UnsizedHalfFloatOESRGBATextureAttachmentSupport, NeverSupported);
     AddRGBAFormat(&map, GL_RED,          false, 32,  0,  0,  0, 0, GL_RED,  GL_FLOAT,                        GL_FLOAT, false, RequireExtAndExt<&Extensions::textureFloat, &Extensions::textureRG>,     RequireExt<&Extensions::textureFloatLinear>,     AlwaysSupported,                                NeverSupported);
     AddRGBAFormat(&map, GL_RG,           false, 32, 32,  0,  0, 0, GL_RG,   GL_FLOAT,                        GL_FLOAT, false, RequireExtAndExt<&Extensions::textureFloat, &Extensions::textureRG>,     RequireExt<&Extensions::textureFloatLinear>,     AlwaysSupported,                                NeverSupported);
     AddRGBAFormat(&map, GL_RGB,          false, 32, 32, 32,  0, 0, GL_RGB,  GL_FLOAT,                        GL_FLOAT, false, RequireExt<&Extensions::textureFloat>,                                   RequireExt<&Extensions::textureFloatLinear>,     NeverSupported,                                 NeverSupported);
@@ -1203,11 +1212,23 @@
                                        GLuint rowPitch,
                                        GLuint *resultOut) const
 {
-    GLuint rows =
-        (imageHeight > 0 ? static_cast<GLuint>(imageHeight) : static_cast<GLuint>(height));
+    CheckedNumeric<GLuint> pixelsHeight(imageHeight > 0 ? static_cast<GLuint>(imageHeight)
+                                                        : static_cast<GLuint>(height));
+
+    CheckedNumeric<GLuint> rowCount;
+    if (compressed)
+    {
+        CheckedNumeric<GLuint> checkedBlockHeight(compressedBlockHeight);
+        rowCount = (pixelsHeight + checkedBlockHeight - 1u) / checkedBlockHeight;
+    }
+    else
+    {
+        rowCount = pixelsHeight;
+    }
+
     CheckedNumeric<GLuint> checkedRowPitch(rowPitch);
 
-    return CheckedMathResult(checkedRowPitch * rows, resultOut);
+    return CheckedMathResult(checkedRowPitch * rowCount, resultOut);
 }
 
 bool InternalFormat::computeDepthPitch(GLenum formatType,
@@ -1612,6 +1633,7 @@
 #endif
             }
         case VertexAttribType::HalfFloat:
+        case VertexAttribType::HalfFloatOES:
             switch (components)
             {
                 case 1:
@@ -1657,6 +1679,49 @@
             if (normalized)
                 return angle::FormatID::R10G10B10A2_UNORM;
             return angle::FormatID::R10G10B10A2_USCALED;
+        case VertexAttribType::Int1010102:
+            switch (components)
+            {
+                case 3:
+                    if (pureInteger)
+                        return angle::FormatID::X2R10G10B10_SINT_VERTEX;
+                    if (normalized)
+                        return angle::FormatID::X2R10G10B10_SNORM_VERTEX;
+                    return angle::FormatID::X2R10G10B10_SSCALED_VERTEX;
+                case 4:
+                    if (pureInteger)
+                        return angle::FormatID::A2R10G10B10_SINT_VERTEX;
+                    if (normalized)
+                        return angle::FormatID::A2R10G10B10_SNORM_VERTEX;
+                    return angle::FormatID::A2R10G10B10_SSCALED_VERTEX;
+                default:
+                    UNREACHABLE();
+#if !UNREACHABLE_IS_NORETURN
+                    return angle::FormatID::NONE;
+#endif
+            }
+        case VertexAttribType::UnsignedInt1010102:
+            switch (components)
+            {
+                case 3:
+                    if (pureInteger)
+                        return angle::FormatID::X2R10G10B10_UINT_VERTEX;
+                    if (normalized)
+                        return angle::FormatID::X2R10G10B10_UNORM_VERTEX;
+                    return angle::FormatID::X2R10G10B10_USCALED_VERTEX;
+
+                case 4:
+                    if (pureInteger)
+                        return angle::FormatID::A2R10G10B10_UINT_VERTEX;
+                    if (normalized)
+                        return angle::FormatID::A2R10G10B10_UNORM_VERTEX;
+                    return angle::FormatID::A2R10G10B10_USCALED_VERTEX;
+                default:
+                    UNREACHABLE();
+#if !UNREACHABLE_IS_NORETURN
+                    return angle::FormatID::NONE;
+#endif
+            }
         default:
             UNREACHABLE();
 #if !UNREACHABLE_IS_NORETURN
@@ -2144,6 +2209,61 @@
             static const VertexFormat format(GL_UNSIGNED_INT_2_10_10_10_REV, GL_FALSE, 4, true);
             return format;
         }
+        case angle::FormatID::A2R10G10B10_SSCALED_VERTEX:
+        {
+            static const VertexFormat format(GL_INT_10_10_10_2_OES, GL_FALSE, 4, false);
+            return format;
+        }
+        case angle::FormatID::A2R10G10B10_USCALED_VERTEX:
+        {
+            static const VertexFormat format(GL_UNSIGNED_INT_10_10_10_2_OES, GL_FALSE, 4, false);
+            return format;
+        }
+        case angle::FormatID::A2R10G10B10_SNORM_VERTEX:
+        {
+            static const VertexFormat format(GL_INT_10_10_10_2_OES, GL_TRUE, 4, false);
+            return format;
+        }
+        case angle::FormatID::A2R10G10B10_UNORM_VERTEX:
+        {
+            static const VertexFormat format(GL_UNSIGNED_INT_10_10_10_2_OES, GL_TRUE, 4, false);
+            return format;
+        }
+        case angle::FormatID::A2R10G10B10_SINT_VERTEX:
+        {
+            static const VertexFormat format(GL_INT_10_10_10_2_OES, GL_FALSE, 4, true);
+            return format;
+        }
+        case angle::FormatID::A2R10G10B10_UINT_VERTEX:
+        {
+            static const VertexFormat format(GL_UNSIGNED_INT_10_10_10_2_OES, GL_FALSE, 4, true);
+            return format;
+        }
+        case angle::FormatID::X2R10G10B10_SSCALED_VERTEX:
+        {
+            static const VertexFormat format(GL_INT_10_10_10_2_OES, GL_FALSE, 4, false);
+            return format;
+        }
+        case angle::FormatID::X2R10G10B10_USCALED_VERTEX:
+        {
+            static const VertexFormat format(GL_UNSIGNED_INT_10_10_10_2_OES, GL_FALSE, 4, false);
+            return format;
+        }
+        case angle::FormatID::X2R10G10B10_SNORM_VERTEX:
+        {
+            static const VertexFormat format(GL_INT_10_10_10_2_OES, GL_TRUE, 4, false);
+            return format;
+        }
+        case angle::FormatID::X2R10G10B10_UNORM_VERTEX:
+        {
+            static const VertexFormat format(GL_UNSIGNED_INT_10_10_10_2_OES, GL_TRUE, 4, false);
+            return format;
+        }
+        case angle::FormatID::X2R10G10B10_SINT_VERTEX:
+        {
+            static const VertexFormat format(GL_INT_10_10_10_2_OES, GL_FALSE, 4, true);
+            return format;
+        }
         default:
         {
             static const VertexFormat format(GL_NONE, GL_FALSE, 0, false);
@@ -2214,6 +2334,18 @@
         case angle::FormatID::R10G10B10A2_UNORM:
         case angle::FormatID::R10G10B10A2_SINT:
         case angle::FormatID::R10G10B10A2_UINT:
+        case angle::FormatID::A2R10G10B10_SSCALED_VERTEX:
+        case angle::FormatID::A2R10G10B10_USCALED_VERTEX:
+        case angle::FormatID::A2R10G10B10_SINT_VERTEX:
+        case angle::FormatID::A2R10G10B10_UINT_VERTEX:
+        case angle::FormatID::A2R10G10B10_SNORM_VERTEX:
+        case angle::FormatID::A2R10G10B10_UNORM_VERTEX:
+        case angle::FormatID::X2R10G10B10_SSCALED_VERTEX:
+        case angle::FormatID::X2R10G10B10_USCALED_VERTEX:
+        case angle::FormatID::X2R10G10B10_SINT_VERTEX:
+        case angle::FormatID::X2R10G10B10_UINT_VERTEX:
+        case angle::FormatID::X2R10G10B10_SNORM_VERTEX:
+        case angle::FormatID::X2R10G10B10_UNORM_VERTEX:
             return 4;
 
         case angle::FormatID::R16G16B16_SSCALED:
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/frame_capture_utils_autogen.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/frame_capture_utils_autogen.cpp
index a653faf..bfddbd0 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/frame_capture_utils_autogen.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/frame_capture_utils_autogen.cpp
@@ -691,4 +691,131 @@
             return "unknown";
     }
 }
+
+ResourceIDType GetResourceIDTypeFromParamType(ParamType paramType)
+{
+    switch (paramType)
+    {
+        case ParamType::TBufferID:
+            return ResourceIDType::Buffer;
+        case ParamType::TBufferIDConstPointer:
+            return ResourceIDType::Buffer;
+        case ParamType::TBufferIDPointer:
+            return ResourceIDType::Buffer;
+        case ParamType::TFenceNVID:
+            return ResourceIDType::FenceNV;
+        case ParamType::TFenceNVIDConstPointer:
+            return ResourceIDType::FenceNV;
+        case ParamType::TFenceNVIDPointer:
+            return ResourceIDType::FenceNV;
+        case ParamType::TFramebufferID:
+            return ResourceIDType::Framebuffer;
+        case ParamType::TFramebufferIDConstPointer:
+            return ResourceIDType::Framebuffer;
+        case ParamType::TFramebufferIDPointer:
+            return ResourceIDType::Framebuffer;
+        case ParamType::TMemoryObjectID:
+            return ResourceIDType::MemoryObject;
+        case ParamType::TMemoryObjectIDConstPointer:
+            return ResourceIDType::MemoryObject;
+        case ParamType::TMemoryObjectIDPointer:
+            return ResourceIDType::MemoryObject;
+        case ParamType::TPathID:
+            return ResourceIDType::Path;
+        case ParamType::TProgramPipelineID:
+            return ResourceIDType::ProgramPipeline;
+        case ParamType::TProgramPipelineIDConstPointer:
+            return ResourceIDType::ProgramPipeline;
+        case ParamType::TProgramPipelineIDPointer:
+            return ResourceIDType::ProgramPipeline;
+        case ParamType::TQueryID:
+            return ResourceIDType::Query;
+        case ParamType::TQueryIDConstPointer:
+            return ResourceIDType::Query;
+        case ParamType::TQueryIDPointer:
+            return ResourceIDType::Query;
+        case ParamType::TRenderbufferID:
+            return ResourceIDType::Renderbuffer;
+        case ParamType::TRenderbufferIDConstPointer:
+            return ResourceIDType::Renderbuffer;
+        case ParamType::TRenderbufferIDPointer:
+            return ResourceIDType::Renderbuffer;
+        case ParamType::TSamplerID:
+            return ResourceIDType::Sampler;
+        case ParamType::TSamplerIDConstPointer:
+            return ResourceIDType::Sampler;
+        case ParamType::TSamplerIDPointer:
+            return ResourceIDType::Sampler;
+        case ParamType::TSemaphoreID:
+            return ResourceIDType::Semaphore;
+        case ParamType::TSemaphoreIDConstPointer:
+            return ResourceIDType::Semaphore;
+        case ParamType::TSemaphoreIDPointer:
+            return ResourceIDType::Semaphore;
+        case ParamType::TShaderProgramID:
+            return ResourceIDType::ShaderProgram;
+        case ParamType::TShaderProgramIDConstPointer:
+            return ResourceIDType::ShaderProgram;
+        case ParamType::TShaderProgramIDPointer:
+            return ResourceIDType::ShaderProgram;
+        case ParamType::TTextureID:
+            return ResourceIDType::Texture;
+        case ParamType::TTextureIDConstPointer:
+            return ResourceIDType::Texture;
+        case ParamType::TTextureIDPointer:
+            return ResourceIDType::Texture;
+        case ParamType::TTransformFeedbackID:
+            return ResourceIDType::TransformFeedback;
+        case ParamType::TTransformFeedbackIDConstPointer:
+            return ResourceIDType::TransformFeedback;
+        case ParamType::TTransformFeedbackIDPointer:
+            return ResourceIDType::TransformFeedback;
+        case ParamType::TVertexArrayID:
+            return ResourceIDType::VertexArray;
+        case ParamType::TVertexArrayIDConstPointer:
+            return ResourceIDType::VertexArray;
+        case ParamType::TVertexArrayIDPointer:
+            return ResourceIDType::VertexArray;
+        default:
+            return ResourceIDType::InvalidEnum;
+    }
+}
+
+const char *GetResourceIDTypeName(ResourceIDType resourceIDType)
+{
+    switch (resourceIDType)
+    {
+        case ResourceIDType::Buffer:
+            return "Buffer";
+        case ResourceIDType::FenceNV:
+            return "FenceNV";
+        case ResourceIDType::Framebuffer:
+            return "Framebuffer";
+        case ResourceIDType::MemoryObject:
+            return "MemoryObject";
+        case ResourceIDType::Path:
+            return "Path";
+        case ResourceIDType::ProgramPipeline:
+            return "ProgramPipeline";
+        case ResourceIDType::Query:
+            return "Query";
+        case ResourceIDType::Renderbuffer:
+            return "Renderbuffer";
+        case ResourceIDType::Sampler:
+            return "Sampler";
+        case ResourceIDType::Semaphore:
+            return "Semaphore";
+        case ResourceIDType::ShaderProgram:
+            return "ShaderProgram";
+        case ResourceIDType::Texture:
+            return "Texture";
+        case ResourceIDType::TransformFeedback:
+            return "TransformFeedback";
+        case ResourceIDType::VertexArray:
+            return "VertexArray";
+        default:
+            UNREACHABLE();
+            return "GetResourceIDTypeName error";
+    }
+}
 }  // namespace angle
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/frame_capture_utils_autogen.h b/Source/ThirdParty/ANGLE/src/libANGLE/frame_capture_utils_autogen.h
index ce3cce0..22e13d6 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/frame_capture_utils_autogen.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/frame_capture_utils_autogen.h
@@ -139,6 +139,8 @@
     TvoidPointerPointer,
 };
 
+constexpr uint32_t kParamTypeCount = 120;
+
 union ParamValue
 {
     gl::AlphaTestFunc AlphaTestFuncVal;
@@ -2470,6 +2472,29 @@
 
 void WriteParamTypeToStream(std::ostream &os, ParamType paramType, const ParamValue &paramValue);
 const char *ParamTypeToString(ParamType paramType);
+
+enum class ResourceIDType
+{
+    Buffer,
+    FenceNV,
+    Framebuffer,
+    MemoryObject,
+    Path,
+    ProgramPipeline,
+    Query,
+    Renderbuffer,
+    Sampler,
+    Semaphore,
+    ShaderProgram,
+    Texture,
+    TransformFeedback,
+    VertexArray,
+    EnumCount,
+    InvalidEnum = EnumCount
+};
+
+ResourceIDType GetResourceIDTypeFromParamType(ParamType paramType);
+const char *GetResourceIDTypeName(ResourceIDType resourceIDType);
 }  // namespace angle
 
 #endif  // LIBANGLE_FRAME_CAPTURE_UTILS_AUTOGEN_H_
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/queryutils.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/queryutils.cpp
index 95f0611..3605e30 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/queryutils.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/queryutils.cpp
@@ -534,7 +534,7 @@
                 CastFromStateValue<ParamType>(pname, static_cast<GLint>(attrib.format->isNorm()));
             break;
         case GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:
-            *params = CastFromGLintStateValue<ParamType>(pname, binding.getBuffer().id());
+            *params = CastFromGLintStateValue<ParamType>(pname, binding.getBuffer().id().value);
             break;
         case GL_VERTEX_ATTRIB_ARRAY_DIVISOR:
             *params = CastFromStateValue<ParamType>(pname, binding.getDivisor());
@@ -615,24 +615,32 @@
 
 GLint GetInputResourceProperty(const Program *program, GLuint index, GLenum prop)
 {
-    const auto &attribute = program->getInputResource(index);
+    const sh::ShaderVariable &variable = program->getInputResource(index);
+
     switch (prop)
     {
         case GL_TYPE:
         case GL_ARRAY_SIZE:
+            return GetCommonVariableProperty(variable, prop);
+
         case GL_NAME_LENGTH:
-            return GetCommonVariableProperty(attribute, prop);
+            return clampCast<GLint>(program->getInputResourceName(index).size() + 1u);
 
         case GL_LOCATION:
-            return program->getAttributeLocation(attribute.name);
+            return variable.location;
 
+        // The query is targeted at the set of active input variables used by the first shader stage
+        // of program. If program contains multiple shader stages then input variables from any
+        // stage other than the first will not be enumerated. Since we found the variable to get
+        // this far, we know it exists in the first attached shader stage.
         case GL_REFERENCED_BY_VERTEX_SHADER:
-            return 1;
-
+            return program->getState().getFirstAttachedShaderStageType() == ShaderType::Vertex;
         case GL_REFERENCED_BY_FRAGMENT_SHADER:
+            return program->getState().getFirstAttachedShaderStageType() == ShaderType::Fragment;
         case GL_REFERENCED_BY_COMPUTE_SHADER:
+            return program->getState().getFirstAttachedShaderStageType() == ShaderType::Compute;
         case GL_REFERENCED_BY_GEOMETRY_SHADER_EXT:
-            return 0;
+            return program->getState().getFirstAttachedShaderStageType() == ShaderType::Geometry;
 
         default:
             UNREACHABLE();
@@ -642,28 +650,40 @@
 
 GLint GetOutputResourceProperty(const Program *program, GLuint index, const GLenum prop)
 {
-    const auto &outputVariable = program->getOutputResource(index);
+    const sh::ShaderVariable &outputVariable = program->getOutputResource(index);
+
     switch (prop)
     {
         case GL_TYPE:
         case GL_ARRAY_SIZE:
-        case GL_NAME_LENGTH:
             return GetCommonVariableProperty(outputVariable, prop);
 
+        case GL_NAME_LENGTH:
+            return clampCast<GLint>(program->getOutputResourceName(index).size() + 1u);
+
         case GL_LOCATION:
-            return program->getFragDataLocation(outputVariable.name);
+            return outputVariable.location;
 
         case GL_LOCATION_INDEX_EXT:
             // EXT_blend_func_extended
-            return program->getFragDataIndex(outputVariable.name);
+            if (program->getState().getLastAttachedShaderStageType() == gl::ShaderType::Fragment)
+            {
+                return program->getFragDataIndex(outputVariable.name);
+            }
+            return GL_INVALID_INDEX;
 
-        case GL_REFERENCED_BY_FRAGMENT_SHADER:
-            return 1;
-
+        // The set of active user-defined outputs from the final shader stage in this program. If
+        // the final stage is a Fragment Shader, then this represents the fragment outputs that get
+        // written to individual color buffers. If the program only contains a Compute Shader, then
+        // there are no user-defined outputs.
         case GL_REFERENCED_BY_VERTEX_SHADER:
+            return program->getState().getLastAttachedShaderStageType() == ShaderType::Vertex;
+        case GL_REFERENCED_BY_FRAGMENT_SHADER:
+            return program->getState().getLastAttachedShaderStageType() == ShaderType::Fragment;
         case GL_REFERENCED_BY_COMPUTE_SHADER:
+            return program->getState().getLastAttachedShaderStageType() == ShaderType::Compute;
         case GL_REFERENCED_BY_GEOMETRY_SHADER_EXT:
-            return 0;
+            return program->getState().getLastAttachedShaderStageType() == ShaderType::Geometry;
 
         default:
             UNREACHABLE();
@@ -698,7 +718,7 @@
     switch (programInterface)
     {
         case GL_PROGRAM_INPUT:
-            return clampCast<GLint>(program->getAttributes().size());
+            return clampCast<GLint>(program->getState().getProgramInputs().size());
 
         case GL_PROGRAM_OUTPUT:
             return clampCast<GLint>(program->getState().getOutputVariables().size());
@@ -744,12 +764,11 @@
     switch (programInterface)
     {
         case GL_PROGRAM_INPUT:
-            maxNameLength = FindMaxSize(program->getAttributes(), &sh::ShaderVariable::name);
+            maxNameLength = program->getInputResourceMaxNameSize();
             break;
 
         case GL_PROGRAM_OUTPUT:
-            maxNameLength =
-                FindMaxSize(program->getState().getOutputVariables(), &sh::ShaderVariable::name);
+            maxNameLength = program->getOutputResourceMaxNameSize();
             break;
 
         case GL_UNIFORM:
@@ -1707,7 +1726,7 @@
 
 GLint GetBufferVariableResourceProperty(const Program *program, GLuint index, const GLenum prop)
 {
-    const auto &bufferVariable = program->getBufferVariableByIndex(index);
+    const BufferVariable &bufferVariable = program->getBufferVariableByIndex(index);
     switch (prop)
     {
         case GL_TYPE:
@@ -1836,10 +1855,10 @@
     switch (programInterface)
     {
         case GL_PROGRAM_INPUT:
-            return program->getAttributeLocation(name);
+            return program->getInputResourceLocation(name);
 
         case GL_PROGRAM_OUTPUT:
-            return program->getFragDataLocation(name);
+            return program->getOutputResourceLocation(name);
 
         case GL_UNIFORM:
             return program->getUniformLocation(name);
@@ -1861,10 +1880,17 @@
 {
     if (!program->isLinked())
     {
-        if (length != nullptr)
-        {
-            *length = 0;
-        }
+        return;
+    }
+
+    if (length != nullptr)
+    {
+        *length = 0;
+    }
+
+    if (bufSize == 0)
+    {
+        // No room to write the results
         return;
     }
 
@@ -2894,7 +2920,14 @@
     switch (attribute)
     {
         case EGL_CONFIG_ID:
-            *value = context->getConfig()->configID;
+            if (context->getConfig() != EGL_NO_CONFIG_KHR)
+            {
+                *value = context->getConfig()->configID;
+            }
+            else
+            {
+                *value = 0;
+            }
             break;
         case EGL_CONTEXT_CLIENT_TYPE:
             *value = context->getClientType();
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/DeviceImpl.h b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/DeviceImpl.h
index aac406e..30cee7d 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/DeviceImpl.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/DeviceImpl.h
@@ -15,11 +15,13 @@
 
 namespace egl
 {
-class Device;
+class Display;
 }
 
 namespace rx
 {
+class DisplayImpl;
+
 class DeviceImpl : angle::NonCopyable
 {
   public:
@@ -28,7 +30,9 @@
 
     virtual egl::Error initialize() = 0;
 
-    virtual egl::Error getDevice(void **outValue)                               = 0;
+    virtual egl::Error getAttribute(const egl::Display *display,
+                                    EGLint attribute,
+                                    void **outValue)                            = 0;
     virtual EGLint getType()                                                    = 0;
     virtual void generateExtensions(egl::DeviceExtensions *outExtensions) const = 0;
 };
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/Format.h b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/Format.h
index 7eb5dab..4c3602a 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/Format.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/Format.h
@@ -57,6 +57,7 @@
     constexpr bool isSnorm() const;
     constexpr bool isUnorm() const;
     constexpr bool isFloat() const;
+    constexpr bool isVertexTypeHalfFloat() const;
 
     constexpr bool isInt() const { return isSint() || isUint(); }
     constexpr bool isNorm() const { return isSnorm() || isUnorm(); }
@@ -209,6 +210,11 @@
     return componentType == GL_FLOAT;
 }
 
+constexpr bool Format::isVertexTypeHalfFloat() const
+{
+    return vertexAttribType == gl::VertexAttribType::HalfFloat;
+}
+
 }  // namespace angle
 
 #endif  // LIBANGLE_RENDERER_FORMAT_H_
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/FormatID_autogen.h b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/FormatID_autogen.h
index c2a1b8c..69abaf9 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/FormatID_autogen.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/FormatID_autogen.h
@@ -20,6 +20,12 @@
     NONE,
     A16_FLOAT,
     A1R5G5B5_UNORM,
+    A2R10G10B10_SINT_VERTEX,
+    A2R10G10B10_SNORM_VERTEX,
+    A2R10G10B10_SSCALED_VERTEX,
+    A2R10G10B10_UINT_VERTEX,
+    A2R10G10B10_UNORM_VERTEX,
+    A2R10G10B10_USCALED_VERTEX,
     A32_FLOAT,
     A8_UNORM,
     ASTC_10x10_SRGB_BLOCK,
@@ -214,10 +220,16 @@
     R8_UNORM,
     R8_USCALED,
     R9G9B9E5_SHAREDEXP,
-    S8_UINT
+    S8_UINT,
+    X2R10G10B10_SINT_VERTEX,
+    X2R10G10B10_SNORM_VERTEX,
+    X2R10G10B10_SSCALED_VERTEX,
+    X2R10G10B10_UINT_VERTEX,
+    X2R10G10B10_UNORM_VERTEX,
+    X2R10G10B10_USCALED_VERTEX
 };
 
-constexpr uint32_t kNumANGLEFormats = 198;
+constexpr uint32_t kNumANGLEFormats = 210;
 
 }  // namespace angle
 
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/Format_table_autogen.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/Format_table_autogen.cpp
index d5fef80..dd11eef 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/Format_table_autogen.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/Format_table_autogen.cpp
@@ -27,6 +27,12 @@
     { FormatID::NONE, GL_NONE, GL_NONE, nullptr, NoCopyFunctions, nullptr, nullptr, GL_NONE, 0, 0, 0, 0, 0, 0, 0, 0, 0, false, false, false, gl::VertexAttribType::InvalidEnum },
     { FormatID::A16_FLOAT, GL_ALPHA16F_EXT, GL_ALPHA16F_EXT, GenerateMip<A16F>, NoCopyFunctions, ReadColor<A16F, GLfloat>, WriteColor<A16F, GLfloat>, GL_FLOAT, 0, 0, 0, 16, 0, 0, 0, 2, 1, false, false, false, gl::VertexAttribType::Float },
     { FormatID::A1R5G5B5_UNORM, GL_A1RGB5_ANGLEX, GL_A1RGB5_ANGLEX, GenerateMip<A1R5G5B5>, NoCopyFunctions, ReadColor<A1R5G5B5, GLfloat>, WriteColor<A1R5G5B5, GLfloat>, GL_UNSIGNED_NORMALIZED, 5, 5, 5, 1, 0, 0, 0, 2, std::numeric_limits<GLuint>::max(), false, false, false, gl::VertexAttribType::InvalidEnum },
+    { FormatID::A2R10G10B10_SINT_VERTEX, GL_INT_10_10_10_2_OES, GL_INT_10_10_10_2_OES, nullptr, NoCopyFunctions, nullptr, nullptr, GL_INT, 10, 10, 10, 2, 0, 0, 0, 4, std::numeric_limits<GLuint>::max(), false, false, false, gl::VertexAttribType::Int1010102 },
+    { FormatID::A2R10G10B10_SNORM_VERTEX, GL_A2_RGB10_SNORM_ANGLEX, GL_A2_RGB10_SNORM_ANGLEX, nullptr, NoCopyFunctions, nullptr, nullptr, GL_SIGNED_NORMALIZED, 10, 10, 10, 2, 0, 0, 0, 4, std::numeric_limits<GLuint>::max(), false, false, false, gl::VertexAttribType::Int1010102 },
+    { FormatID::A2R10G10B10_SSCALED_VERTEX, GL_A2_RGB10_SSCALED_ANGLEX, GL_A2_RGB10_SSCALED_ANGLEX, nullptr, NoCopyFunctions, nullptr, nullptr, GL_INT, 10, 10, 10, 2, 0, 0, 0, 4, std::numeric_limits<GLuint>::max(), false, false, true, gl::VertexAttribType::Int1010102 },
+    { FormatID::A2R10G10B10_UINT_VERTEX, GL_UNSIGNED_INT_10_10_10_2_OES, GL_UNSIGNED_INT_10_10_10_2_OES, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_INT, 10, 10, 10, 2, 0, 0, 0, 4, std::numeric_limits<GLuint>::max(), false, false, false, gl::VertexAttribType::UnsignedInt1010102 },
+    { FormatID::A2R10G10B10_UNORM_VERTEX, GL_A2_RGB10_UNORM_ANGLEX, GL_A2_RGB10_UNORM_ANGLEX, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 10, 10, 10, 2, 0, 0, 0, 4, std::numeric_limits<GLuint>::max(), false, false, false, gl::VertexAttribType::UnsignedInt1010102 },
+    { FormatID::A2R10G10B10_USCALED_VERTEX, GL_A2_RGB10_USCALED_ANGLEX, GL_A2_RGB10_USCALED_ANGLEX, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_INT, 10, 10, 10, 2, 0, 0, 0, 4, std::numeric_limits<GLuint>::max(), false, false, true, gl::VertexAttribType::UnsignedInt1010102 },
     { FormatID::A32_FLOAT, GL_ALPHA32F_EXT, GL_ALPHA32F_EXT, GenerateMip<A32F>, NoCopyFunctions, ReadColor<A32F, GLfloat>, WriteColor<A32F, GLfloat>, GL_FLOAT, 0, 0, 0, 32, 0, 0, 0, 4, 3, false, false, false, gl::VertexAttribType::Float },
     { FormatID::A8_UNORM, GL_ALPHA8_EXT, GL_ALPHA8_EXT, GenerateMip<A8>, NoCopyFunctions, ReadColor<A8, GLfloat>, WriteColor<A8, GLfloat>, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 8, 0, 0, 0, 1, 0, false, false, false, gl::VertexAttribType::InvalidEnum },
     { FormatID::ASTC_10x10_SRGB_BLOCK, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, 16, std::numeric_limits<GLuint>::max(), true, false, false, gl::VertexAttribType::InvalidEnum },
@@ -222,6 +228,12 @@
     { FormatID::R8_USCALED, GL_R8_USCALED_ANGLEX, GL_R8_USCALED_ANGLEX, GenerateMip<R8>, NoCopyFunctions, ReadColor<R8, GLuint>, WriteColor<R8, GLuint>, GL_UNSIGNED_INT, 8, 0, 0, 0, 0, 0, 0, 1, 0, false, false, true, gl::VertexAttribType::UnsignedByte },
     { FormatID::R9G9B9E5_SHAREDEXP, GL_RGB9_E5, GL_RGB9_E5, GenerateMip<R9G9B9E5>, NoCopyFunctions, ReadColor<R9G9B9E5, GLfloat>, WriteColor<R9G9B9E5, GLfloat>, GL_FLOAT, 9, 9, 9, 0, 0, 0, 0, 4, std::numeric_limits<GLuint>::max(), false, false, false, gl::VertexAttribType::InvalidEnum },
     { FormatID::S8_UINT, GL_STENCIL_INDEX8, GL_STENCIL_INDEX8, nullptr, NoCopyFunctions, ReadDepthStencil<S8>, WriteDepthStencil<S8>, GL_UNSIGNED_INT, 0, 0, 0, 0, 0, 0, 8, 1, std::numeric_limits<GLuint>::max(), false, false, false, gl::VertexAttribType::InvalidEnum },
+    { FormatID::X2R10G10B10_SINT_VERTEX, GL_X2_RGB10_SINT_ANGLEX, GL_X2_RGB10_SINT_ANGLEX, nullptr, NoCopyFunctions, nullptr, nullptr, GL_INT, 10, 10, 10, 0, 0, 0, 0, 4, std::numeric_limits<GLuint>::max(), false, false, false, gl::VertexAttribType::Int1010102 },
+    { FormatID::X2R10G10B10_SNORM_VERTEX, GL_X2_RGB10_SNORM_ANGLEX, GL_X2_RGB10_SNORM_ANGLEX, nullptr, NoCopyFunctions, nullptr, nullptr, GL_SIGNED_NORMALIZED, 10, 10, 10, 0, 0, 0, 0, 4, std::numeric_limits<GLuint>::max(), false, false, false, gl::VertexAttribType::Int1010102 },
+    { FormatID::X2R10G10B10_SSCALED_VERTEX, GL_X2_RGB10_SSCALED_ANGLEX, GL_X2_RGB10_SSCALED_ANGLEX, nullptr, NoCopyFunctions, nullptr, nullptr, GL_INT, 10, 10, 10, 0, 0, 0, 0, 4, std::numeric_limits<GLuint>::max(), false, false, true, gl::VertexAttribType::Int1010102 },
+    { FormatID::X2R10G10B10_UINT_VERTEX, GL_X2_RGB10_UINT_ANGLEX, GL_X2_RGB10_UINT_ANGLEX, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_INT, 10, 10, 10, 0, 0, 0, 0, 4, std::numeric_limits<GLuint>::max(), false, false, false, gl::VertexAttribType::UnsignedInt1010102 },
+    { FormatID::X2R10G10B10_UNORM_VERTEX, GL_X2_RGB10_UNORM_ANGLEX, GL_X2_RGB10_UNORM_ANGLEX, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 10, 10, 10, 0, 0, 0, 0, 4, std::numeric_limits<GLuint>::max(), false, false, false, gl::VertexAttribType::UnsignedInt1010102 },
+    { FormatID::X2R10G10B10_USCALED_VERTEX, GL_X2_RGB10_USCALED_ANGLEX, GL_X2_RGB10_USCALED_ANGLEX, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_INT, 10, 10, 10, 0, 0, 0, 0, 4, std::numeric_limits<GLuint>::max(), false, false, true, gl::VertexAttribType::UnsignedInt1010102 },
     // clang-format on
 };
 
@@ -232,6 +244,14 @@
     {
         case GL_A1RGB5_ANGLEX:
             return FormatID::A1R5G5B5_UNORM;
+        case GL_A2_RGB10_SNORM_ANGLEX:
+            return FormatID::A2R10G10B10_SNORM_VERTEX;
+        case GL_A2_RGB10_SSCALED_ANGLEX:
+            return FormatID::A2R10G10B10_SSCALED_VERTEX;
+        case GL_A2_RGB10_UNORM_ANGLEX:
+            return FormatID::A2R10G10B10_UNORM_VERTEX;
+        case GL_A2_RGB10_USCALED_ANGLEX:
+            return FormatID::A2R10G10B10_USCALED_VERTEX;
         case GL_ALPHA16F_EXT:
             return FormatID::A16_FLOAT;
         case GL_ALPHA32F_EXT:
@@ -410,6 +430,8 @@
             return FormatID::ETC1_LOSSY_DECODE_R8G8B8_UNORM_BLOCK;
         case GL_ETC1_RGB8_OES:
             return FormatID::ETC1_R8G8B8_UNORM_BLOCK;
+        case GL_INT_10_10_10_2_OES:
+            return FormatID::A2R10G10B10_SINT_VERTEX;
         case GL_LUMINANCE16F_EXT:
             return FormatID::L16_FLOAT;
         case GL_LUMINANCE32F_EXT:
@@ -630,6 +652,20 @@
             return FormatID::R8G8B8A8_UNORM_SRGB;
         case GL_STENCIL_INDEX8:
             return FormatID::S8_UINT;
+        case GL_UNSIGNED_INT_10_10_10_2_OES:
+            return FormatID::A2R10G10B10_UINT_VERTEX;
+        case GL_X2_RGB10_SINT_ANGLEX:
+            return FormatID::X2R10G10B10_SINT_VERTEX;
+        case GL_X2_RGB10_SNORM_ANGLEX:
+            return FormatID::X2R10G10B10_SNORM_VERTEX;
+        case GL_X2_RGB10_SSCALED_ANGLEX:
+            return FormatID::X2R10G10B10_SSCALED_VERTEX;
+        case GL_X2_RGB10_UINT_ANGLEX:
+            return FormatID::X2R10G10B10_UINT_VERTEX;
+        case GL_X2_RGB10_UNORM_ANGLEX:
+            return FormatID::X2R10G10B10_UNORM_VERTEX;
+        case GL_X2_RGB10_USCALED_ANGLEX:
+            return FormatID::X2R10G10B10_USCALED_VERTEX;
         default:
             return FormatID::NONE;
     }
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/angle_format.py b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/angle_format.py
index 05aa785..88e3236 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/angle_format.py
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/angle_format.py
@@ -135,6 +135,9 @@
         return 'rgba'
     if internal_format == 'GL_RGB10_UNORM_ANGLEX':
         return 'rgb'
+    # signed/unsigned int_10_10_10_2 for vertex format
+    if internal_format.find('INT_10_10_10_2_OES') == 0:
+        return 'rgba'
 
     channels_pattern = re.compile('GL_(COMPRESSED_)?(SIGNED_)?(ETC\d_)?([A-Z]+)')
     match = re.search(channels_pattern, internal_format)
@@ -243,6 +246,16 @@
     if num_channel < 1 or num_channel > 4:
         return "nullptr"
 
+    if src_format.endswith('_VERTEX'):
+        assert 'FLOAT' in dst_format, (
+            'get_vertex_copy_function: can only convert to float,' + ' not to ' + dst_format)
+        is_signed = 'true' if 'SINT' in src_format or 'SNORM' in src_format or 'SSCALED' in src_format else 'false'
+        is_normal = 'true' if 'NORM' in src_format else 'false'
+        if 'A2' in src_format:
+            return 'CopyW2XYZ10ToXYZW32FVertexData<%s, %s>' % (is_signed, is_normal)
+        else:
+            return 'CopyXYZ10ToXYZW32FVertexData<%s, %s>' % (is_signed, is_normal)
+
     if 'FIXED' in src_format:
         assert 'FLOAT' in dst_format, (
             'get_vertex_copy_function: can only convert fixed to float,' + ' not to ' + dst_format)
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/angle_format_map.json b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/angle_format_map.json
index f8421c1..3cdc833 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/angle_format_map.json
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/angle_format_map.json
@@ -198,5 +198,17 @@
   [ "GL_RG32_FIXED_ANGLEX", "R32G32_FIXED" ],
   [ "GL_RGB32_FIXED_ANGLEX", "R32G32B32_FIXED" ],
   [ "GL_RGBA32_FIXED_ANGLEX", "R32G32B32A32_FIXED" ],
-  [ "GL_RGB10_UNORM_ANGLEX", "R10G10B10X2_UNORM" ]
+  [ "GL_RGB10_UNORM_ANGLEX", "R10G10B10X2_UNORM" ],
+  [ "GL_UNSIGNED_INT_10_10_10_2_OES", "A2R10G10B10_UINT_VERTEX" ],
+  [ "GL_INT_10_10_10_2_OES", "A2R10G10B10_SINT_VERTEX" ],
+  [ "GL_A2_RGB10_USCALED_ANGLEX", "A2R10G10B10_USCALED_VERTEX" ],
+  [ "GL_A2_RGB10_SSCALED_ANGLEX", "A2R10G10B10_SSCALED_VERTEX" ],
+  [ "GL_A2_RGB10_UNORM_ANGLEX", "A2R10G10B10_UNORM_VERTEX" ],
+  [ "GL_A2_RGB10_SNORM_ANGLEX", "A2R10G10B10_SNORM_VERTEX" ],
+  [ "GL_X2_RGB10_UINT_ANGLEX", "X2R10G10B10_UINT_VERTEX" ],
+  [ "GL_X2_RGB10_SINT_ANGLEX", "X2R10G10B10_SINT_VERTEX" ],
+  [ "GL_X2_RGB10_USCALED_ANGLEX", "X2R10G10B10_USCALED_VERTEX" ],
+  [ "GL_X2_RGB10_SSCALED_ANGLEX", "X2R10G10B10_SSCALED_VERTEX" ],
+  [ "GL_X2_RGB10_UNORM_ANGLEX", "X2R10G10B10_UNORM_VERTEX" ],
+  [ "GL_X2_RGB10_SNORM_ANGLEX", "X2R10G10B10_SNORM_VERTEX" ]
 ]
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/copyvertex.h b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/copyvertex.h
index 2baf4c0..a0fd95b 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/copyvertex.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/copyvertex.h
@@ -50,6 +50,18 @@
                                     size_t count,
                                     uint8_t *output);
 
+template <bool isSigned, bool normalized>
+void CopyXYZ10ToXYZW32FVertexData(const uint8_t *input,
+                                  size_t stride,
+                                  size_t count,
+                                  uint8_t *output);
+
+template <bool isSigned, bool normalized>
+void CopyW2XYZ10ToXYZW32FVertexData(const uint8_t *input,
+                                    size_t stride,
+                                    size_t count,
+                                    uint8_t *output);
+
 }  // namespace rx
 
 #include "copyvertex.inc.h"
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/copyvertex.inc.h b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/copyvertex.inc.h
index 99d8b66..1d61a44 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/copyvertex.inc.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/copyvertex.inc.h
@@ -193,8 +193,8 @@
             {
                 if (NL::is_signed)
                 {
-                    const float divisor = 1.0f / (2 * static_cast<float>(NL::max()) + 1);
-                    offsetOutput[j]     = (2 * static_cast<float>(offsetInput[j]) + 1) * divisor;
+                    offsetOutput[j] = static_cast<float>(offsetInput[j]) / NL::max();
+                    offsetOutput[j] = (offsetOutput[j] >= -1.0f) ? (offsetOutput[j]) : (-1.0f);
                 }
                 else
                 {
@@ -476,4 +476,68 @@
     }
 }
 
+template <bool isSigned, bool normalized>
+inline void CopyXYZ10ToXYZW32FVertexData(const uint8_t *input,
+                                         size_t stride,
+                                         size_t count,
+                                         uint8_t *output)
+{
+    const size_t outputComponentSize = 4;
+    const size_t componentCount      = 4;
+
+    const uint32_t rgbMask  = 0x3FF;  // 1 set in bits 0 through 9
+    const size_t redShift   = 22;     // red is bits 22 through 31
+    const size_t greenShift = 12;     // green is bits 12 through 21
+    const size_t blueShift  = 2;      // blue is bits 2 through 11
+
+    const uint32_t alphaDefaultValueBits = normalized ? (isSigned ? 0x1 : 0x3) : 0x1;
+
+    for (size_t i = 0; i < count; i++)
+    {
+        GLuint packedValue    = *reinterpret_cast<const GLuint *>(input + (i * stride));
+        uint8_t *offsetOutput = output + (i * outputComponentSize * componentCount);
+
+        priv::CopyPackedRGB<isSigned, normalized, true>((packedValue >> redShift) & rgbMask,
+                                                        offsetOutput + (0 * outputComponentSize));
+        priv::CopyPackedRGB<isSigned, normalized, true>((packedValue >> greenShift) & rgbMask,
+                                                        offsetOutput + (1 * outputComponentSize));
+        priv::CopyPackedRGB<isSigned, normalized, true>((packedValue >> blueShift) & rgbMask,
+                                                        offsetOutput + (2 * outputComponentSize));
+        priv::CopyPackedAlpha<isSigned, normalized, true>(alphaDefaultValueBits,
+                                                          offsetOutput + (3 * outputComponentSize));
+    }
+}
+
+template <bool isSigned, bool normalized>
+inline void CopyW2XYZ10ToXYZW32FVertexData(const uint8_t *input,
+                                           size_t stride,
+                                           size_t count,
+                                           uint8_t *output)
+{
+    const size_t outputComponentSize = 4;
+    const size_t componentCount      = 4;
+
+    const uint32_t rgbMask  = 0x3FF;  // 1 set in bits 0 through 9
+    const size_t redShift   = 22;     // red is bits 22 through 31
+    const size_t greenShift = 12;     // green is bits 12 through 21
+    const size_t blueShift  = 2;      // blue is bits 2 through 11
+
+    const uint32_t alphaMask = 0x3;  // 1 set in bits 0 and 1
+    const size_t alphaShift  = 0;    // Alpha is the 30 and 31 bits
+
+    for (size_t i = 0; i < count; i++)
+    {
+        GLuint packedValue    = *reinterpret_cast<const GLuint *>(input + (i * stride));
+        uint8_t *offsetOutput = output + (i * outputComponentSize * componentCount);
+
+        priv::CopyPackedRGB<isSigned, normalized, true>((packedValue >> redShift) & rgbMask,
+                                                        offsetOutput + (0 * outputComponentSize));
+        priv::CopyPackedRGB<isSigned, normalized, true>((packedValue >> greenShift) & rgbMask,
+                                                        offsetOutput + (1 * outputComponentSize));
+        priv::CopyPackedRGB<isSigned, normalized, true>((packedValue >> blueShift) & rgbMask,
+                                                        offsetOutput + (2 * outputComponentSize));
+        priv::CopyPackedAlpha<isSigned, normalized, true>((packedValue >> alphaShift) & alphaMask,
+                                                          offsetOutput + (3 * outputComponentSize));
+    }
+}
 }  // namespace rx
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/DeviceD3D.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/DeviceD3D.cpp
index 695ace2..79dfb09 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/DeviceD3D.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/DeviceD3D.cpp
@@ -7,7 +7,6 @@
 // DeviceD3D.cpp: D3D implementation of egl::Device
 
 #include "libANGLE/renderer/d3d/DeviceD3D.h"
-#include "libANGLE/renderer/d3d/RendererD3D.h"
 
 #include "libANGLE/Device.h"
 #include "libANGLE/Display.h"
@@ -33,9 +32,12 @@
 #endif
 }
 
-egl::Error DeviceD3D::getDevice(void **outValue)
+egl::Error DeviceD3D::getAttribute(const egl::Display *display, EGLint attribute, void **outValue)
 {
     ASSERT(mIsInitialized);
+    ANGLE_UNUSED_VARIABLE(display);
+    // Validated at higher levels.
+    ASSERT(getType() == attribute);
     *outValue = mDevice;
     return egl::NoError();
 }
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/DeviceD3D.h b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/DeviceD3D.h
index ee66693..c169eb7 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/DeviceD3D.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/DeviceD3D.h
@@ -22,7 +22,9 @@
     ~DeviceD3D() override;
 
     egl::Error initialize() override;
-    egl::Error getDevice(void **outValue) override;
+    egl::Error getAttribute(const egl::Display *display,
+                            EGLint attribute,
+                            void **outValue) override;
     EGLint getType() override;
     void generateExtensions(egl::DeviceExtensions *outExtensions) const override;
 
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/HLSLCompiler.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/HLSLCompiler.cpp
index 811e1932..aabe067 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/HLSLCompiler.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/HLSLCompiler.cpp
@@ -121,7 +121,7 @@
     }
 
     ANGLE_TRACE_EVENT0("gpu.angle", "HLSLCompiler::initialize");
-#if !defined(ANGLE_ENABLE_WINDOWS_STORE)
+#if !defined(ANGLE_ENABLE_WINDOWS_UWP)
 #    if defined(ANGLE_PRELOADED_D3DCOMPILER_MODULE_NAMES)
     // Find a D3DCompiler module that had already been loaded based on a predefined list of
     // versions.
@@ -214,12 +214,12 @@
 {
     ASSERT(mInitialized);
 
-#if !defined(ANGLE_ENABLE_WINDOWS_STORE)
+#if !defined(ANGLE_ENABLE_WINDOWS_UWP)
     ASSERT(mD3DCompilerModule);
 #endif
     ASSERT(mD3DCompileFunc);
 
-#if !defined(ANGLE_ENABLE_WINDOWS_STORE) && defined(ANGLE_ENABLE_DEBUG_TRACE)
+#if !defined(ANGLE_ENABLE_WINDOWS_UWP) && defined(ANGLE_ENABLE_DEBUG_TRACE)
     std::string sourcePath = getTempPath();
     std::ostringstream stream;
     stream << "#line 2 \"" << sourcePath << "\"\n\n" << hlsl;
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/ProgramD3D.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/ProgramD3D.cpp
index 2febac0..6a097b5 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/ProgramD3D.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/ProgramD3D.cpp
@@ -1557,7 +1557,7 @@
 
     // Generate new dynamic layout with attribute conversions
     std::string finalVertexHLSL = mDynamicHLSL->generateVertexShaderForInputLayout(
-        mShaderHLSL[gl::ShaderType::Vertex], mCachedInputLayout, mState.getAttributes());
+        mShaderHLSL[gl::ShaderType::Vertex], mCachedInputLayout, mState.getProgramInputs());
 
     // Generate new vertex executable
     ShaderExecutableD3D *vertexExecutable = nullptr;
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/RendererD3D.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/RendererD3D.cpp
index ba71982..00c57f0 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/RendererD3D.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/RendererD3D.cpp
@@ -240,7 +240,9 @@
 {
     switch (hr)
     {
+#ifdef ANGLE_ENABLE_D3D9
         case D3DERR_OUTOFVIDEOMEMORY:
+#endif
         case E_OUTOFMEMORY:
             return GL_OUT_OF_MEMORY;
         default:
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/ShaderD3D.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/ShaderD3D.cpp
index bf82a0c..e97e03f 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/ShaderD3D.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/ShaderD3D.cpp
@@ -252,7 +252,7 @@
 
     const std::string &source = mData.getSource();
 
-#if !defined(ANGLE_ENABLE_WINDOWS_STORE)
+#if !defined(ANGLE_ENABLE_WINDOWS_UWP)
     if (gl::DebugAnnotationsActive())
     {
         sourcePath = getTempPath();
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/Buffer11.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/Buffer11.cpp
index 735d6ae..b7284ed 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/Buffer11.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/Buffer11.cpp
@@ -684,8 +684,9 @@
                                                UINT *numConstantsOut)
 {
     NativeStorage *bufferStorage = nullptr;
-
-    if (offset == 0 || mRenderer->getRenderer11DeviceCaps().supportsConstantBufferOffsets)
+    if ((offset == 0 &&
+         size < static_cast<GLsizeiptr>(mRenderer->getNativeCaps().maxUniformBlockSize)) ||
+        mRenderer->getRenderer11DeviceCaps().supportsConstantBufferOffsets)
     {
         ANGLE_TRY(getBufferStorage(context, BUFFER_USAGE_UNIFORM, &bufferStorage));
         CalculateConstantBufferParams(offset, size, firstConstantOut, numConstantsOut);
@@ -1217,9 +1218,12 @@
 
             // Note: it seems that D3D11 allows larger buffers on some platforms, but not all.
             // (Windows 10 seems to allow larger constant buffers, but not Windows 7)
-            bufferDesc->ByteWidth =
-                std::min<UINT>(bufferDesc->ByteWidth,
-                               static_cast<UINT>(renderer->getNativeCaps().maxUniformBlockSize));
+            if (!renderer->getRenderer11DeviceCaps().supportsConstantBufferOffsets)
+            {
+                bufferDesc->ByteWidth = std::min<UINT>(
+                    bufferDesc->ByteWidth,
+                    static_cast<UINT>(renderer->getNativeCaps().maxUniformBlockSize));
+            }
             break;
 
         case BUFFER_USAGE_RAW_UAV:
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/Context11.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/Context11.cpp
index 49e98a4..4cc0faa 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/Context11.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/Context11.cpp
@@ -268,7 +268,7 @@
     ASSERT(count > 0);
     ANGLE_TRY(mRenderer->getStateManager()->updateState(
         context, mode, first, count, gl::DrawElementsType::InvalidEnum, nullptr, 0, 0));
-    return mRenderer->drawArrays(context, mode, first, count, 0);
+    return mRenderer->drawArrays(context, mode, first, count, 0, 0);
 }
 
 angle::Result Context11::drawArraysInstanced(const gl::Context *context,
@@ -280,7 +280,7 @@
     ASSERT(count > 0);
     ANGLE_TRY(mRenderer->getStateManager()->updateState(
         context, mode, first, count, gl::DrawElementsType::InvalidEnum, nullptr, instanceCount, 0));
-    return mRenderer->drawArrays(context, mode, first, count, instanceCount);
+    return mRenderer->drawArrays(context, mode, first, count, instanceCount, 0);
 }
 
 angle::Result Context11::drawArraysInstancedBaseInstance(const gl::Context *context,
@@ -290,7 +290,10 @@
                                                          GLsizei instanceCount,
                                                          GLuint baseInstance)
 {
-    return drawArraysInstanced(context, mode, first, count, instanceCount);
+    ASSERT(count > 0);
+    ANGLE_TRY(mRenderer->getStateManager()->updateState(
+        context, mode, first, count, gl::DrawElementsType::InvalidEnum, nullptr, instanceCount, 0));
+    return mRenderer->drawArrays(context, mode, first, count, instanceCount, baseInstance);
 }
 
 ANGLE_INLINE angle::Result Context11::drawElementsImpl(const gl::Context *context,
@@ -380,7 +383,8 @@
         ANGLE_TRY(mRenderer->getStateManager()->updateState(context, mode, cmd->first, cmd->count,
                                                             gl::DrawElementsType::InvalidEnum,
                                                             nullptr, cmd->instanceCount, 0));
-        return mRenderer->drawArrays(context, mode, cmd->first, cmd->count, cmd->instanceCount);
+        return mRenderer->drawArrays(context, mode, cmd->first, cmd->count, cmd->instanceCount,
+                                     cmd->baseInstance);
     }
     else
     {
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/DebugAnnotator11.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/DebugAnnotator11.cpp
index 3125043..0690118 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/DebugAnnotator11.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/DebugAnnotator11.cpp
@@ -67,12 +67,14 @@
 
 void DebugAnnotator11::initialize(ID3D11DeviceContext *context)
 {
+#if !defined(ANGLE_ENABLE_WINDOWS_UWP)
     // ID3DUserDefinedAnnotation.GetStatus only works on Windows10 or greater.
     // Returning true unconditionally from DebugAnnotator11::getStatus() means
     // writing out all compiled shaders to temporary files even if debugging
     // tools are not attached. See rx::ShaderD3D::prepareSourceAndReturnOptions.
     // If you want debug annotations, you must use Windows 10.
     if (IsWindows10OrGreater())
+#endif
     {
         mAnnotationThread = std::this_thread::get_id();
         mUserDefinedAnnotation.Attach(
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp
index 0b32c5e..7df9d1f 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp
@@ -62,7 +62,7 @@
 #include "libANGLE/renderer/renderer_utils.h"
 #include "libANGLE/trace.h"
 
-#ifdef ANGLE_ENABLE_WINDOWS_STORE
+#ifdef ANGLE_ENABLE_WINDOWS_UWP
 #    include "libANGLE/renderer/d3d/d3d11/winrt/NativeWindow11WinRT.h"
 #else
 #    include "libANGLE/renderer/d3d/d3d11/converged/CompositorNativeWindow11.h"
@@ -402,6 +402,7 @@
     mRenderer11DeviceCaps.B5G5R5A1support                        = 0;
 
     mD3d11Module          = nullptr;
+    mD3d12Module          = nullptr;
     mDxgiModule           = nullptr;
     mDCompModule          = nullptr;
     mCreatedWithDeviceEXT = false;
@@ -513,7 +514,7 @@
 
     ANGLE_TRY(initializeD3DDevice());
 
-#if !defined(ANGLE_ENABLE_WINDOWS_STORE)
+#if !defined(ANGLE_ENABLE_WINDOWS_UWP)
 #    if !ANGLE_SKIP_DXGI_1_2_CHECK
     {
         ANGLE_TRACE_EVENT0("gpu.angle", "Renderer11::initialize (DXGICheck)");
@@ -668,35 +669,119 @@
         D3D11_SDK_VERSION, &mDevice, &(mRenderer11DeviceCaps.featureLevel), &mDeviceContext);
 }
 
+HRESULT Renderer11::callD3D11On12CreateDevice(PFN_D3D12_CREATE_DEVICE createDevice12,
+                                              PFN_D3D11ON12_CREATE_DEVICE createDevice11on12,
+                                              bool debug)
+{
+    angle::ComPtr<IDXGIFactory4> factory;
+    HRESULT result = CreateDXGIFactory1(IID_PPV_ARGS(&factory));
+    if (FAILED(result))
+    {
+        return result;
+    }
+
+    if (mRequestedDriverType == D3D_DRIVER_TYPE_WARP)
+    {
+        angle::ComPtr<IDXGIAdapter> warpAdapter;
+        result = factory->EnumWarpAdapter(IID_PPV_ARGS(&warpAdapter));
+        if (SUCCEEDED(result))
+        {
+            result = createDevice12(warpAdapter.Get(), mAvailableFeatureLevels[0],
+                                    IID_PPV_ARGS(&mDevice12));
+        }
+    }
+    else
+    {
+        // Passing nullptr into pAdapter chooses the default adapter which will be the hardware
+        // adapter if it exists.
+        result = createDevice12(nullptr, mAvailableFeatureLevels[0], IID_PPV_ARGS(&mDevice12));
+    }
+
+    if (SUCCEEDED(result))
+    {
+        D3D12_COMMAND_QUEUE_DESC queueDesc = {};
+        queueDesc.Flags                    = D3D12_COMMAND_QUEUE_FLAG_NONE;
+        queueDesc.Type                     = D3D12_COMMAND_LIST_TYPE_DIRECT;
+        result = mDevice12->CreateCommandQueue(&queueDesc, IID_PPV_ARGS(&mCommandQueue));
+    }
+
+    if (SUCCEEDED(result))
+    {
+        result = createDevice11on12(
+            mDevice12.Get(), debug ? D3D11_CREATE_DEVICE_DEBUG : 0, mAvailableFeatureLevels.data(),
+            static_cast<unsigned int>(mAvailableFeatureLevels.size()),
+            reinterpret_cast<IUnknown **>(mCommandQueue.GetAddressOf()), 1 /* NumQueues */,
+            0 /* NodeMask */, &mDevice, &mDeviceContext, &(mRenderer11DeviceCaps.featureLevel));
+    }
+
+    return result;
+}
+
 egl::Error Renderer11::initializeD3DDevice()
 {
     HRESULT result = S_OK;
+    bool createD3D11on12Device = false;
 
     if (!mCreatedWithDeviceEXT)
     {
-#if !defined(ANGLE_ENABLE_WINDOWS_STORE)
+#if !defined(ANGLE_ENABLE_WINDOWS_UWP)
         PFN_D3D11_CREATE_DEVICE D3D11CreateDevice = nullptr;
+        PFN_D3D12_CREATE_DEVICE D3D12CreateDevice         = nullptr;
+        PFN_D3D11ON12_CREATE_DEVICE D3D11on12CreateDevice = nullptr;
         {
             ANGLE_TRACE_EVENT0("gpu.angle", "Renderer11::initialize (Load DLLs)");
             mDxgiModule  = LoadLibrary(TEXT("dxgi.dll"));
             mD3d11Module = LoadLibrary(TEXT("d3d11.dll"));
             mDCompModule = LoadLibrary(TEXT("dcomp.dll"));
 
-            if (mD3d11Module == nullptr || mDxgiModule == nullptr)
-            {
-                return egl::EglNotInitialized(D3D11_INIT_MISSING_DEP)
-                       << "Could not load D3D11 or DXGI library.";
-            }
-
             // create the D3D11 device
             ASSERT(mDevice == nullptr);
-            D3D11CreateDevice = reinterpret_cast<PFN_D3D11_CREATE_DEVICE>(
-                GetProcAddress(mD3d11Module, "D3D11CreateDevice"));
 
-            if (D3D11CreateDevice == nullptr)
+            const egl::AttributeMap &attributes = mDisplay->getAttributeMap();
+            createD3D11on12Device =
+                static_cast<EGLint>(attributes.get(EGL_PLATFORM_ANGLE_D3D11ON12_ANGLE, EGL_FALSE));
+
+            if (createD3D11on12Device)
             {
-                return egl::EglNotInitialized(D3D11_INIT_MISSING_DEP)
-                       << "Could not retrieve D3D11CreateDevice address.";
+                mD3d12Module = LoadLibrary(TEXT("d3d12.dll"));
+                if (mD3d12Module == nullptr)
+                {
+                    return egl::EglNotInitialized(D3D11_INIT_MISSING_DEP)
+                           << "Could not load D3D12 library.";
+                }
+
+                D3D12CreateDevice = reinterpret_cast<PFN_D3D12_CREATE_DEVICE>(
+                    GetProcAddress(mD3d12Module, "D3D12CreateDevice"));
+                if (D3D12CreateDevice == nullptr)
+                {
+                    return egl::EglNotInitialized(D3D11_INIT_MISSING_DEP)
+                           << "Could not retrieve D3D12CreateDevice address.";
+                }
+
+                D3D11on12CreateDevice = reinterpret_cast<PFN_D3D11ON12_CREATE_DEVICE>(
+                    GetProcAddress(mD3d11Module, "D3D11On12CreateDevice"));
+                if (D3D11on12CreateDevice == nullptr)
+                {
+                    return egl::EglNotInitialized(D3D11_INIT_MISSING_DEP)
+                           << "Could not retrieve D3D11On12CreateDevice address.";
+                }
+            }
+            else
+            {
+                if (mD3d11Module == nullptr || mDxgiModule == nullptr)
+                {
+                    return egl::EglNotInitialized(D3D11_INIT_MISSING_DEP)
+                           << "Could not load D3D11 or DXGI library.";
+                }
+
+                D3D11CreateDevice = reinterpret_cast<PFN_D3D11_CREATE_DEVICE>(
+                    GetProcAddress(mD3d11Module, "D3D11CreateDevice"));
+
+                if (D3D11CreateDevice == nullptr)
+                {
+                    return egl::EglNotInitialized(D3D11_INIT_MISSING_DEP)
+                           << "Could not retrieve D3D11CreateDevice address.";
+                }
             }
         }
 #endif
@@ -704,7 +789,14 @@
         if (mCreateDebugDevice)
         {
             ANGLE_TRACE_EVENT0("gpu.angle", "D3D11CreateDevice (Debug)");
-            result = callD3D11CreateDevice(D3D11CreateDevice, true);
+            if (createD3D11on12Device)
+            {
+                result = callD3D11On12CreateDevice(D3D12CreateDevice, D3D11on12CreateDevice, true);
+            }
+            else
+            {
+                result = callD3D11CreateDevice(D3D11CreateDevice, true);
+            }
 
             if (result == E_INVALIDARG && mAvailableFeatureLevels.size() > 1u &&
                 mAvailableFeatureLevels[0] == D3D_FEATURE_LEVEL_11_1)
@@ -713,7 +805,15 @@
                 // Try again without passing D3D_FEATURE_LEVEL_11_1 in case we have other feature
                 // levels to fall back on.
                 mAvailableFeatureLevels.erase(mAvailableFeatureLevels.begin());
-                result = callD3D11CreateDevice(D3D11CreateDevice, true);
+                if (createD3D11on12Device)
+                {
+                    result =
+                        callD3D11On12CreateDevice(D3D12CreateDevice, D3D11on12CreateDevice, true);
+                }
+                else
+                {
+                    result = callD3D11CreateDevice(D3D11CreateDevice, true);
+                }
             }
 
             if (!mDevice || FAILED(result))
@@ -725,8 +825,14 @@
         if (!mDevice || FAILED(result))
         {
             ANGLE_TRACE_EVENT0("gpu.angle", "D3D11CreateDevice");
-
-            result = callD3D11CreateDevice(D3D11CreateDevice, false);
+            if (createD3D11on12Device)
+            {
+                result = callD3D11On12CreateDevice(D3D12CreateDevice, D3D11on12CreateDevice, false);
+            }
+            else
+            {
+                result = callD3D11CreateDevice(D3D11CreateDevice, false);
+            }
 
             if (result == E_INVALIDARG && mAvailableFeatureLevels.size() > 1u &&
                 mAvailableFeatureLevels[0] == D3D_FEATURE_LEVEL_11_1)
@@ -735,7 +841,15 @@
                 // Try again without passing D3D_FEATURE_LEVEL_11_1 in case we have other feature
                 // levels to fall back on.
                 mAvailableFeatureLevels.erase(mAvailableFeatureLevels.begin());
-                result = callD3D11CreateDevice(D3D11CreateDevice, false);
+                if (createD3D11on12Device)
+                {
+                    result =
+                        callD3D11On12CreateDevice(D3D12CreateDevice, D3D11on12CreateDevice, false);
+                }
+                else
+                {
+                    result = callD3D11CreateDevice(D3D11CreateDevice, false);
+                }
             }
 
             // Cleanup done by destructor
@@ -755,7 +869,7 @@
 
         // We should use the inputted D3D11 device instead
         void *device = nullptr;
-        ANGLE_TRY(deviceD3D->getDevice(&device));
+        ANGLE_TRY(deviceD3D->getAttribute(mDisplay, EGL_D3D11_DEVICE_ANGLE, &device));
 
         ID3D11Device *d3dDevice = static_cast<ID3D11Device *>(device);
         if (FAILED(d3dDevice->GetDeviceRemovedReason()))
@@ -1140,11 +1254,13 @@
     // All D3D feature levels support robust resource init
     outExtensions->robustResourceInitialization = true;
 
+#if !defined(ANGLE_ENABLE_WINDOWS_UWP)
     // Compositor Native Window capabilies require WinVer >= 1803
     if (CompositorNativeWindow11::IsSupportedWinRelease())
     {
         outExtensions->windowsUIComposition = true;
     }
+#endif
 }
 
 angle::Result Renderer11::flush(Context11 *context11)
@@ -1202,7 +1318,7 @@
     static_assert(sizeof(ABI::Windows::UI::Composition::SpriteVisual *) == sizeof(HWND),
                   "Pointer size must match Window Handle size");
 
-#ifdef ANGLE_ENABLE_WINDOWS_STORE
+#if defined(ANGLE_ENABLE_WINDOWS_UWP)
     return NativeWindow11WinRT::IsValidNativeWindow(window);
 #else
     if (NativeWindow11Win32::IsValidNativeWindow(window))
@@ -1218,6 +1334,9 @@
                                                 const egl::Config *config,
                                                 const egl::AttributeMap &attribs) const
 {
+#if defined(ANGLE_ENABLE_WINDOWS_UWP)
+    return new NativeWindow11WinRT(window, config->alphaSize > 0);
+#else
     auto useWinUiComp = window != nullptr && !NativeWindow11Win32::IsValidNativeWindow(window);
 
     if (useWinUiComp)
@@ -1226,15 +1345,11 @@
     }
     else
     {
-#ifdef ANGLE_ENABLE_WINDOWS_STORE
-        UNUSED_VARIABLE(attribs);
-        return new NativeWindow11WinRT(window, config->alphaSize > 0);
-#else
         return new NativeWindow11Win32(
             window, config->alphaSize > 0,
             attribs.get(EGL_DIRECT_COMPOSITION_ANGLE, EGL_FALSE) == EGL_TRUE);
-#endif
     }
+#endif
 }
 
 egl::Error Renderer11::getD3DTextureInfo(const egl::Config *configuration,
@@ -1476,7 +1591,8 @@
                                      gl::PrimitiveMode mode,
                                      GLint firstVertex,
                                      GLsizei vertexCount,
-                                     GLsizei instanceCount)
+                                     GLsizei instanceCount,
+                                     GLuint baseInstance)
 {
     if (mStateManager.getCullEverything())
     {
@@ -1520,7 +1636,7 @@
                 // D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST and DrawIndexedInstanced is called instead.
                 if (adjustedInstanceCount == 0)
                 {
-                    mDeviceContext->DrawIndexedInstanced(6, clampedVertexCount, 0, 0, 0);
+                    mDeviceContext->DrawIndexedInstanced(6, clampedVertexCount, 0, 0, baseInstance);
                     return angle::Result::Continue;
                 }
 
@@ -1534,7 +1650,7 @@
                 {
                     ANGLE_TRY(mStateManager.updateVertexOffsetsForPointSpritesEmulation(
                         context, firstVertex, i));
-                    mDeviceContext->DrawIndexedInstanced(6, clampedVertexCount, 0, 0, 0);
+                    mDeviceContext->DrawIndexedInstanced(6, clampedVertexCount, 0, 0, baseInstance);
                 }
 
                 // This required by updateVertexOffsets... above but is outside of the loop for
@@ -1554,7 +1670,7 @@
     }
     else
     {
-        mDeviceContext->DrawInstanced(clampedVertexCount, adjustedInstanceCount, 0, 0);
+        mDeviceContext->DrawInstanced(clampedVertexCount, adjustedInstanceCount, 0, baseInstance);
     }
     return angle::Result::Continue;
 }
@@ -1968,6 +2084,15 @@
         mDCompModule = nullptr;
     }
 
+    mDevice12.Reset();
+    mCommandQueue.Reset();
+
+    if (mD3d12Module)
+    {
+        FreeLibrary(mD3d12Module);
+        mD3d12Module = nullptr;
+    }
+
     mCompiler.release();
 
     mSupportsShareHandles.reset();
@@ -2108,14 +2233,14 @@
 
     if (deviceType == d3d11::ANGLE_D3D11_DEVICE_TYPE_WARP)
     {
-#ifndef ANGLE_ENABLE_WINDOWS_STORE
+#if !defined(ANGLE_ENABLE_WINDOWS_UWP)
         if (!IsWindows8OrGreater())
         {
             // WARP on Windows 7 doesn't support shared handles
             mSupportsShareHandles = false;
             return false;
         }
-#endif  // ANGLE_ENABLE_WINDOWS_STORE
+#endif  // !defined(ANGLE_ENABLE_WINDOWS_UWP)
 
         // WARP on Windows 8.0+ supports shared handles when shared with another WARP device
         // TODO: allow applications to query for HARDWARE or WARP-specific share handles,
@@ -2226,8 +2351,8 @@
     {
         TextureHelper11 tex;
         ANGLE_TRY(resolveMultisampledTexture(context, sourceRenderTarget,
-                                             colorAttachment->getDepthSize(),
-                                             colorAttachment->getStencilSize(), &tex));
+                                             colorAttachment->getDepthSize() > 0,
+                                             colorAttachment->getStencilSize() > 0, &tex));
 
         D3D11_SHADER_RESOURCE_VIEW_DESC viewDesc;
         viewDesc.Format                    = sourceRenderTarget->getFormatSet().srvFormat;
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/Renderer11.h b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/Renderer11.h
index 1c6ba46..dd7efaa 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/Renderer11.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/Renderer11.h
@@ -410,7 +410,8 @@
                              gl::PrimitiveMode mode,
                              GLint firstVertex,
                              GLsizei vertexCount,
-                             GLsizei instanceCount);
+                             GLsizei instanceCount,
+                             GLuint baseInstance);
     angle::Result drawElements(const gl::Context *context,
                                gl::PrimitiveMode mode,
                                GLint startVertex,
@@ -552,6 +553,9 @@
         const gl::TextureCaps &depthStencilBufferFormatCaps) const;
 
     HRESULT callD3D11CreateDevice(PFN_D3D11_CREATE_DEVICE createDevice, bool debug);
+    HRESULT callD3D11On12CreateDevice(PFN_D3D12_CREATE_DEVICE createDevice12,
+                                      PFN_D3D11ON12_CREATE_DEVICE createDevice11on12,
+                                      bool debug);
     egl::Error initializeD3DDevice();
     egl::Error initializeDevice();
     void releaseDeviceResources();
@@ -568,6 +572,7 @@
                                                              UINT vertexCount);
 
     HMODULE mD3d11Module;
+    HMODULE mD3d12Module;
     HMODULE mDxgiModule;
     HMODULE mDCompModule;
     std::vector<D3D_FEATURE_LEVEL> mAvailableFeatureLevels;
@@ -602,6 +607,9 @@
 
     double mLastHistogramUpdateTime;
 
+    angle::ComPtr<ID3D12Device> mDevice12;
+    angle::ComPtr<ID3D12CommandQueue> mCommandQueue;
+
     ID3D11Device *mDevice;
     Renderer11DeviceCaps mRenderer11DeviceCaps;
     ID3D11DeviceContext *mDeviceContext;
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/TextureStorage11.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/TextureStorage11.cpp
index f85edee7..3cc4ab4 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/TextureStorage11.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/TextureStorage11.cpp
@@ -391,7 +391,7 @@
                                                const d3d11::SharedSRV **outSRV)
 {
     // TODO(Xinghua.cao@intel.com): Add solution to handle swizzle required.
-    ImageKey key(imageUnit.level, imageUnit.layered, imageUnit.layer, imageUnit.access,
+    ImageKey key(imageUnit.level, (imageUnit.layered == GL_TRUE), imageUnit.layer, imageUnit.access,
                  imageUnit.format);
     ANGLE_TRY(getCachedOrCreateSRVForImage(context, key, outSRV));
     return angle::Result::Continue;
@@ -423,7 +423,7 @@
                                                const d3d11::SharedUAV **outUAV)
 {
     // TODO(Xinghua.cao@intel.com): Add solution to handle swizzle required.
-    ImageKey key(imageUnit.level, imageUnit.layered, imageUnit.layer, imageUnit.access,
+    ImageKey key(imageUnit.level, (imageUnit.layered == GL_TRUE), imageUnit.layer, imageUnit.access,
                  imageUnit.format);
     ANGLE_TRY(getCachedOrCreateUAVForImage(context, key, outUAV));
     return angle::Result::Continue;
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/Trim11.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/Trim11.cpp
index 5cf6af1..ac6d9a5 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/Trim11.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/Trim11.cpp
@@ -10,7 +10,7 @@
 #include "libANGLE/renderer/d3d/d3d11/Renderer11.h"
 #include "libANGLE/renderer/d3d/d3d11/renderer11_utils.h"
 
-#if defined(ANGLE_ENABLE_WINDOWS_STORE)
+#if defined(ANGLE_ENABLE_WINDOWS_UWP)
 #    include <windows.applicationmodel.core.h>
 #    include <wrl.h>
 #    include <wrl/wrappers/corewrappers.h>
@@ -44,7 +44,7 @@
         return;
     }
 
-#if defined(ANGLE_ENABLE_WINDOWS_STORE)
+#if defined(ANGLE_ENABLE_WINDOWS_UWP)
     ID3D11Device *device      = mRenderer->getDevice();
     IDXGIDevice3 *dxgiDevice3 = d3d11::DynamicCastComObject<IDXGIDevice3>(device);
     if (dxgiDevice3)
@@ -57,7 +57,7 @@
 
 bool Trim11::registerForRendererTrimRequest()
 {
-#if defined(ANGLE_ENABLE_WINDOWS_STORE)
+#if defined(ANGLE_ENABLE_WINDOWS_UWP)
     ICoreApplication *coreApplication = nullptr;
     HRESULT result                    = GetActivationFactory(
         HStringReference(RuntimeClass_Windows_ApplicationModel_Core_CoreApplication).Get(),
@@ -84,7 +84,7 @@
 
 void Trim11::unregisterForRendererTrimRequest()
 {
-#if defined(ANGLE_ENABLE_WINDOWS_STORE)
+#if defined(ANGLE_ENABLE_WINDOWS_UWP)
     if (mApplicationSuspendedEventToken.value != 0)
     {
         ICoreApplication *coreApplication = nullptr;
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/Trim11.h b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/Trim11.h
index 8c5cdb7..eb1f3e7 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/Trim11.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/Trim11.h
@@ -13,7 +13,7 @@
 #include "libANGLE/Error.h"
 #include "libANGLE/angletypes.h"
 
-#if defined(ANGLE_ENABLE_WINDOWS_STORE)
+#if defined(ANGLE_ENABLE_WINDOWS_UWP)
 #    include <EventToken.h>
 #endif
 
@@ -29,7 +29,7 @@
 
   private:
     Renderer11 *mRenderer;
-#if defined(ANGLE_ENABLE_WINDOWS_STORE)
+#if defined(ANGLE_ENABLE_WINDOWS_UWP)
     EventRegistrationToken mApplicationSuspendedEventToken;
 #endif
 
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/converged/CompositorNativeWindow11.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/converged/CompositorNativeWindow11.cpp
index 826b20d..496f7c4 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/converged/CompositorNativeWindow11.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/converged/CompositorNativeWindow11.cpp
@@ -341,7 +341,7 @@
 
     if (FAILED(hr))
     {
-        return isSupported;
+        return !!isSupported;
     }
 
     Microsoft::WRL::ComPtr<ABI::Windows::Foundation::Metadata::IApiInformationStatics> api;
@@ -351,19 +351,19 @@
 
     if (FAILED(hr))
     {
-        return isSupported;
+        return !!isSupported;
     }
 
     hr = GetStringReference(L"Windows.Foundation.UniversalApiContract", &contractName,
                             &contractNameHeader);
     if (FAILED(hr))
     {
-        return isSupported;
+        return !!isSupported;
     }
 
     api->IsApiContractPresentByMajor(contractName, 6, &isSupported);
 
-    return isSupported;
+    return !!isSupported;
 }
 
 HRESULT RoHelper::GetStringReference(PCWSTR source, HSTRING *act, HSTRING_HEADER *header)
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/renderer11_utils.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/renderer11_utils.cpp
index f04591d..085be7f 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/renderer11_utils.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/renderer11_utils.cpp
@@ -1693,7 +1693,7 @@
     // D3D11 does not support vertex attribute aliasing
     limitations->noVertexAttributeAliasing = true;
 
-#ifdef ANGLE_ENABLE_WINDOWS_STORE
+#ifdef ANGLE_ENABLE_WINDOWS_UWP
     // Setting a non-zero divisor on attribute zero doesn't work on certain Windows Phone 8-era
     // devices. We should prevent developers from doing this on ALL Windows Store devices. This will
     // maintain consistency across all Windows devices. We allow non-zero divisors on attribute zero
@@ -2382,84 +2382,91 @@
                         const DXGI_ADAPTER_DESC &adapterDesc,
                         angle::FeaturesD3D *features)
 {
-    bool is9_3 = (deviceCaps.featureLevel <= D3D_FEATURE_LEVEL_9_3);
-
-    features->mrtPerfWorkaround.enabled                = true;
-    features->setDataFasterThanImageUpload.enabled     = true;
-    features->zeroMaxLodWorkaround.enabled             = is9_3;
-    features->useInstancedPointSpriteEmulation.enabled = is9_3;
-
-    // TODO(jmadill): Narrow problematic driver range.
-    if (IsNvidia(adapterDesc.VendorId))
+    bool isNvidia                  = IsNvidia(adapterDesc.VendorId);
+    bool isIntel                   = IsIntel(adapterDesc.VendorId);
+    bool isSkylake                 = false;
+    bool isBroadwell               = false;
+    bool isHaswell                 = false;
+    bool isAMD                     = IsAMD(adapterDesc.VendorId);
+    bool isFeatureLevel9_3         = (deviceCaps.featureLevel <= D3D_FEATURE_LEVEL_9_3);
+    IntelDriverVersion capsVersion = IntelDriverVersion(0);
+    if (isIntel)
     {
-        if (deviceCaps.driverVersion.valid())
+        capsVersion = d3d11_gl::GetIntelDriverVersion(deviceCaps.driverVersion);
+
+        isSkylake   = IsSkylake(adapterDesc.DeviceId);
+        isBroadwell = IsBroadwell(adapterDesc.DeviceId);
+        isHaswell   = IsHaswell(adapterDesc.DeviceId);
+    }
+
+    if (isNvidia)
+    {
+        // TODO(jmadill): Narrow problematic driver range.
+        bool driverVersionValid = deviceCaps.driverVersion.valid();
+        if (driverVersionValid)
         {
             WORD part1 = HIWORD(deviceCaps.driverVersion.value().LowPart);
             WORD part2 = LOWORD(deviceCaps.driverVersion.value().LowPart);
 
             // Disable the workaround to fix a second driver bug on newer NVIDIA.
-            features->depthStencilBlitExtraCopy.enabled = (part1 <= 13u && part2 < 6881);
+            ANGLE_FEATURE_CONDITION(
+                features, depthStencilBlitExtraCopy,
+                (part1 <= 13u && part2 < 6881) && isNvidia && driverVersionValid)
         }
         else
         {
-            features->depthStencilBlitExtraCopy.enabled = true;
+            ANGLE_FEATURE_CONDITION(features, depthStencilBlitExtraCopy,
+                                    isNvidia && !driverVersionValid)
         }
     }
 
+    ANGLE_FEATURE_CONDITION(features, mrtPerfWorkaround, true)
+    ANGLE_FEATURE_CONDITION(features, zeroMaxLodWorkaround, isFeatureLevel9_3)
+    ANGLE_FEATURE_CONDITION(features, useInstancedPointSpriteEmulation, isFeatureLevel9_3)
+
     // TODO(jmadill): Disable workaround when we have a fixed compiler DLL.
-    features->expandIntegerPowExpressions.enabled = true;
+    ANGLE_FEATURE_CONDITION(features, expandIntegerPowExpressions, true)
 
-    features->flushAfterEndingTransformFeedback.enabled = IsNvidia(adapterDesc.VendorId);
-    features->getDimensionsIgnoresBaseLevel.enabled     = IsNvidia(adapterDesc.VendorId);
-    features->skipVSConstantRegisterZero.enabled        = IsNvidia(adapterDesc.VendorId);
-    features->forceAtomicValueResolution.enabled        = IsNvidia(adapterDesc.VendorId);
+    ANGLE_FEATURE_CONDITION(features, flushAfterEndingTransformFeedback, isNvidia)
+    ANGLE_FEATURE_CONDITION(features, getDimensionsIgnoresBaseLevel, isNvidia)
+    ANGLE_FEATURE_CONDITION(features, skipVSConstantRegisterZero, isNvidia)
+    ANGLE_FEATURE_CONDITION(features, forceAtomicValueResolution, isNvidia)
 
-    if (IsIntel(adapterDesc.VendorId))
-    {
-        IntelDriverVersion capsVersion = d3d11_gl::GetIntelDriverVersion(deviceCaps.driverVersion);
+    ANGLE_FEATURE_CONDITION(features, preAddTexelFetchOffsets, isIntel)
+    ANGLE_FEATURE_CONDITION(features, useSystemMemoryForConstantBuffers, isIntel)
 
-        features->preAddTexelFetchOffsets.enabled           = true;
-        features->useSystemMemoryForConstantBuffers.enabled = true;
-        features->disableB5G6R5Support.enabled          = capsVersion < IntelDriverVersion(4539);
-        features->addDummyTextureNoRenderTarget.enabled = capsVersion < IntelDriverVersion(4815);
-        if (IsSkylake(adapterDesc.DeviceId))
-        {
-            features->callClearTwice.enabled    = capsVersion < IntelDriverVersion(4771);
-            features->emulateIsnanFloat.enabled = capsVersion < IntelDriverVersion(4542);
-        }
-        else if (IsBroadwell(adapterDesc.DeviceId) || IsHaswell(adapterDesc.DeviceId))
-        {
-            features->rewriteUnaryMinusOperator.enabled = capsVersion < IntelDriverVersion(4624);
+    ANGLE_FEATURE_CONDITION(features, callClearTwice,
+                            isIntel && isSkylake && capsVersion < IntelDriverVersion(4771))
+    ANGLE_FEATURE_CONDITION(features, emulateIsnanFloat,
+                            isIntel && isSkylake && capsVersion < IntelDriverVersion(4542))
+    ANGLE_FEATURE_CONDITION(
+        features, rewriteUnaryMinusOperator,
+        isIntel && (isBroadwell || isHaswell) && capsVersion < IntelDriverVersion(4624))
 
-            // Haswell drivers occasionally corrupt (small?) (vertex?) texture data uploads.
-            features->setDataFasterThanImageUpload.enabled = false;
-        }
-    }
+    ANGLE_FEATURE_CONDITION(features, addDummyTextureNoRenderTarget,
+                            isIntel && capsVersion < IntelDriverVersion(4815))
 
-    if (IsAMD(adapterDesc.VendorId))
-    {
-        features->disableB5G6R5Support.enabled = true;
-    }
+    // Haswell drivers occasionally corrupt (small?) (vertex?) texture data uploads.
+    ANGLE_FEATURE_CONDITION(features, setDataFasterThanImageUpload, !(isBroadwell || isHaswell))
+
+    ANGLE_FEATURE_CONDITION(features, disableB5G6R5Support,
+                            (isIntel && capsVersion < IntelDriverVersion(4539)) || isAMD)
 
     // TODO(jmadill): Disable when we have a fixed driver version.
-    features->emulateTinyStencilTextures.enabled = IsAMD(adapterDesc.VendorId);
-
     // The tiny stencil texture workaround involves using CopySubresource or UpdateSubresource on a
     // depth stencil texture.  This is not allowed until feature level 10.1 but since it is not
     // possible to support ES3 on these devices, there is no need for the workaround to begin with
     // (anglebug.com/1572).
-    if (deviceCaps.featureLevel < D3D_FEATURE_LEVEL_10_1)
-    {
-        features->emulateTinyStencilTextures.enabled = false;
-    }
+    ANGLE_FEATURE_CONDITION(features, emulateTinyStencilTextures,
+                            isAMD && !(deviceCaps.featureLevel < D3D_FEATURE_LEVEL_10_1))
 
     // If the VPAndRTArrayIndexFromAnyShaderFeedingRasterizer feature is not available, we have to
     // select the viewport / RT array index in the geometry shader.
-    features->selectViewInGeometryShader.enabled =
-        (deviceCaps.supportsVpRtIndexWriteFromVertexShader == false);
+    ANGLE_FEATURE_CONDITION(features, selectViewInGeometryShader,
+                            !deviceCaps.supportsVpRtIndexWriteFromVertexShader)
 
     // Never clear for robust resource init.  This matches Chrome's texture clearning behaviour.
-    features->allowClearForRobustResourceInit.enabled = false;
+    ANGLE_FEATURE_CONDITION(features, allowClearForRobustResourceInit, false)
 
     // Call platform hooks for testing overrides.
     auto *platform = ANGLEPlatformCurrent();
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.h b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.h
index 8dc6076..82df5e9 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.h
@@ -49,11 +49,15 @@
     ComPtr<IMap<HSTRING, IInspectable *>> mPropertyMap;
 };
 
-[uuid(7F924F66 - EBAE - 40E5 - A10B - B8F35E245190)] class CoreWindowSizeChangedHandler
+// clang format would break the uuid below
+// clang-format off
+[uuid(7F924F66-EBAE-40E5-A10B-B8F35E245190)] class CoreWindowSizeChangedHandler
     : public Microsoft::WRL::RuntimeClass<
           Microsoft::WRL::RuntimeClassFlags<Microsoft::WRL::ClassicCom>,
           IWindowSizeChangedEventHandler>
 {
+    // clang-format on
+
   public:
     CoreWindowSizeChangedHandler() {}
     HRESULT RuntimeClassInitialize(std::shared_ptr<InspectableNativeWindow> host)
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/winrt/NativeWindow11WinRT.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/winrt/NativeWindow11WinRT.cpp
index d613fe0..7e85f93 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/winrt/NativeWindow11WinRT.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/winrt/NativeWindow11WinRT.cpp
@@ -88,8 +88,15 @@
                                              DXGI_FORMAT format,
                                              UINT width,
                                              UINT height,
+                                             UINT samples,
                                              IDXGISwapChain **swapChain)
 {
+    if (samples > 1)
+    {
+        // Multisample not implemented for WinRT window types
+        return E_NOTIMPL;
+    }
+
     if (mImpl)
     {
         IDXGIFactory2 *factory2     = d3d11::DynamicCastComObject<IDXGIFactory2>(factory);
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/winrt/NativeWindow11WinRT.h b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/winrt/NativeWindow11WinRT.h
index 85bfc26..d359a8b 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/winrt/NativeWindow11WinRT.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/winrt/NativeWindow11WinRT.h
@@ -34,6 +34,7 @@
                             DXGI_FORMAT format,
                             UINT width,
                             UINT height,
+                            UINT samples,
                             IDXGISwapChain **swapChain) override;
 
     void commitChange() override;
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.h b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.h
index 671dab0..75a901a 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.h
@@ -43,11 +43,15 @@
     ComPtr<IDXGISwapChain1> mSwapChain;
 };
 
-[uuid(8ACBD974 - 8187 - 4508 - AD80 - AEC77F93CF36)] class SwapChainPanelSizeChangedHandler
+// clang format would break the uuid below
+// clang-format off
+[uuid(8ACBD974-8187-4508-AD80-AEC77F93CF36)] class SwapChainPanelSizeChangedHandler
     : public Microsoft::WRL::RuntimeClass<
           Microsoft::WRL::RuntimeClassFlags<Microsoft::WRL::ClassicCom>,
           ABI::Windows::UI::Xaml::ISizeChangedEventHandler>
 {
+    // clang-format on
+
   public:
     SwapChainPanelSizeChangedHandler() {}
     HRESULT RuntimeClassInitialize(std::shared_ptr<InspectableNativeWindow> host)
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d9/renderer9_utils.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d9/renderer9_utils.cpp
index 0baf067..989a1c7 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d9/renderer9_utils.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d9/renderer9_utils.cpp
@@ -805,15 +805,15 @@
 
 void InitializeFeatures(angle::FeaturesD3D *features)
 {
-    features->mrtPerfWorkaround.enabled                = true;
-    features->setDataFasterThanImageUpload.enabled     = false;
-    features->useInstancedPointSpriteEmulation.enabled = false;
+    ANGLE_FEATURE_CONDITION(features, mrtPerfWorkaround, true)
+    ANGLE_FEATURE_CONDITION(features, setDataFasterThanImageUpload, false)
+    ANGLE_FEATURE_CONDITION(features, useInstancedPointSpriteEmulation, false)
 
     // TODO(jmadill): Disable workaround when we have a fixed compiler DLL.
-    features->expandIntegerPowExpressions.enabled = true;
+    ANGLE_FEATURE_CONDITION(features, expandIntegerPowExpressions, true)
 
     // Never clear for robust resource init.  This matches Chrome's texture clearning behaviour.
-    features->allowClearForRobustResourceInit.enabled = false;
+    ANGLE_FEATURE_CONDITION(features, allowClearForRobustResourceInit, false)
 
     // Call platform hooks for testing overrides.
     auto *platform = ANGLEPlatformCurrent();
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gen_angle_format_table.py b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gen_angle_format_table.py
index 863076a..53117f0 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gen_angle_format_table.py
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gen_angle_format_table.py
@@ -92,6 +92,11 @@
 """
 
 
+def ceil_int(value, mod):
+    assert mod > 0 and value > 0, 'integer modulation should be larger than 0'
+    return (value + mod - 1) / mod
+
+
 def is_depth_stencil(angle_format):
     if not 'channels' in angle_format or not angle_format['channels']:
         return False
@@ -111,6 +116,9 @@
         return None
     if 'BLOCK' in angle_format['id']:
         return None
+    if 'VERTEX' in angle_format['id']:
+        return None
+
     bits = angle_format['bits']
 
     if 'channelStruct' in angle_format:
@@ -145,7 +153,8 @@
 
 def get_mip_generation_function(angle_format):
     channel_struct = get_channel_struct(angle_format)
-    if is_depth_stencil(angle_format) or channel_struct == None or "BLOCK" in angle_format["id"]:
+    if is_depth_stencil(angle_format) or channel_struct == None \
+            or "BLOCK" in angle_format["id"] or "VERTEX" in angle_format["id"]:
         return 'nullptr'
     return 'GenerateMip<' + channel_struct + '>'
 
@@ -239,6 +248,7 @@
     has_r16 = "R16" in format_id
     has_r32 = "R32" in format_id
     has_r10 = "R10" in format_id
+    has_vertex = "VERTEX" in format_id
 
     if has_fixed:
         return "Fixed"
@@ -250,7 +260,10 @@
         return "Byte" if has_s else "UnsignedByte"
 
     if has_r10:
-        return "Int2101010" if has_s else "UnsignedInt2101010"
+        if has_vertex:
+            return "Int1010102" if has_s else "UnsignedInt1010102"
+        else:
+            return "Int2101010" if has_s else "UnsignedInt2101010"
 
     if has_r16:
         return "Short" if has_s else "UnsignedShort"
@@ -317,7 +330,7 @@
         sum_of_bits = 0
         for channel in angle_format.kChannels:
             sum_of_bits += int(parsed[channel])
-        pixel_bytes = sum_of_bits / 8
+        pixel_bytes = ceil_int(sum_of_bits, 8)
     parsed["pixelBytes"] = pixel_bytes
     parsed["componentAlignmentMask"] = get_component_alignment_mask(parsed["channels"],
                                                                     parsed["bits"])
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/BlitGL.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/BlitGL.cpp
index eddb5b1..a7e16c1 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/BlitGL.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/BlitGL.cpp
@@ -35,29 +35,29 @@
 namespace
 {
 
-angle::Result CheckCompileStatus(ContextGL *contextGL,
+angle::Result CheckCompileStatus(const gl::Context *context,
                                  const rx::FunctionsGL *functions,
                                  GLuint shader)
 {
     GLint compileStatus = GL_FALSE;
-    functions->getShaderiv(shader, GL_COMPILE_STATUS, &compileStatus);
+    ANGLE_GL_TRY(context, functions->getShaderiv(shader, GL_COMPILE_STATUS, &compileStatus));
 
     ASSERT(compileStatus == GL_TRUE);
-    ANGLE_CHECK(contextGL, compileStatus == GL_TRUE, "Failed to compile internal blit shader.",
-                GL_OUT_OF_MEMORY);
+    ANGLE_CHECK(GetImplAs<ContextGL>(context), compileStatus == GL_TRUE,
+                "Failed to compile internal blit shader.", GL_OUT_OF_MEMORY);
 
     return angle::Result::Continue;
 }
 
-angle::Result CheckLinkStatus(ContextGL *contextGL,
+angle::Result CheckLinkStatus(const gl::Context *context,
                               const rx::FunctionsGL *functions,
                               GLuint program)
 {
     GLint linkStatus = GL_FALSE;
-    functions->getProgramiv(program, GL_LINK_STATUS, &linkStatus);
+    ANGLE_GL_TRY(context, functions->getProgramiv(program, GL_LINK_STATUS, &linkStatus));
     ASSERT(linkStatus == GL_TRUE);
-    ANGLE_CHECK(contextGL, linkStatus == GL_TRUE, "Failed to link internal blit program.",
-                GL_OUT_OF_MEMORY);
+    ANGLE_CHECK(GetImplAs<ContextGL>(context), linkStatus == GL_TRUE,
+                "Failed to link internal blit program.", GL_OUT_OF_MEMORY);
 
     return angle::Result::Continue;
 }
@@ -199,14 +199,17 @@
     return angle::Result::Continue;
 }
 
-void UnbindAttachments(const FunctionsGL *functions,
-                       GLenum framebufferTarget,
-                       const ClearBindTargetVector &bindTargets)
+angle::Result UnbindAttachments(const gl::Context *context,
+                                const FunctionsGL *functions,
+                                GLenum framebufferTarget,
+                                const ClearBindTargetVector &bindTargets)
 {
     for (GLenum bindTarget : bindTargets)
     {
-        functions->framebufferRenderbuffer(framebufferTarget, bindTarget, GL_RENDERBUFFER, 0);
+        ANGLE_GL_TRY(context, functions->framebufferRenderbuffer(framebufferTarget, bindTarget,
+                                                                 GL_RENDERBUFFER, 0));
     }
+    return angle::Result::Continue;
 }
 
 }  // anonymous namespace
@@ -282,8 +285,10 @@
     mStateManager->setPixelUnpackState(unpack);
     mStateManager->setPixelUnpackBuffer(
         context->getState().getTargetBuffer(gl::BufferBinding::PixelUnpack));
-    mFunctions->texImage2D(ToGLenum(target), static_cast<GLint>(level), internalFormat,
-                           sourceArea.width, sourceArea.height, 0, format, readType, nullptr);
+    ANGLE_GL_TRY_ALWAYS_CHECK(
+        context,
+        mFunctions->texImage2D(ToGLenum(target), static_cast<GLint>(level), internalFormat,
+                               sourceArea.width, sourceArea.height, 0, format, readType, nullptr));
 
     return copySubImageToLUMAWorkaroundTexture(context, texture, textureType, target, lumaFormat,
                                                level, gl::Offset(0, 0, 0), sourceArea, source);
@@ -299,10 +304,10 @@
                                                           const gl::Rectangle &sourceArea,
                                                           gl::Framebuffer *source)
 {
-    ANGLE_TRY(initializeResources());
+    ANGLE_TRY(initializeResources(context));
 
     BlitProgram *blitProgram = nullptr;
-    ANGLE_TRY(getBlitProgram(context, BlitProgramType::FLOAT_TO_FLOAT, &blitProgram));
+    ANGLE_TRY(getBlitProgram(context, gl::TextureType::_2D, GL_FLOAT, GL_FLOAT, &blitProgram));
 
     // Blit the framebuffer to the first scratch texture
     const FramebufferGL *sourceFramebufferGL = GetImplAs<FramebufferGL>(source);
@@ -318,8 +323,10 @@
         nativegl::GetCopyTexImageImageFormat(mFunctions, mFeatures, readFormat, readType);
 
     mStateManager->bindTexture(gl::TextureType::_2D, mScratchTextures[0]);
-    mFunctions->copyTexImage2D(GL_TEXTURE_2D, 0, copyTexImageFormat.internalFormat, sourceArea.x,
-                               sourceArea.y, sourceArea.width, sourceArea.height, 0);
+    ANGLE_GL_TRY_ALWAYS_CHECK(
+        context, mFunctions->copyTexImage2D(GL_TEXTURE_2D, 0, copyTexImageFormat.internalFormat,
+                                            sourceArea.x, sourceArea.y, sourceArea.width,
+                                            sourceArea.height, 0));
 
     // Set the swizzle of the scratch texture so that the channels sample into the correct emulated
     // LUMA channels.
@@ -329,58 +336,63 @@
         GL_ZERO,
         GL_ZERO,
     };
-    mFunctions->texParameteriv(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_RGBA, swizzle);
+    ANGLE_GL_TRY(context,
+                 mFunctions->texParameteriv(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_RGBA, swizzle));
 
     // Make a temporary framebuffer using the second scratch texture to render the swizzled result
     // to.
     mStateManager->bindTexture(gl::TextureType::_2D, mScratchTextures[1]);
-    mFunctions->texImage2D(
-        GL_TEXTURE_2D, 0, copyTexImageFormat.internalFormat, sourceArea.width, sourceArea.height, 0,
-        gl::GetUnsizedFormat(copyTexImageFormat.internalFormat), readType, nullptr);
+    ANGLE_GL_TRY_ALWAYS_CHECK(
+        context, mFunctions->texImage2D(GL_TEXTURE_2D, 0, copyTexImageFormat.internalFormat,
+                                        sourceArea.width, sourceArea.height, 0,
+                                        gl::GetUnsizedFormat(copyTexImageFormat.internalFormat),
+                                        readType, nullptr));
 
     mStateManager->bindFramebuffer(GL_FRAMEBUFFER, mScratchFBO);
-    mFunctions->framebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D,
-                                     mScratchTextures[1], 0);
+    ANGLE_GL_TRY(context, mFunctions->framebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
+                                                           GL_TEXTURE_2D, mScratchTextures[1], 0));
 
     // Render to the destination texture, sampling from the scratch texture
     ScopedGLState scopedState;
     ANGLE_TRY(scopedState.enter(context, gl::Rectangle(0, 0, sourceArea.width, sourceArea.height)));
     scopedState.willUseTextureUnit(context, 0);
 
-    setScratchTextureParameter(GL_TEXTURE_MIN_FILTER, GL_NEAREST);
-    setScratchTextureParameter(GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+    ANGLE_TRY(setScratchTextureParameter(context, GL_TEXTURE_MIN_FILTER, GL_NEAREST));
+    ANGLE_TRY(setScratchTextureParameter(context, GL_TEXTURE_MAG_FILTER, GL_NEAREST));
 
     mStateManager->activeTexture(0);
     mStateManager->bindTexture(gl::TextureType::_2D, mScratchTextures[0]);
 
     mStateManager->useProgram(blitProgram->program);
-    mFunctions->uniform1i(blitProgram->sourceTextureLocation, 0);
-    mFunctions->uniform2f(blitProgram->scaleLocation, 1.0, 1.0);
-    mFunctions->uniform2f(blitProgram->offsetLocation, 0.0, 0.0);
-    mFunctions->uniform1i(blitProgram->multiplyAlphaLocation, 0);
-    mFunctions->uniform1i(blitProgram->unMultiplyAlphaLocation, 0);
+    ANGLE_GL_TRY(context, mFunctions->uniform1i(blitProgram->sourceTextureLocation, 0));
+    ANGLE_GL_TRY(context, mFunctions->uniform2f(blitProgram->scaleLocation, 1.0, 1.0));
+    ANGLE_GL_TRY(context, mFunctions->uniform2f(blitProgram->offsetLocation, 0.0, 0.0));
+    ANGLE_GL_TRY(context, mFunctions->uniform1i(blitProgram->multiplyAlphaLocation, 0));
+    ANGLE_GL_TRY(context, mFunctions->uniform1i(blitProgram->unMultiplyAlphaLocation, 0));
 
     mStateManager->bindVertexArray(mVAO, 0);
-    mFunctions->drawArrays(GL_TRIANGLES, 0, 3);
+    ANGLE_GL_TRY(context, mFunctions->drawArrays(GL_TRIANGLES, 0, 3));
 
     // Copy the swizzled texture to the destination texture
     mStateManager->bindTexture(textureType, texture);
 
     if (nativegl::UseTexImage3D(textureType))
     {
-        mFunctions->copyTexSubImage3D(ToGLenum(target), static_cast<GLint>(level), destOffset.x,
-                                      destOffset.y, destOffset.z, 0, 0, sourceArea.width,
-                                      sourceArea.height);
+        ANGLE_GL_TRY(context,
+                     mFunctions->copyTexSubImage3D(ToGLenum(target), static_cast<GLint>(level),
+                                                   destOffset.x, destOffset.y, destOffset.z, 0, 0,
+                                                   sourceArea.width, sourceArea.height));
     }
     else
     {
         ASSERT(nativegl::UseTexImage2D(textureType));
-        mFunctions->copyTexSubImage2D(ToGLenum(target), static_cast<GLint>(level), destOffset.x,
-                                      destOffset.y, 0, 0, sourceArea.width, sourceArea.height);
+        ANGLE_GL_TRY(context, mFunctions->copyTexSubImage2D(
+                                  ToGLenum(target), static_cast<GLint>(level), destOffset.x,
+                                  destOffset.y, 0, 0, sourceArea.width, sourceArea.height));
     }
 
     // Finally orphan the scratch textures so they can be GCed by the driver.
-    orphanScratchTextures();
+    ANGLE_TRY(orphanScratchTextures(context));
 
     ANGLE_TRY(scopedState.exit(context));
     return angle::Result::Continue;
@@ -393,10 +405,10 @@
                                                 const gl::Rectangle &destAreaIn,
                                                 GLenum filter)
 {
-    ANGLE_TRY(initializeResources());
+    ANGLE_TRY(initializeResources(context));
 
     BlitProgram *blitProgram = nullptr;
-    ANGLE_TRY(getBlitProgram(context, BlitProgramType::FLOAT_TO_FLOAT, &blitProgram));
+    ANGLE_TRY(getBlitProgram(context, gl::TextureType::_2D, GL_FLOAT, GL_FLOAT, &blitProgram));
 
     // We'll keep things simple by removing reversed coordinates from the rectangles. In the end
     // we'll apply the reversal to the source texture coordinates if needed. The destination
@@ -437,17 +449,19 @@
         mStateManager->bindFramebuffer(GL_READ_FRAMEBUFFER, sourceGL->getFramebufferID());
         mStateManager->bindTexture(gl::TextureType::_2D, textureId);
 
-        mFunctions->copyTexImage2D(GL_TEXTURE_2D, 0, format, inBoundsSource.x, inBoundsSource.y,
-                                   inBoundsSource.width, inBoundsSource.height, 0);
+        ANGLE_GL_TRY_ALWAYS_CHECK(
+            context,
+            mFunctions->copyTexImage2D(GL_TEXTURE_2D, 0, format, inBoundsSource.x, inBoundsSource.y,
+                                       inBoundsSource.width, inBoundsSource.height, 0));
 
         // Translate sourceArea to be relative to the copied image.
         sourceArea.x -= inBoundsSource.x;
         sourceArea.y -= inBoundsSource.y;
 
-        setScratchTextureParameter(GL_TEXTURE_MIN_FILTER, filter);
-        setScratchTextureParameter(GL_TEXTURE_MAG_FILTER, filter);
-        setScratchTextureParameter(GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
-        setScratchTextureParameter(GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
+        ANGLE_TRY(setScratchTextureParameter(context, GL_TEXTURE_MIN_FILTER, filter));
+        ANGLE_TRY(setScratchTextureParameter(context, GL_TEXTURE_MAG_FILTER, filter));
+        ANGLE_TRY(setScratchTextureParameter(context, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE));
+        ANGLE_TRY(setScratchTextureParameter(context, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE));
     }
 
     // Transform the source area to the texture coordinate space (where 0.0 and 1.0 correspond to
@@ -482,17 +496,19 @@
     mStateManager->bindTexture(gl::TextureType::_2D, textureId);
 
     mStateManager->useProgram(blitProgram->program);
-    mFunctions->uniform1i(blitProgram->sourceTextureLocation, 0);
-    mFunctions->uniform2f(blitProgram->scaleLocation, texCoordScale.x(), texCoordScale.y());
-    mFunctions->uniform2f(blitProgram->offsetLocation, texCoordOffset.x(), texCoordOffset.y());
-    mFunctions->uniform1i(blitProgram->multiplyAlphaLocation, 0);
-    mFunctions->uniform1i(blitProgram->unMultiplyAlphaLocation, 0);
+    ANGLE_GL_TRY(context, mFunctions->uniform1i(blitProgram->sourceTextureLocation, 0));
+    ANGLE_GL_TRY(context, mFunctions->uniform2f(blitProgram->scaleLocation, texCoordScale.x(),
+                                                texCoordScale.y()));
+    ANGLE_GL_TRY(context, mFunctions->uniform2f(blitProgram->offsetLocation, texCoordOffset.x(),
+                                                texCoordOffset.y()));
+    ANGLE_GL_TRY(context, mFunctions->uniform1i(blitProgram->multiplyAlphaLocation, 0));
+    ANGLE_GL_TRY(context, mFunctions->uniform1i(blitProgram->unMultiplyAlphaLocation, 0));
 
     const FramebufferGL *destGL = GetImplAs<FramebufferGL>(dest);
     mStateManager->bindFramebuffer(GL_DRAW_FRAMEBUFFER, destGL->getFramebufferID());
 
     mStateManager->bindVertexArray(mVAO, 0);
-    mFunctions->drawArrays(GL_TRIANGLES, 0, 3);
+    ANGLE_GL_TRY(context, mFunctions->drawArrays(GL_TRIANGLES, 0, 3));
 
     ANGLE_TRY(scopedState.exit(context));
     return angle::Result::Continue;
@@ -519,24 +535,24 @@
     ASSERT(source->getType() == gl::TextureType::_2D ||
            source->getType() == gl::TextureType::External ||
            source->getType() == gl::TextureType::Rectangle);
-    ANGLE_TRY(initializeResources());
+    ANGLE_TRY(initializeResources(context));
 
     // Make sure the destination texture can be rendered to before setting anything else up.  Some
     // cube maps may not be renderable until all faces have been filled.
     mStateManager->bindFramebuffer(GL_FRAMEBUFFER, mScratchFBO);
-    mFunctions->framebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, ToGLenum(destTarget),
-                                     destID, static_cast<GLint>(destLevel));
-    GLenum status = mFunctions->checkFramebufferStatus(GL_FRAMEBUFFER);
+    ANGLE_GL_TRY(context, mFunctions->framebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
+                                                           ToGLenum(destTarget), destID,
+                                                           static_cast<GLint>(destLevel)));
+    GLenum status = ANGLE_GL_TRY(context, mFunctions->checkFramebufferStatus(GL_FRAMEBUFFER));
     if (status != GL_FRAMEBUFFER_COMPLETE)
     {
         *copySucceededOut = false;
         return angle::Result::Continue;
     }
 
-    BlitProgramType blitProgramType =
-        getBlitProgramType(source->getType(), sourceComponentType, destComponentType);
     BlitProgram *blitProgram = nullptr;
-    ANGLE_TRY(getBlitProgram(context, blitProgramType, &blitProgram));
+    ANGLE_TRY(getBlitProgram(context, source->getType(), sourceComponentType, destComponentType,
+                             &blitProgram));
 
     // Setup the source texture
     if (needsLumaWorkaround)
@@ -589,22 +605,25 @@
     }
 
     mStateManager->useProgram(blitProgram->program);
-    mFunctions->uniform1i(blitProgram->sourceTextureLocation, 0);
-    mFunctions->uniform2f(blitProgram->scaleLocation, scale.x(), scale.y());
-    mFunctions->uniform2f(blitProgram->offsetLocation, offset.x(), offset.y());
+    ANGLE_GL_TRY(context, mFunctions->uniform1i(blitProgram->sourceTextureLocation, 0));
+    ANGLE_GL_TRY(context, mFunctions->uniform2f(blitProgram->scaleLocation, scale.x(), scale.y()));
+    ANGLE_GL_TRY(context,
+                 mFunctions->uniform2f(blitProgram->offsetLocation, offset.x(), offset.y()));
     if (unpackPremultiplyAlpha == unpackUnmultiplyAlpha)
     {
-        mFunctions->uniform1i(blitProgram->multiplyAlphaLocation, 0);
-        mFunctions->uniform1i(blitProgram->unMultiplyAlphaLocation, 0);
+        ANGLE_GL_TRY(context, mFunctions->uniform1i(blitProgram->multiplyAlphaLocation, 0));
+        ANGLE_GL_TRY(context, mFunctions->uniform1i(blitProgram->unMultiplyAlphaLocation, 0));
     }
     else
     {
-        mFunctions->uniform1i(blitProgram->multiplyAlphaLocation, unpackPremultiplyAlpha);
-        mFunctions->uniform1i(blitProgram->unMultiplyAlphaLocation, unpackUnmultiplyAlpha);
+        ANGLE_GL_TRY(context, mFunctions->uniform1i(blitProgram->multiplyAlphaLocation,
+                                                    unpackPremultiplyAlpha));
+        ANGLE_GL_TRY(context, mFunctions->uniform1i(blitProgram->unMultiplyAlphaLocation,
+                                                    unpackUnmultiplyAlpha));
     }
 
     mStateManager->bindVertexArray(mVAO, 0);
-    mFunctions->drawArrays(GL_TRIANGLES, 0, 3);
+    ANGLE_GL_TRY(context, mFunctions->drawArrays(GL_TRIANGLES, 0, 3));
 
     *copySucceededOut = true;
     ANGLE_TRY(scopedState.exit(context));
@@ -629,7 +648,7 @@
                                                 bool unpackPremultiplyAlpha,
                                                 bool unpackUnmultiplyAlpha)
 {
-    ANGLE_TRY(initializeResources());
+    ANGLE_TRY(initializeResources(context));
 
     ContextGL *contextGL = GetImplAs<ContextGL>(context);
 
@@ -643,10 +662,10 @@
     gl::Rectangle readPixelsArea = sourceArea;
 
     mStateManager->bindFramebuffer(GL_FRAMEBUFFER, mScratchFBO);
-    mFunctions->framebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
-                                     ToGLenum(source->getType()), source->getTextureID(),
-                                     static_cast<GLint>(sourceLevel));
-    GLenum status = mFunctions->checkFramebufferStatus(GL_FRAMEBUFFER);
+    ANGLE_GL_TRY(context, mFunctions->framebufferTexture2D(
+                              GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, ToGLenum(source->getType()),
+                              source->getTextureID(), static_cast<GLint>(sourceLevel)));
+    GLenum status = ANGLE_GL_TRY(context, mFunctions->checkFramebufferStatus(GL_FRAMEBUFFER));
     if (status != GL_FRAMEBUFFER_COMPLETE)
     {
         // The source texture cannot be read with glReadPixels. Copy it into another RGBA texture
@@ -657,9 +676,11 @@
 
         gl::TextureType scratchTextureType = gl::TextureType::_2D;
         mStateManager->bindTexture(scratchTextureType, mScratchTextures[0]);
-        mFunctions->texImage2D(ToGLenum(scratchTextureType), 0, texImageFormat.internalFormat,
-                               sourceArea.width, sourceArea.height, 0, texImageFormat.format,
-                               texImageFormat.type, nullptr);
+        ANGLE_GL_TRY_ALWAYS_CHECK(
+            context,
+            mFunctions->texImage2D(ToGLenum(scratchTextureType), 0, texImageFormat.internalFormat,
+                                   sourceArea.width, sourceArea.height, 0, texImageFormat.format,
+                                   texImageFormat.type, nullptr));
 
         bool copySucceeded = false;
         ANGLE_TRY(copySubTexture(
@@ -675,15 +696,16 @@
 
         // Bind the scratch texture as the readback texture
         mStateManager->bindFramebuffer(GL_FRAMEBUFFER, mScratchFBO);
-        mFunctions->framebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
-                                         ToGLenum(scratchTextureType), mScratchTextures[0], 0);
+        ANGLE_GL_TRY(context, mFunctions->framebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
+                                                               ToGLenum(scratchTextureType),
+                                                               mScratchTextures[0], 0));
 
         // The scratch texture sized to sourceArea so adjust the readpixels area
         readPixelsArea.x = 0;
         readPixelsArea.y = 0;
 
         // Recheck the status
-        status = mFunctions->checkFramebufferStatus(GL_FRAMEBUFFER);
+        status = ANGLE_GL_TRY(context, mFunctions->checkFramebufferStatus(GL_FRAMEBUFFER));
     }
 
     ASSERT(status == GL_FRAMEBUFFER_COMPLETE);
@@ -718,8 +740,9 @@
     unpack.alignment = 1;
     mStateManager->setPixelUnpackState(unpack);
     mStateManager->setPixelUnpackBuffer(nullptr);
-    mFunctions->readPixels(readPixelsArea.x, readPixelsArea.y, readPixelsArea.width,
-                           readPixelsArea.height, readPixelsFormat, GL_UNSIGNED_BYTE, sourceMemory);
+    ANGLE_GL_TRY(context, mFunctions->readPixels(readPixelsArea.x, readPixelsArea.y,
+                                                 readPixelsArea.width, readPixelsArea.height,
+                                                 readPixelsFormat, GL_UNSIGNED_BYTE, sourceMemory));
 
     angle::FormatID destFormatID =
         angle::Format::InternalFormatToID(destInternalFormatInfo.sizedInternalFormat);
@@ -740,14 +763,16 @@
         nativegl::GetTexSubImageFormat(mFunctions, mFeatures, destFormat, destType);
 
     mStateManager->bindTexture(dest->getType(), dest->getTextureID());
-    mFunctions->texSubImage2D(ToGLenum(destTarget), static_cast<GLint>(destLevel), destOffset.x,
+    ANGLE_GL_TRY(context, mFunctions->texSubImage2D(
+                              ToGLenum(destTarget), static_cast<GLint>(destLevel), destOffset.x,
                               destOffset.y, readPixelsArea.width, readPixelsArea.height,
-                              texSubImageFormat.format, texSubImageFormat.type, destMemory);
+                              texSubImageFormat.format, texSubImageFormat.type, destMemory));
 
     return angle::Result::Continue;
 }
 
-angle::Result BlitGL::copyTexSubImage(TextureGL *source,
+angle::Result BlitGL::copyTexSubImage(const gl::Context *context,
+                                      TextureGL *source,
                                       size_t sourceLevel,
                                       TextureGL *dest,
                                       gl::TextureTarget destTarget,
@@ -756,14 +781,14 @@
                                       const gl::Offset &destOffset,
                                       bool *copySucceededOut)
 {
-    ANGLE_TRY(initializeResources());
+    ANGLE_TRY(initializeResources(context));
 
     // Make sure the source texture can create a complete framebuffer before continuing.
     mStateManager->bindFramebuffer(GL_FRAMEBUFFER, mScratchFBO);
-    mFunctions->framebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
-                                     ToGLenum(source->getType()), source->getTextureID(),
-                                     static_cast<GLint>(sourceLevel));
-    GLenum status = mFunctions->checkFramebufferStatus(GL_FRAMEBUFFER);
+    ANGLE_GL_TRY(context, mFunctions->framebufferTexture2D(
+                              GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, ToGLenum(source->getType()),
+                              source->getTextureID(), static_cast<GLint>(sourceLevel)));
+    GLenum status = ANGLE_GL_TRY(context, mFunctions->checkFramebufferStatus(GL_FRAMEBUFFER));
     if (status != GL_FRAMEBUFFER_COMPLETE)
     {
         *copySucceededOut = false;
@@ -772,21 +797,23 @@
 
     mStateManager->bindTexture(dest->getType(), dest->getTextureID());
 
-    mFunctions->copyTexSubImage2D(ToGLenum(destTarget), static_cast<GLint>(destLevel), destOffset.x,
-                                  destOffset.y, sourceArea.x, sourceArea.y, sourceArea.width,
-                                  sourceArea.height);
+    ANGLE_GL_TRY(context,
+                 mFunctions->copyTexSubImage2D(ToGLenum(destTarget), static_cast<GLint>(destLevel),
+                                               destOffset.x, destOffset.y, sourceArea.x,
+                                               sourceArea.y, sourceArea.width, sourceArea.height));
 
     *copySucceededOut = true;
     return angle::Result::Continue;
 }
 
-angle::Result BlitGL::clearRenderableTexture(TextureGL *source,
+angle::Result BlitGL::clearRenderableTexture(const gl::Context *context,
+                                             TextureGL *source,
                                              GLenum sizedInternalFormat,
                                              int numTextureLayers,
                                              const gl::ImageIndex &imageIndex,
                                              bool *clearSucceededOut)
 {
-    ANGLE_TRY(initializeResources());
+    ANGLE_TRY(initializeResources(context));
 
     ClearBindTargetVector bindTargets;
     ClearBindTargetVector unbindTargets;
@@ -795,26 +822,26 @@
                               &clearMask));
 
     mStateManager->bindFramebuffer(GL_FRAMEBUFFER, mScratchFBO);
-    UnbindAttachments(mFunctions, GL_FRAMEBUFFER, unbindTargets);
+    ANGLE_TRY(UnbindAttachments(context, mFunctions, GL_FRAMEBUFFER, unbindTargets));
 
     if (nativegl::UseTexImage2D(source->getType()))
     {
         ASSERT(numTextureLayers == 1);
         for (GLenum bindTarget : bindTargets)
         {
-            mFunctions->framebufferTexture2D(GL_FRAMEBUFFER, bindTarget,
-                                             ToGLenum(imageIndex.getTarget()),
-                                             source->getTextureID(), imageIndex.getLevelIndex());
+            ANGLE_GL_TRY(context, mFunctions->framebufferTexture2D(
+                                      GL_FRAMEBUFFER, bindTarget, ToGLenum(imageIndex.getTarget()),
+                                      source->getTextureID(), imageIndex.getLevelIndex()));
         }
 
-        GLenum status = mFunctions->checkFramebufferStatus(GL_FRAMEBUFFER);
+        GLenum status = ANGLE_GL_TRY(context, mFunctions->checkFramebufferStatus(GL_FRAMEBUFFER));
         if (status == GL_FRAMEBUFFER_COMPLETE)
         {
-            mFunctions->clear(clearMask);
+            ANGLE_GL_TRY(context, mFunctions->clear(clearMask));
         }
         else
         {
-            UnbindAttachments(mFunctions, GL_FRAMEBUFFER, bindTargets);
+            ANGLE_TRY(UnbindAttachments(context, mFunctions, GL_FRAMEBUFFER, bindTargets));
             *clearSucceededOut = false;
             return angle::Result::Continue;
         }
@@ -828,18 +855,20 @@
         {
             for (GLenum bindTarget : bindTargets)
             {
-                mFunctions->framebufferTexture(GL_FRAMEBUFFER, bindTarget, source->getTextureID(),
-                                               imageIndex.getLevelIndex());
+                ANGLE_GL_TRY(context, mFunctions->framebufferTexture(GL_FRAMEBUFFER, bindTarget,
+                                                                     source->getTextureID(),
+                                                                     imageIndex.getLevelIndex()));
             }
 
-            GLenum status = mFunctions->checkFramebufferStatus(GL_FRAMEBUFFER);
+            GLenum status =
+                ANGLE_GL_TRY(context, mFunctions->checkFramebufferStatus(GL_FRAMEBUFFER));
             if (status == GL_FRAMEBUFFER_COMPLETE)
             {
-                mFunctions->clear(clearMask);
+                ANGLE_GL_TRY(context, mFunctions->clear(clearMask));
             }
             else
             {
-                UnbindAttachments(mFunctions, GL_FRAMEBUFFER, bindTargets);
+                ANGLE_TRY(UnbindAttachments(context, mFunctions, GL_FRAMEBUFFER, bindTargets));
                 *clearSucceededOut = false;
                 return angle::Result::Continue;
             }
@@ -858,19 +887,20 @@
             {
                 for (GLenum bindTarget : bindTargets)
                 {
-                    mFunctions->framebufferTextureLayer(
-                        GL_FRAMEBUFFER, bindTarget, source->getTextureID(),
-                        imageIndex.getLevelIndex(), layer + firstLayer);
+                    ANGLE_GL_TRY(context, mFunctions->framebufferTextureLayer(
+                                              GL_FRAMEBUFFER, bindTarget, source->getTextureID(),
+                                              imageIndex.getLevelIndex(), layer + firstLayer));
                 }
 
-                GLenum status = mFunctions->checkFramebufferStatus(GL_FRAMEBUFFER);
+                GLenum status =
+                    ANGLE_GL_TRY(context, mFunctions->checkFramebufferStatus(GL_FRAMEBUFFER));
                 if (status == GL_FRAMEBUFFER_COMPLETE)
                 {
-                    mFunctions->clear(clearMask);
+                    ANGLE_GL_TRY(context, mFunctions->clear(clearMask));
                 }
                 else
                 {
-                    UnbindAttachments(mFunctions, GL_FRAMEBUFFER, bindTargets);
+                    ANGLE_TRY(UnbindAttachments(context, mFunctions, GL_FRAMEBUFFER, bindTargets));
                     *clearSucceededOut = false;
                     return angle::Result::Continue;
                 }
@@ -878,14 +908,16 @@
         }
     }
 
-    UnbindAttachments(mFunctions, GL_FRAMEBUFFER, bindTargets);
+    ANGLE_TRY(UnbindAttachments(context, mFunctions, GL_FRAMEBUFFER, bindTargets));
     *clearSucceededOut = true;
     return angle::Result::Continue;
 }
 
-angle::Result BlitGL::clearRenderbuffer(RenderbufferGL *source, GLenum sizedInternalFormat)
+angle::Result BlitGL::clearRenderbuffer(const gl::Context *context,
+                                        RenderbufferGL *source,
+                                        GLenum sizedInternalFormat)
 {
-    ANGLE_TRY(initializeResources());
+    ANGLE_TRY(initializeResources(context));
 
     ClearBindTargetVector bindTargets;
     ClearBindTargetVector unbindTargets;
@@ -894,25 +926,27 @@
                               &clearMask));
 
     mStateManager->bindFramebuffer(GL_FRAMEBUFFER, mScratchFBO);
-    UnbindAttachments(mFunctions, GL_FRAMEBUFFER, unbindTargets);
+    ANGLE_TRY(UnbindAttachments(context, mFunctions, GL_FRAMEBUFFER, unbindTargets));
 
     for (GLenum bindTarget : bindTargets)
     {
-        mFunctions->framebufferRenderbuffer(GL_FRAMEBUFFER, bindTarget, GL_RENDERBUFFER,
-                                            source->getRenderbufferID());
+        ANGLE_GL_TRY(context,
+                     mFunctions->framebufferRenderbuffer(
+                         GL_FRAMEBUFFER, bindTarget, GL_RENDERBUFFER, source->getRenderbufferID()));
     }
-    mFunctions->clear(clearMask);
+    ANGLE_GL_TRY(context, mFunctions->clear(clearMask));
 
     // Unbind
     for (GLenum bindTarget : bindTargets)
     {
-        mFunctions->framebufferRenderbuffer(GL_FRAMEBUFFER, bindTarget, GL_RENDERBUFFER, 0);
+        ANGLE_GL_TRY(context, mFunctions->framebufferRenderbuffer(GL_FRAMEBUFFER, bindTarget,
+                                                                  GL_RENDERBUFFER, 0));
     }
 
     return angle::Result::Continue;
 }
 
-angle::Result BlitGL::clearFramebuffer(FramebufferGL *source)
+angle::Result BlitGL::clearFramebuffer(const gl::Context *context, FramebufferGL *source)
 {
     // initializeResources skipped because no local state is used
 
@@ -921,53 +955,56 @@
     ANGLE_TRY(SetClearState(mStateManager, true, true, true, &clearMask));
 
     mStateManager->bindFramebuffer(GL_FRAMEBUFFER, source->getFramebufferID());
-    mFunctions->clear(clearMask);
+    ANGLE_GL_TRY(context, mFunctions->clear(clearMask));
 
     return angle::Result::Continue;
 }
 
-angle::Result BlitGL::clearRenderableTextureAlphaToOne(GLuint texture,
+angle::Result BlitGL::clearRenderableTextureAlphaToOne(const gl::Context *context,
+                                                       GLuint texture,
                                                        gl::TextureTarget target,
                                                        size_t level)
 {
     // Clearing the alpha of 3D textures is not supported/needed yet.
     ASSERT(nativegl::UseTexImage2D(TextureTargetToType(target)));
 
-    ANGLE_TRY(initializeResources());
+    ANGLE_TRY(initializeResources(context));
 
     mStateManager->setClearColor(gl::ColorF(0.0f, 0.0f, 0.0f, 1.0f));
     mStateManager->setColorMask(false, false, false, true);
     mStateManager->setScissorTestEnabled(false);
 
     mStateManager->bindFramebuffer(GL_FRAMEBUFFER, mScratchFBO);
-    mFunctions->framebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, ToGLenum(target),
-                                     texture, static_cast<GLint>(level));
-    mFunctions->clear(GL_COLOR_BUFFER_BIT);
+    ANGLE_GL_TRY(context, mFunctions->framebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
+                                                           ToGLenum(target), texture,
+                                                           static_cast<GLint>(level)));
+    ANGLE_GL_TRY(context, mFunctions->clear(GL_COLOR_BUFFER_BIT));
 
     // Unbind the texture from the the scratch framebuffer
-    mFunctions->framebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, 0);
+    ANGLE_GL_TRY(context, mFunctions->framebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
+                                                              GL_RENDERBUFFER, 0));
 
     return angle::Result::Continue;
 }
 
-angle::Result BlitGL::initializeResources()
+angle::Result BlitGL::initializeResources(const gl::Context *context)
 {
     for (size_t i = 0; i < ArraySize(mScratchTextures); i++)
     {
         if (mScratchTextures[i] == 0)
         {
-            mFunctions->genTextures(1, &mScratchTextures[i]);
+            ANGLE_GL_TRY(context, mFunctions->genTextures(1, &mScratchTextures[i]));
         }
     }
 
     if (mScratchFBO == 0)
     {
-        mFunctions->genFramebuffers(1, &mScratchFBO);
+        ANGLE_GL_TRY(context, mFunctions->genFramebuffers(1, &mScratchFBO));
     }
 
     if (mVertexBuffer == 0)
     {
-        mFunctions->genBuffers(1, &mVertexBuffer);
+        ANGLE_GL_TRY(context, mFunctions->genBuffers(1, &mVertexBuffer));
         mStateManager->bindBuffer(gl::BufferBinding::Array, mVertexBuffer);
 
         // Use a single, large triangle, to avoid arithmetic precision issues where fragments
@@ -976,12 +1013,13 @@
             -0.5f, 0.0f, 1.5f, 0.0f, 0.5f, 2.0f,
         };
 
-        mFunctions->bufferData(GL_ARRAY_BUFFER, sizeof(float) * 6, vertexData, GL_STATIC_DRAW);
+        ANGLE_GL_TRY(context, mFunctions->bufferData(GL_ARRAY_BUFFER, sizeof(float) * 6, vertexData,
+                                                     GL_STATIC_DRAW));
     }
 
     if (mVAO == 0)
     {
-        mFunctions->genVertexArrays(1, &mVAO);
+        ANGLE_GL_TRY(context, mFunctions->genVertexArrays(1, &mVAO));
 
         mStateManager->bindVertexArray(mVAO, 0);
         mStateManager->bindBuffer(gl::BufferBinding::Array, mVertexBuffer);
@@ -989,19 +1027,20 @@
         // Enable all attributes with the same buffer so that it doesn't matter what location the
         // texcoord attribute is assigned
         GLint maxAttributes = 0;
-        mFunctions->getIntegerv(GL_MAX_VERTEX_ATTRIBS, &maxAttributes);
+        ANGLE_GL_TRY(context, mFunctions->getIntegerv(GL_MAX_VERTEX_ATTRIBS, &maxAttributes));
 
         for (GLint i = 0; i < maxAttributes; i++)
         {
-            mFunctions->enableVertexAttribArray(i);
-            mFunctions->vertexAttribPointer(i, 2, GL_FLOAT, GL_FALSE, 0, nullptr);
+            ANGLE_GL_TRY(context, mFunctions->enableVertexAttribArray(i));
+            ANGLE_GL_TRY(context,
+                         mFunctions->vertexAttribPointer(i, 2, GL_FLOAT, GL_FALSE, 0, nullptr));
         }
     }
 
     return angle::Result::Continue;
 }
 
-void BlitGL::orphanScratchTextures()
+angle::Result BlitGL::orphanScratchTextures(const gl::Context *context)
 {
     for (auto texture : mScratchTextures)
     {
@@ -1009,60 +1048,37 @@
         gl::PixelUnpackState unpack;
         mStateManager->setPixelUnpackState(unpack);
         mStateManager->setPixelUnpackBuffer(nullptr);
-        mFunctions->texImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 0, 0, 0, GL_RGBA, GL_UNSIGNED_BYTE,
-                               nullptr);
+        ANGLE_GL_TRY(context, mFunctions->texImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 0, 0, 0, GL_RGBA,
+                                                     GL_UNSIGNED_BYTE, nullptr));
     }
+    return angle::Result::Continue;
 }
 
-void BlitGL::setScratchTextureParameter(GLenum param, GLenum value)
+angle::Result BlitGL::setScratchTextureParameter(const gl::Context *context,
+                                                 GLenum param,
+                                                 GLenum value)
 {
     for (auto texture : mScratchTextures)
     {
         mStateManager->bindTexture(gl::TextureType::_2D, texture);
-        mFunctions->texParameteri(GL_TEXTURE_2D, param, value);
-        mFunctions->texParameteri(GL_TEXTURE_2D, param, value);
+        ANGLE_GL_TRY(context, mFunctions->texParameteri(GL_TEXTURE_2D, param, value));
+        ANGLE_GL_TRY(context, mFunctions->texParameteri(GL_TEXTURE_2D, param, value));
     }
-}
-
-BlitGL::BlitProgramType BlitGL::getBlitProgramType(gl::TextureType sourceTextureType,
-                                                   GLenum sourceComponentType,
-                                                   GLenum destComponentType)
-{
-    if (sourceComponentType == GL_UNSIGNED_INT)
-    {
-        ASSERT(destComponentType == GL_UNSIGNED_INT);
-        return BlitProgramType::UINT_TO_UINT;
-    }
-    else
-    {
-        // Source is a float type
-        ASSERT(sourceComponentType != GL_INT);
-        if (destComponentType == GL_UNSIGNED_INT)
-        {
-            return sourceTextureType == gl::TextureType::External
-                       ? BlitProgramType::FLOAT_TO_UINT_EXTERNAL
-                       : BlitProgramType::FLOAT_TO_UINT;
-        }
-        else
-        {
-            // Dest is a float type
-            return sourceTextureType == gl::TextureType::External
-                       ? BlitProgramType::FLOAT_TO_FLOAT_EXTERNAL
-                       : BlitProgramType::FLOAT_TO_FLOAT;
-        }
-    }
+    return angle::Result::Continue;
 }
 
 angle::Result BlitGL::getBlitProgram(const gl::Context *context,
-                                     BlitProgramType type,
+                                     gl::TextureType sourceTextureType,
+                                     GLenum sourceComponentType,
+                                     GLenum destComponentType,
                                      BlitProgram **program)
 {
-    ContextGL *contextGL = GetImplAs<ContextGL>(context);
 
-    BlitProgram &result = mBlitPrograms[type];
+    BlitProgramType programType(sourceTextureType, sourceComponentType, destComponentType);
+    BlitProgram &result = mBlitPrograms[programType];
     if (result.program == 0)
     {
-        result.program = mFunctions->createProgram();
+        result.program = ANGLE_GL_TRY(context, mFunctions->createProgram());
 
         // Depending on what types need to be output by the shaders, different versions need to be
         // used.
@@ -1072,9 +1088,10 @@
         std::string fsInputVariableQualifier;
         std::string fsOutputVariableQualifier;
         std::string sampleFunction;
-        if (type == BlitProgramType::FLOAT_TO_FLOAT ||
-            type == BlitProgramType::FLOAT_TO_FLOAT_EXTERNAL)
+        if (sourceComponentType != GL_UNSIGNED_INT && destComponentType != GL_UNSIGNED_INT &&
+            sourceTextureType != gl::TextureType::Rectangle)
         {
+            // Simple case, float-to-float with 2D or external textures.  Only needs ESSL/GLSL 100
             version                   = "100";
             vsInputVariableQualifier  = "attribute";
             vsOutputVariableQualifier = "varying";
@@ -1119,38 +1136,41 @@
             std::string vsSourceStr  = vsSourceStream.str();
             const char *vsSourceCStr = vsSourceStr.c_str();
 
-            GLuint vs = mFunctions->createShader(GL_VERTEX_SHADER);
-            mFunctions->shaderSource(vs, 1, &vsSourceCStr, nullptr);
-            mFunctions->compileShader(vs);
-            ANGLE_TRY(CheckCompileStatus(contextGL, mFunctions, vs));
+            GLuint vs = ANGLE_GL_TRY(context, mFunctions->createShader(GL_VERTEX_SHADER));
+            ANGLE_GL_TRY(context, mFunctions->shaderSource(vs, 1, &vsSourceCStr, nullptr));
+            ANGLE_GL_TRY(context, mFunctions->compileShader(vs));
+            ANGLE_TRY(CheckCompileStatus(context, mFunctions, vs));
 
-            mFunctions->attachShader(result.program, vs);
-            mFunctions->deleteShader(vs);
+            ANGLE_GL_TRY(context, mFunctions->attachShader(result.program, vs));
+            ANGLE_GL_TRY(context, mFunctions->deleteShader(vs));
         }
 
         {
             // Sampling texture uniform changes depending on source texture type.
             std::string samplerType;
-            std::string samplerResultType;
-            std::string extensionRequirements;
-            switch (type)
+            switch (sourceTextureType)
             {
-                case BlitProgramType::FLOAT_TO_FLOAT:
-                case BlitProgramType::FLOAT_TO_UINT:
-                    samplerType       = "sampler2D";
-                    samplerResultType = "vec4";
+                case gl::TextureType::_2D:
+                    switch (sourceComponentType)
+                    {
+                        case GL_UNSIGNED_INT:
+                            samplerType = "usampler2D";
+                            break;
+
+                        default:  // Float type
+                            samplerType = "sampler2D";
+                            break;
+                    }
                     break;
 
-                case BlitProgramType::FLOAT_TO_FLOAT_EXTERNAL:
-                case BlitProgramType::FLOAT_TO_UINT_EXTERNAL:
-                    samplerType           = "samplerExternalOES";
-                    samplerResultType     = "vec4";
-                    extensionRequirements = "#extension GL_OES_EGL_image_external : require";
+                case gl::TextureType::External:
+                    ASSERT(sourceComponentType != GL_UNSIGNED_INT);
+                    samplerType = "samplerExternalOES";
                     break;
 
-                case BlitProgramType::UINT_TO_UINT:
-                    samplerType       = "usampler2D";
-                    samplerResultType = "uvec4";
+                case gl::TextureType::Rectangle:
+                    ASSERT(sourceComponentType != GL_UNSIGNED_INT);
+                    samplerType = "sampler2DRect";
                     break;
 
                 default:
@@ -1158,30 +1178,65 @@
                     break;
             }
 
+            std::string samplerResultType;
+            switch (sourceComponentType)
+            {
+                case GL_UNSIGNED_INT:
+                    samplerResultType = "uvec4";
+                    break;
+
+                default:  // Float type
+                    samplerResultType = "vec4";
+                    break;
+            }
+
+            std::string extensionRequirements;
+            switch (sourceTextureType)
+            {
+                case gl::TextureType::External:
+                    extensionRequirements = "#extension GL_OES_EGL_image_external : require";
+                    break;
+
+                case gl::TextureType::Rectangle:
+                    if (mFunctions->hasGLExtension("GL_ARB_texture_rectangle"))
+                    {
+                        extensionRequirements = "#extension GL_ARB_texture_rectangle : require";
+                    }
+                    else
+                    {
+                        ASSERT(mFunctions->isAtLeastGL(gl::Version(3, 1)));
+                    }
+                    break;
+
+                default:
+                    break;
+            }
+
             // Output variables depend on the output type
             std::string outputType;
             std::string outputVariableName;
             std::string outputMultiplier;
-            switch (type)
+            switch (destComponentType)
             {
-                case BlitProgramType::FLOAT_TO_FLOAT:
-                case BlitProgramType::FLOAT_TO_FLOAT_EXTERNAL:
-                    ASSERT(version == "100");
-                    outputType         = "";
-                    outputVariableName = "gl_FragColor";
-                    outputMultiplier   = "1.0";
-                    break;
-
-                case BlitProgramType::FLOAT_TO_UINT:
-                case BlitProgramType::FLOAT_TO_UINT_EXTERNAL:
-                case BlitProgramType::UINT_TO_UINT:
+                case GL_UNSIGNED_INT:
                     outputType         = "uvec4";
                     outputVariableName = "outputUint";
                     outputMultiplier   = "255.0";
                     break;
 
-                default:
-                    UNREACHABLE();
+                default:  //  float type
+                    if (version == "100")
+                    {
+                        outputType         = "";
+                        outputVariableName = "gl_FragColor";
+                        outputMultiplier   = "1.0";
+                    }
+                    else
+                    {
+                        outputType         = "vec4";
+                        outputVariableName = "outputFloat";
+                        outputMultiplier   = "1.0";
+                    }
                     break;
             }
 
@@ -1207,9 +1262,24 @@
             fsSourceStream << "void main()\n";
             fsSourceStream << "{\n";
 
-            // discard if the texcoord is outside (0, 1)^2 so the blitframebuffer workaround
-            // doesn't write when the point sampled is outside of the source framebuffer.
-            fsSourceStream << "    if (clamp(v_texcoord, vec2(0.0), vec2(1.0)) != v_texcoord)\n";
+            std::string maxTexcoord;
+            switch (sourceTextureType)
+            {
+                case gl::TextureType::Rectangle:
+                    // Valid texcoords are within source texture size
+                    maxTexcoord = "vec2(textureSize(u_source_texture))";
+                    break;
+
+                default:
+                    // Valid texcoords are in [0, 1]
+                    maxTexcoord = "vec2(1.0)";
+                    break;
+            }
+
+            // discard if the texcoord is invalid so the blitframebuffer workaround doesn't
+            // write when the point sampled is outside of the source framebuffer.
+            fsSourceStream << "    if (clamp(v_texcoord, vec2(0.0), " << maxTexcoord
+                           << ") != v_texcoord)\n";
             fsSourceStream << "    {\n";
             fsSourceStream << "        discard;\n";
             fsSourceStream << "    }\n";
@@ -1238,26 +1308,28 @@
             std::string fsSourceStr  = fsSourceStream.str();
             const char *fsSourceCStr = fsSourceStr.c_str();
 
-            GLuint fs = mFunctions->createShader(GL_FRAGMENT_SHADER);
-            mFunctions->shaderSource(fs, 1, &fsSourceCStr, nullptr);
-            mFunctions->compileShader(fs);
-            ANGLE_TRY(CheckCompileStatus(contextGL, mFunctions, fs));
+            GLuint fs = ANGLE_GL_TRY(context, mFunctions->createShader(GL_FRAGMENT_SHADER));
+            ANGLE_GL_TRY(context, mFunctions->shaderSource(fs, 1, &fsSourceCStr, nullptr));
+            ANGLE_GL_TRY(context, mFunctions->compileShader(fs));
+            ANGLE_TRY(CheckCompileStatus(context, mFunctions, fs));
 
-            mFunctions->attachShader(result.program, fs);
-            mFunctions->deleteShader(fs);
+            ANGLE_GL_TRY(context, mFunctions->attachShader(result.program, fs));
+            ANGLE_GL_TRY(context, mFunctions->deleteShader(fs));
         }
 
-        mFunctions->linkProgram(result.program);
-        ANGLE_TRY(CheckLinkStatus(contextGL, mFunctions, result.program));
+        ANGLE_GL_TRY(context, mFunctions->linkProgram(result.program));
+        ANGLE_TRY(CheckLinkStatus(context, mFunctions, result.program));
 
-        result.sourceTextureLocation =
-            mFunctions->getUniformLocation(result.program, "u_source_texture");
-        result.scaleLocation  = mFunctions->getUniformLocation(result.program, "u_scale");
-        result.offsetLocation = mFunctions->getUniformLocation(result.program, "u_offset");
-        result.multiplyAlphaLocation =
-            mFunctions->getUniformLocation(result.program, "u_multiply_alpha");
-        result.unMultiplyAlphaLocation =
-            mFunctions->getUniformLocation(result.program, "u_unmultiply_alpha");
+        result.sourceTextureLocation = ANGLE_GL_TRY(
+            context, mFunctions->getUniformLocation(result.program, "u_source_texture"));
+        result.scaleLocation =
+            ANGLE_GL_TRY(context, mFunctions->getUniformLocation(result.program, "u_scale"));
+        result.offsetLocation =
+            ANGLE_GL_TRY(context, mFunctions->getUniformLocation(result.program, "u_offset"));
+        result.multiplyAlphaLocation = ANGLE_GL_TRY(
+            context, mFunctions->getUniformLocation(result.program, "u_multiply_alpha"));
+        result.unMultiplyAlphaLocation = ANGLE_GL_TRY(
+            context, mFunctions->getUniformLocation(result.program, "u_unmultiply_alpha"));
     }
 
     *program = &result;
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/BlitGL.h b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/BlitGL.h
index 75e78df..4677391 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/BlitGL.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/BlitGL.h
@@ -107,7 +107,8 @@
                                             bool unpackPremultiplyAlpha,
                                             bool unpackUnmultiplyAlpha);
 
-    angle::Result copyTexSubImage(TextureGL *source,
+    angle::Result copyTexSubImage(const gl::Context *context,
+                                  TextureGL *source,
                                   size_t sourceLevel,
                                   TextureGL *dest,
                                   gl::TextureTarget destTarget,
@@ -116,25 +117,31 @@
                                   const gl::Offset &destOffset,
                                   bool *copySucceededOut);
 
-    angle::Result clearRenderableTexture(TextureGL *source,
+    angle::Result clearRenderableTexture(const gl::Context *context,
+                                         TextureGL *source,
                                          GLenum sizedInternalFormat,
                                          int numTextureLayers,
                                          const gl::ImageIndex &imageIndex,
                                          bool *clearSucceededOut);
 
-    angle::Result clearRenderbuffer(RenderbufferGL *source, GLenum sizedInternalFormat);
+    angle::Result clearRenderbuffer(const gl::Context *context,
+                                    RenderbufferGL *source,
+                                    GLenum sizedInternalFormat);
 
-    angle::Result clearFramebuffer(FramebufferGL *source);
+    angle::Result clearFramebuffer(const gl::Context *context, FramebufferGL *source);
 
-    angle::Result clearRenderableTextureAlphaToOne(GLuint texture,
+    angle::Result clearRenderableTextureAlphaToOne(const gl::Context *context,
+                                                   GLuint texture,
                                                    gl::TextureTarget target,
                                                    size_t level);
 
-    angle::Result initializeResources();
+    angle::Result initializeResources(const gl::Context *context);
 
   private:
-    void orphanScratchTextures();
-    void setScratchTextureParameter(GLenum param, GLenum value);
+    angle::Result orphanScratchTextures(const gl::Context *context);
+    angle::Result setScratchTextureParameter(const gl::Context *context,
+                                             GLenum param,
+                                             GLenum value);
 
     const FunctionsGL *mFunctions;
     const angle::FeaturesGL &mFeatures;
@@ -150,22 +157,14 @@
         GLint unMultiplyAlphaLocation = -1;
     };
 
-    enum class BlitProgramType
-    {
-        FLOAT_TO_FLOAT,
-        FLOAT_TO_FLOAT_EXTERNAL,
-        FLOAT_TO_UINT,
-        FLOAT_TO_UINT_EXTERNAL,
-        UINT_TO_UINT,
-    };
-
-    static BlitProgramType getBlitProgramType(gl::TextureType sourceTextureType,
-                                              GLenum sourceComponentType,
-                                              GLenum destComponentType);
     angle::Result getBlitProgram(const gl::Context *context,
-                                 BlitProgramType type,
+                                 gl::TextureType sourceTextureType,
+                                 GLenum sourceComponentType,
+                                 GLenum destComponentType,
                                  BlitProgram **program);
 
+    // SourceType, SourceComponentType, DestComponentType
+    using BlitProgramType = std::tuple<gl::TextureType, GLenum, GLenum>;
     std::map<BlitProgramType, BlitProgram> mBlitPrograms;
 
     GLuint mScratchTextures[2];
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/ContextGL.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/ContextGL.cpp
index f93fe03..dd22dd8 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/ContextGL.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/ContextGL.cpp
@@ -91,8 +91,14 @@
 
 RenderbufferImpl *ContextGL::createRenderbuffer(const gl::RenderbufferState &state)
 {
-    return new RenderbufferGL(state, getFunctions(), getFeaturesGL(), getStateManager(),
-                              mRenderer->getBlitter(), getNativeTextureCaps());
+    const FunctionsGL *functions = getFunctions();
+    StateManagerGL *stateManager = getStateManager();
+
+    GLuint renderbuffer = 0;
+    functions->genRenderbuffers(1, &renderbuffer);
+    stateManager->bindRenderbuffer(GL_RENDERBUFFER, renderbuffer);
+
+    return new RenderbufferGL(state, renderbuffer);
 }
 
 BufferImpl *ContextGL::createBuffer(const gl::BufferState &state)
@@ -221,6 +227,10 @@
 
         ANGLE_TRY(vaoGL->syncClientSideData(context, program->getActiveAttribLocationsMask(), first,
                                             count, instanceCount));
+
+#if defined(ANGLE_STATE_VALIDATION_ENABLED)
+        vaoGL->validateState();
+#endif  // ANGLE_STATE_VALIDATION_ENABLED
     }
 
     return angle::Result::Continue;
@@ -252,6 +262,11 @@
         *outIndices = indices;
     }
 
+#if defined(ANGLE_STATE_VALIDATION_ENABLED)
+    const VertexArrayGL *vaoGL = GetImplAs<VertexArrayGL>(vao);
+    vaoGL->validateState();
+#endif  // ANGLE_STATE_VALIDATION_ENABLED
+
     return angle::Result::Continue;
 }
 
@@ -264,6 +279,10 @@
     const bool usesMultiview    = program->usesMultiview();
     const GLsizei instanceCount = usesMultiview ? program->getNumViews() : 0;
 
+#if defined(ANGLE_STATE_VALIDATION_ENABLED)
+    validateState();
+#endif
+
     ANGLE_TRY(setDrawArraysState(context, first, count, instanceCount));
     if (!usesMultiview)
     {
@@ -294,6 +313,82 @@
     return angle::Result::Continue;
 }
 
+gl::AttributesMask ContextGL::updateAttributesForBaseInstance(const gl::Program *program,
+                                                              GLuint baseInstance)
+{
+    gl::AttributesMask attribToUpdateMask;
+
+    if (baseInstance != 0)
+    {
+        const FunctionsGL *functions = getFunctions();
+        const auto &attribs          = mState.getVertexArray()->getVertexAttributes();
+        const auto &bindings         = mState.getVertexArray()->getVertexBindings();
+        for (GLuint attribIndex = 0; attribIndex < gl::MAX_VERTEX_ATTRIBS; attribIndex++)
+        {
+            const gl::VertexAttribute &attrib = attribs[attribIndex];
+            const gl::VertexBinding &binding  = bindings[attrib.bindingIndex];
+            if (program->isAttribLocationActive(attribIndex) && binding.getDivisor() != 0)
+            {
+                attribToUpdateMask.set(attribIndex);
+                const char *p             = static_cast<const char *>(attrib.pointer);
+                const size_t sourceStride = gl::ComputeVertexAttributeStride(attrib, binding);
+                const void *newPointer    = p + sourceStride * baseInstance;
+
+                const BufferGL *buffer = GetImplAs<BufferGL>(binding.getBuffer().get());
+                // We often stream data from scratch buffers when client side data is being used
+                // and that information is in VertexArrayGL.
+                // Assert that the buffer is non-null because this case isn't handled.
+                ASSERT(buffer);
+                getStateManager()->bindBuffer(gl::BufferBinding::Array, buffer->getBufferID());
+                if (attrib.format->isPureInt())
+                {
+                    functions->vertexAttribIPointer(attribIndex, attrib.format->channelCount,
+                                                    gl::ToGLenum(attrib.format->vertexAttribType),
+                                                    attrib.vertexAttribArrayStride, newPointer);
+                }
+                else
+                {
+                    functions->vertexAttribPointer(attribIndex, attrib.format->channelCount,
+                                                   gl::ToGLenum(attrib.format->vertexAttribType),
+                                                   attrib.format->isNorm(),
+                                                   attrib.vertexAttribArrayStride, newPointer);
+                }
+            }
+        }
+    }
+
+    return attribToUpdateMask;
+}
+
+void ContextGL::resetUpdatedAttributes(gl::AttributesMask attribMask)
+{
+    const FunctionsGL *functions = getFunctions();
+    for (size_t attribIndex : attribMask)
+    {
+        const gl::VertexAttribute &attrib =
+            mState.getVertexArray()->getVertexAttributes()[attribIndex];
+        const gl::VertexBinding &binding =
+            (mState.getVertexArray()->getVertexBindings())[attrib.bindingIndex];
+        getStateManager()->bindBuffer(
+            gl::BufferBinding::Array,
+            GetImplAs<BufferGL>(binding.getBuffer().get())->getBufferID());
+        if (attrib.format->isPureInt())
+        {
+            functions->vertexAttribIPointer(static_cast<GLuint>(attribIndex),
+                                            attrib.format->channelCount,
+                                            gl::ToGLenum(attrib.format->vertexAttribType),
+                                            attrib.vertexAttribArrayStride, attrib.pointer);
+        }
+        else
+        {
+            functions->vertexAttribPointer(
+                static_cast<GLuint>(attribIndex), attrib.format->channelCount,
+                gl::ToGLenum(attrib.format->vertexAttribType), attrib.format->isNorm(),
+                attrib.vertexAttribArrayStride, attrib.pointer);
+        }
+    }
+}
+
 angle::Result ContextGL::drawArraysInstancedBaseInstance(const gl::Context *context,
                                                          gl::PrimitiveMode mode,
                                                          GLint first,
@@ -301,7 +396,39 @@
                                                          GLsizei instanceCount,
                                                          GLuint baseInstance)
 {
-    return drawArraysInstanced(context, mode, first, count, instanceCount);
+    GLsizei adjustedInstanceCount = instanceCount;
+    const gl::Program *program    = context->getState().getProgram();
+    if (program->usesMultiview())
+    {
+        adjustedInstanceCount *= program->getNumViews();
+    }
+
+    ANGLE_TRY(setDrawArraysState(context, first, count, adjustedInstanceCount));
+
+    const FunctionsGL *functions = getFunctions();
+
+    if (functions->drawArraysInstancedBaseInstance)
+    {
+        // GL 4.2+ or GL_EXT_base_instance
+        functions->drawArraysInstancedBaseInstance(ToGLenum(mode), first, count,
+                                                   adjustedInstanceCount, baseInstance);
+    }
+    else
+    {
+        // GL 3.3+ or GLES 3.2+
+        // TODO(http://anglebug.com/3910): This is a temporary solution by setting and resetting
+        // pointer offset calling vertexAttribPointer Will refactor stateCache and pass baseInstance
+        // to setDrawArraysState to set pointer offset
+
+        gl::AttributesMask attribToResetMask =
+            updateAttributesForBaseInstance(program, baseInstance);
+
+        functions->drawArraysInstanced(ToGLenum(mode), first, count, adjustedInstanceCount);
+
+        resetUpdatedAttributes(attribToResetMask);
+    }
+
+    return angle::Result::Continue;
 }
 
 angle::Result ContextGL::drawElements(const gl::Context *context,
@@ -316,6 +443,10 @@
     const GLsizei instanceCount = usesMultiview ? program->getNumViews() : 0;
     const void *drawIndexPtr    = nullptr;
 
+#if defined(ANGLE_STATE_VALIDATION_ENABLED)
+    validateState();
+#endif  // ANGLE_STATE_VALIDATION_ENABLED
+
     ANGLE_TRY(setDrawElementsState(context, count, type, indices, instanceCount, &drawIndexPtr));
     if (!usesMultiview)
     {
@@ -373,10 +504,26 @@
 
     const FunctionsGL *functions = getFunctions();
 
-    // GLES 3.2+ or GL 3.2+
-    // or GL_OES_draw_elements_base_vertex / GL_EXT_draw_elements_base_vertex
-    functions->drawElementsInstancedBaseVertex(ToGLenum(mode), count, ToGLenum(type),
-                                               drawIndexPointer, adjustedInstanceCount, baseVertex);
+    if (functions->drawElementsInstancedBaseVertexBaseInstance)
+    {
+        // GL 4.2+ or GL_EXT_base_instance
+        functions->drawElementsInstancedBaseVertexBaseInstance(
+            ToGLenum(mode), count, ToGLenum(type), drawIndexPointer, adjustedInstanceCount,
+            baseVertex, baseInstance);
+    }
+    else
+    {
+        // GL 3.3+ or GLES 3.2+
+        // TODO(http://anglebug.com/3910): same as above
+        gl::AttributesMask attribToResetMask =
+            updateAttributesForBaseInstance(program, baseInstance);
+
+        functions->drawElementsInstancedBaseVertex(ToGLenum(mode), count, ToGLenum(type),
+                                                   drawIndexPointer, adjustedInstanceCount,
+                                                   baseVertex);
+
+        resetUpdatedAttributes(attribToResetMask);
+    }
 
     return angle::Result::Continue;
 }
@@ -656,4 +803,10 @@
     mRenderer->getStateManager()->invalidateTexture(target);
 }
 
+void ContextGL::validateState() const
+{
+    const StateManagerGL *stateManager = mRenderer->getStateManager();
+    stateManager->validateState();
+}
+
 }  // namespace rx
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/ContextGL.h b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/ContextGL.h
index 5080d62..06b174f 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/ContextGL.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/ContextGL.h
@@ -242,6 +242,8 @@
 
     void invalidateTexture(gl::TextureType target) override;
 
+    void validateState() const;
+
   private:
     angle::Result setDrawArraysState(const gl::Context *context,
                                      GLint first,
@@ -255,6 +257,10 @@
                                        GLsizei instanceCount,
                                        const void **outIndices);
 
+    gl::AttributesMask updateAttributesForBaseInstance(const gl::Program *program,
+                                                       GLuint baseInstance);
+    void resetUpdatedAttributes(gl::AttributesMask attribMask);
+
   protected:
     std::shared_ptr<RendererGL> mRenderer;
 };
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/ProgramGL.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/ProgramGL.cpp
index 34f980a..e3822ea 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/ProgramGL.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/ProgramGL.cpp
@@ -229,8 +229,11 @@
         std::vector<std::string> transformFeedbackVaryingMappedNames;
         for (const auto &tfVarying : mState.getTransformFeedbackVaryingNames())
         {
+            gl::ShaderType tfShaderType = mState.hasLinkedShaderStage(gl::ShaderType::Geometry)
+                                              ? gl::ShaderType::Geometry
+                                              : gl::ShaderType::Vertex;
             std::string tfVaryingMappedName =
-                mState.getAttachedShader(gl::ShaderType::Vertex)
+                mState.getAttachedShader(tfShaderType)
                     ->getTransformFeedbackVaryingMappedName(tfVarying);
             transformFeedbackVaryingMappedNames.push_back(tfVaryingMappedName);
         }
@@ -267,7 +270,7 @@
         }
 
         // Bind attribute locations to match the GL layer.
-        for (const sh::ShaderVariable &attribute : mState.getAttributes())
+        for (const sh::ShaderVariable &attribute : mState.getProgramInputs())
         {
             if (!attribute.active || attribute.isBuiltIn())
             {
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/RenderbufferGL.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/RenderbufferGL.cpp
index 1973bab..2a31625 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/RenderbufferGL.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/RenderbufferGL.cpp
@@ -23,27 +23,20 @@
 
 namespace rx
 {
-RenderbufferGL::RenderbufferGL(const gl::RenderbufferState &state,
-                               const FunctionsGL *functions,
-                               const angle::FeaturesGL &features,
-                               StateManagerGL *stateManager,
-                               BlitGL *blitter,
-                               const gl::TextureCapsMap &textureCaps)
-    : RenderbufferImpl(state),
-      mFunctions(functions),
-      mFeatures(features),
-      mStateManager(stateManager),
-      mBlitter(blitter),
-      mTextureCaps(textureCaps),
-      mRenderbufferID(0)
+RenderbufferGL::RenderbufferGL(const gl::RenderbufferState &state, GLuint id)
+    : RenderbufferImpl(state), mRenderbufferID(id)
 {
-    mFunctions->genRenderbuffers(1, &mRenderbufferID);
-    mStateManager->bindRenderbuffer(GL_RENDERBUFFER, mRenderbufferID);
 }
 
 RenderbufferGL::~RenderbufferGL()
 {
-    mStateManager->deleteRenderbuffer(mRenderbufferID);
+    ASSERT(mRenderbufferID == 0);
+}
+
+void RenderbufferGL::onDestroy(const gl::Context *context)
+{
+    StateManagerGL *stateManager = GetStateManagerGL(context);
+    stateManager->deleteRenderbuffer(mRenderbufferID);
     mRenderbufferID = 0;
 }
 
@@ -52,12 +45,18 @@
                                          size_t width,
                                          size_t height)
 {
-    mStateManager->bindRenderbuffer(GL_RENDERBUFFER, mRenderbufferID);
+    const FunctionsGL *functions      = GetFunctionsGL(context);
+    StateManagerGL *stateManager      = GetStateManagerGL(context);
+    const angle::FeaturesGL &features = GetFeaturesGL(context);
+
+    stateManager->bindRenderbuffer(GL_RENDERBUFFER, mRenderbufferID);
 
     nativegl::RenderbufferFormat renderbufferFormat =
-        nativegl::GetRenderbufferFormat(mFunctions, mFeatures, internalformat);
-    mFunctions->renderbufferStorage(GL_RENDERBUFFER, renderbufferFormat.internalFormat,
-                                    static_cast<GLsizei>(width), static_cast<GLsizei>(height));
+        nativegl::GetRenderbufferFormat(functions, features, internalformat);
+    ANGLE_GL_TRY_ALWAYS_CHECK(
+        context,
+        functions->renderbufferStorage(GL_RENDERBUFFER, renderbufferFormat.internalFormat,
+                                       static_cast<GLsizei>(width), static_cast<GLsizei>(height)));
 
     mNativeInternalFormat = renderbufferFormat.internalFormat;
 
@@ -70,28 +69,19 @@
                                                     size_t width,
                                                     size_t height)
 {
-    mStateManager->bindRenderbuffer(GL_RENDERBUFFER, mRenderbufferID);
+    const FunctionsGL *functions      = GetFunctionsGL(context);
+    StateManagerGL *stateManager      = GetStateManagerGL(context);
+    const angle::FeaturesGL &features = GetFeaturesGL(context);
+
+    stateManager->bindRenderbuffer(GL_RENDERBUFFER, mRenderbufferID);
 
     nativegl::RenderbufferFormat renderbufferFormat =
-        nativegl::GetRenderbufferFormat(mFunctions, mFeatures, internalformat);
-    mFunctions->renderbufferStorageMultisample(
-        GL_RENDERBUFFER, static_cast<GLsizei>(samples), renderbufferFormat.internalFormat,
-        static_cast<GLsizei>(width), static_cast<GLsizei>(height));
-
-    const gl::TextureCaps &formatCaps = mTextureCaps.get(internalformat);
-    if (samples > formatCaps.getMaxSamples())
-    {
-        // Before version 4.2, it is unknown if the specific internal format can support the
-        // requested number of samples.  It is expected that GL_OUT_OF_MEMORY is returned if the
-        // renderbuffer cannot be created.
-        GLenum error = GL_NO_ERROR;
-        do
-        {
-            error = mFunctions->getError();
-            ANGLE_CHECK_GL_ALLOC(GetImplAs<ContextGL>(context), error != GL_OUT_OF_MEMORY);
-            ASSERT(error == GL_NO_ERROR);
-        } while (error != GL_NO_ERROR);
-    }
+        nativegl::GetRenderbufferFormat(functions, features, internalformat);
+    ANGLE_GL_TRY_ALWAYS_CHECK(
+        context,
+        functions->renderbufferStorageMultisample(
+            GL_RENDERBUFFER, static_cast<GLsizei>(samples), renderbufferFormat.internalFormat,
+            static_cast<GLsizei>(width), static_cast<GLsizei>(height)));
 
     mNativeInternalFormat = renderbufferFormat.internalFormat;
 
@@ -113,7 +103,8 @@
 angle::Result RenderbufferGL::initializeContents(const gl::Context *context,
                                                  const gl::ImageIndex &imageIndex)
 {
-    return mBlitter->clearRenderbuffer(this, mNativeInternalFormat);
+    BlitGL *blitter = GetBlitGL(context);
+    return blitter->clearRenderbuffer(context, this, mNativeInternalFormat);
 }
 
 GLenum RenderbufferGL::getNativeInternalFormat() const
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/RenderbufferGL.h b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/RenderbufferGL.h
index 863dba4..2457c2d 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/RenderbufferGL.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/RenderbufferGL.h
@@ -31,14 +31,11 @@
 class RenderbufferGL : public RenderbufferImpl
 {
   public:
-    RenderbufferGL(const gl::RenderbufferState &state,
-                   const FunctionsGL *functions,
-                   const angle::FeaturesGL &features,
-                   StateManagerGL *stateManager,
-                   BlitGL *blitter,
-                   const gl::TextureCapsMap &textureCaps);
+    RenderbufferGL(const gl::RenderbufferState &state, GLuint id);
     ~RenderbufferGL() override;
 
+    void onDestroy(const gl::Context *context) override;
+
     angle::Result setStorage(const gl::Context *context,
                              GLenum internalformat,
                              size_t width,
@@ -57,12 +54,6 @@
     GLenum getNativeInternalFormat() const;
 
   private:
-    const FunctionsGL *mFunctions;
-    const angle::FeaturesGL &mFeatures;
-    StateManagerGL *mStateManager;
-    BlitGL *mBlitter;
-    const gl::TextureCapsMap &mTextureCaps;
-
     GLuint mRenderbufferID;
 
     GLenum mNativeInternalFormat;
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/ShaderGL.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/ShaderGL.cpp
index 4056775..e70c28c 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/ShaderGL.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/ShaderGL.cpp
@@ -338,6 +338,11 @@
         additionalOptions |= SH_ADD_BASE_VERTEX_TO_VERTEX_ID;
     }
 
+    if (features.unfoldShortCircuits.enabled)
+    {
+        additionalOptions |= SH_UNFOLD_SHORT_CIRCUIT;
+    }
+
     options |= additionalOptions;
 
     auto workerThreadPool = context->getWorkerThreadPool();
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/StateManagerGL.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/StateManagerGL.cpp
index c0fbbe0..067c625 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/StateManagerGL.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/StateManagerGL.cpp
@@ -34,6 +34,28 @@
 namespace rx
 {
 
+namespace
+{
+
+static void ValidateStateHelper(const FunctionsGL *functions,
+                                const GLuint localValue,
+                                const GLenum pname,
+                                const char *localName,
+                                const char *driverName)
+{
+    GLint queryValue;
+    functions->getIntegerv(pname, &queryValue);
+    if (localValue != static_cast<GLuint>(queryValue))
+    {
+        WARN() << localName << " (" << localValue << ") != " << driverName << " (" << queryValue
+               << ")";
+        // Re-add ASSERT: http://anglebug.com/3900
+        // ASSERT(false);
+    }
+}
+
+}  // anonymous namespace
+
 StateManagerGL::IndexedBufferBinding::IndexedBufferBinding() : offset(0), size(0), buffer(0) {}
 
 StateManagerGL::StateManagerGL(const FunctionsGL *functions,
@@ -356,6 +378,9 @@
 
 void StateManagerGL::bindBufferBase(gl::BufferBinding target, size_t index, GLuint buffer)
 {
+    // Transform feedback buffer bindings are tracked in TransformFeedbackGL
+    ASSERT(target != gl::BufferBinding::TransformFeedback);
+
     ASSERT(index < mIndexedBuffers[target].size());
     auto &binding = mIndexedBuffers[target][index];
     if (binding.buffer != buffer || binding.offset != static_cast<size_t>(-1) ||
@@ -364,6 +389,7 @@
         binding.buffer = buffer;
         binding.offset = static_cast<size_t>(-1);
         binding.size   = static_cast<size_t>(-1);
+        mBuffers[target] = buffer;
         mFunctions->bindBufferBase(gl::ToGLenum(target), static_cast<GLuint>(index), buffer);
     }
 }
@@ -374,12 +400,16 @@
                                      size_t offset,
                                      size_t size)
 {
+    // Transform feedback buffer bindings are tracked in TransformFeedbackGL
+    ASSERT(target != gl::BufferBinding::TransformFeedback);
+
     auto &binding = mIndexedBuffers[target][index];
     if (binding.buffer != buffer || binding.offset != offset || binding.size != size)
     {
         binding.buffer = buffer;
         binding.offset = offset;
         binding.size   = size;
+        mBuffers[target] = buffer;
         mFunctions->bindBufferRange(gl::ToGLenum(target), static_cast<GLuint>(index), buffer,
                                     offset, size);
     }
@@ -2113,4 +2143,41 @@
         mCurrentTransformFeedback = nullptr;
     }
 }
+
+void StateManagerGL::validateState() const
+{
+    // Current program
+    ValidateStateHelper(mFunctions, mProgram, GL_CURRENT_PROGRAM, "mProgram", "GL_CURRENT_PROGRAM");
+
+    // Buffers
+    for (gl::BufferBinding bindingType : angle::AllEnums<gl::BufferBinding>())
+    {
+        // These binding types need compute support to be queried
+        if (bindingType == gl::BufferBinding::AtomicCounter ||
+            bindingType == gl::BufferBinding::DispatchIndirect ||
+            bindingType == gl::BufferBinding::ShaderStorage)
+        {
+            if (!nativegl::SupportsCompute(mFunctions))
+            {
+                continue;
+            }
+        }
+
+        // Transform feedback buffer bindings are tracked in TransformFeedbackGL
+        if (bindingType == gl::BufferBinding::TransformFeedback)
+        {
+            continue;
+        }
+
+        GLenum bindingTypeGL  = nativegl::GetBufferBindingQuery(bindingType);
+        std::string localName = "mBuffers[" + ToString(bindingType) + "]";
+        ValidateStateHelper(mFunctions, mBuffers[bindingType], bindingTypeGL, localName.c_str(),
+                            nativegl::GetBufferBindingString(bindingType).c_str());
+    }
+
+    // Vertex array object
+    ValidateStateHelper(mFunctions, mVAO, GL_VERTEX_ARRAY_BINDING, "mVAO",
+                        "GL_VERTEX_ARRAY_BINDING");
+}
+
 }  // namespace rx
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/StateManagerGL.h b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/StateManagerGL.h
index daeaa07..0bf40ed 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/StateManagerGL.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/StateManagerGL.h
@@ -184,6 +184,8 @@
     }
     GLuint getBufferID(gl::BufferBinding binding) const { return mBuffers[binding]; }
 
+    void validateState() const;
+
   private:
     void setTextureCubemapSeamlessEnabled(bool enabled);
 
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/SurfaceGL.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/SurfaceGL.cpp
index c35897e..c9b98ea 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/SurfaceGL.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/SurfaceGL.cpp
@@ -41,7 +41,7 @@
     ASSERT(framebufferGL->isDefault());
 
     BlitGL *blitter = GetBlitGL(context);
-    ANGLE_TRY(blitter->clearFramebuffer(framebufferGL));
+    ANGLE_TRY(blitter->clearFramebuffer(context, framebufferGL));
 
     return angle::Result::Continue;
 }
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/TextureGL.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/TextureGL.cpp
index b9d664e..5705110 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/TextureGL.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/TextureGL.cpp
@@ -68,13 +68,22 @@
     return format == GL_DEPTH_COMPONENT || format == GL_DEPTH_STENCIL;
 }
 
-LevelInfoGL GetLevelInfo(GLenum originalInternalFormat, GLenum destinationInternalFormat)
+bool GetEmulatedAlphaChannel(const angle::FeaturesGL &features, GLenum internalFormat)
+{
+    return features.rgbDXT1TexturesSampleZeroAlpha.enabled &&
+           internalFormat == GL_COMPRESSED_RGB_S3TC_DXT1_EXT;
+}
+
+LevelInfoGL GetLevelInfo(const angle::FeaturesGL &features,
+                         GLenum originalInternalFormat,
+                         GLenum destinationInternalFormat)
 {
     GLenum originalFormat    = gl::GetUnsizedFormat(originalInternalFormat);
     GLenum destinationFormat = gl::GetUnsizedFormat(destinationInternalFormat);
     return LevelInfoGL(originalFormat, destinationInternalFormat,
                        GetDepthStencilWorkaround(originalFormat),
-                       GetLUMAWorkaroundInfo(originalFormat, destinationFormat), false);
+                       GetLUMAWorkaroundInfo(originalFormat, destinationFormat),
+                       GetEmulatedAlphaChannel(features, originalFormat));
 }
 
 gl::Texture::DirtyBits GetLevelWorkaroundDirtyBits()
@@ -257,7 +266,7 @@
     }
 
     setLevelInfo(context, target, level, 1,
-                 GetLevelInfo(internalFormat, texImageFormat.internalFormat));
+                 GetLevelInfo(features, internalFormat, texImageFormat.internalFormat));
 
     return angle::Result::Continue;
 }
@@ -298,7 +307,7 @@
     size_t level             = static_cast<size_t>(index.getLevelIndex());
 
     ASSERT(getLevelInfo(target, level).lumaWorkaround.enabled ==
-           GetLevelInfo(format, texSubImageFormat.format).lumaWorkaround.enabled);
+           GetLevelInfo(features, format, texSubImageFormat.format).lumaWorkaround.enabled);
 
     stateManager->bindTexture(getType(), mTextureID);
     if (features.unpackOverlappingRowsSeparatelyUnpackBuffer.enabled && unpackBuffer &&
@@ -541,7 +550,8 @@
                                                      static_cast<GLsizei>(imageSize), pixels));
     }
 
-    LevelInfoGL levelInfo = GetLevelInfo(internalFormat, compressedTexImageFormat.internalFormat);
+    LevelInfoGL levelInfo =
+        GetLevelInfo(features, internalFormat, compressedTexImageFormat.internalFormat);
     ASSERT(!levelInfo.lumaWorkaround.enabled);
     setLevelInfo(context, target, level, 1, levelInfo);
 
@@ -586,8 +596,9 @@
                          static_cast<GLsizei>(imageSize), pixels));
     }
 
-    ASSERT(!getLevelInfo(target, level).lumaWorkaround.enabled &&
-           !GetLevelInfo(format, compressedTexSubImageFormat.format).lumaWorkaround.enabled);
+    ASSERT(
+        !getLevelInfo(target, level).lumaWorkaround.enabled &&
+        !GetLevelInfo(features, format, compressedTexSubImageFormat.format).lumaWorkaround.enabled);
 
     return angle::Result::Continue;
 }
@@ -676,7 +687,8 @@
             }
         }
 
-        LevelInfoGL levelInfo = GetLevelInfo(internalFormat, copyTexImageFormat.internalFormat);
+        LevelInfoGL levelInfo =
+            GetLevelInfo(features, internalFormat, copyTexImageFormat.internalFormat);
         gl::Offset destOffset(clippedArea.x - sourceArea.x, clippedArea.y - sourceArea.y, 0);
 
         if (levelInfo.lumaWorkaround.enabled)
@@ -867,8 +879,8 @@
         !destSRGB && sourceGL->getType() == gl::TextureType::_2D)
     {
         bool copySucceeded = false;
-        ANGLE_TRY(blitter->copyTexSubImage(sourceGL, sourceLevel, this, target, level, sourceArea,
-                                           destOffset, &copySucceeded));
+        ANGLE_TRY(blitter->copyTexSubImage(context, sourceGL, sourceLevel, this, target, level,
+                                           sourceArea, destOffset, &copySucceeded));
         if (copySucceeded)
         {
             return angle::Result::Continue;
@@ -1077,7 +1089,7 @@
     }
 
     setLevelInfo(context, type, 0, levels,
-                 GetLevelInfo(internalFormat, texStorageFormat.internalFormat));
+                 GetLevelInfo(features, internalFormat, texStorageFormat.internalFormat));
 
     return angle::Result::Continue;
 }
@@ -1098,7 +1110,7 @@
         nativegl::GetTexImageFormat(functions, features, internalFormat, format, type);
 
     setLevelInfo(context, target, level, 1,
-                 GetLevelInfo(internalFormat, texImageFormat.internalFormat));
+                 GetLevelInfo(features, internalFormat, texImageFormat.internalFormat));
     return angle::Result::Continue;
 }
 
@@ -1149,7 +1161,7 @@
     }
 
     setLevelInfo(context, type, 0, 1,
-                 GetLevelInfo(internalformat, texStorageFormat.internalFormat));
+                 GetLevelInfo(features, internalformat, texStorageFormat.internalFormat));
 
     return angle::Result::Continue;
 }
@@ -1191,7 +1203,7 @@
     }
 
     setLevelInfo(context, type, 0, levels,
-                 GetLevelInfo(internalFormat, texStorageFormat.internalFormat));
+                 GetLevelInfo(features, internalFormat, texStorageFormat.internalFormat));
 
     return angle::Result::Continue;
 }
@@ -1263,13 +1275,16 @@
                                            gl::TextureType type,
                                            egl::Image *image)
 {
+    const angle::FeaturesGL &features = GetFeaturesGL(context);
+
     ImageGL *imageGL = GetImplAs<ImageGL>(image);
 
     GLenum imageNativeInternalFormat = GL_NONE;
     ANGLE_TRY(imageGL->setTexture2D(context, type, this, &imageNativeInternalFormat));
 
-    setLevelInfo(context, type, 0, 1,
-                 GetLevelInfo(image->getFormat().info->internalFormat, imageNativeInternalFormat));
+    setLevelInfo(
+        context, type, 0, 1,
+        GetLevelInfo(features, image->getFormat().info->internalFormat, imageNativeInternalFormat));
 
     return angle::Result::Continue;
 }
@@ -1707,7 +1722,8 @@
 {
     ASSERT(levelCount > 0);
 
-    bool updateWorkarounds = levelInfo.depthStencilWorkaround || levelInfo.lumaWorkaround.enabled;
+    bool updateWorkarounds = levelInfo.depthStencilWorkaround || levelInfo.lumaWorkaround.enabled ||
+                             levelInfo.emulatedAlphaChannel;
 
     for (size_t i = level; i < level + levelCount; i++)
     {
@@ -1717,6 +1733,7 @@
 
         updateWorkarounds |= curLevelInfo.depthStencilWorkaround;
         updateWorkarounds |= curLevelInfo.lumaWorkaround.enabled;
+        updateWorkarounds |= curLevelInfo.emulatedAlphaChannel;
 
         curLevelInfo = levelInfo;
     }
@@ -1785,7 +1802,7 @@
         int levelDepth = mState.getImageDesc(imageIndex).size.depth;
 
         bool clearSucceeded = false;
-        ANGLE_TRY(blitter->clearRenderableTexture(this, nativeInternalFormat, levelDepth,
+        ANGLE_TRY(blitter->clearRenderableTexture(context, this, nativeInternalFormat, levelDepth,
                                                   imageIndex, &clearSucceeded));
         if (clearSucceeded)
         {
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/VertexArrayGL.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/VertexArrayGL.cpp
index 27c5af7..0f4345e 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/VertexArrayGL.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/VertexArrayGL.cpp
@@ -49,6 +49,41 @@
     return numViews * divisor;
 }
 
+static void ValidateStateHelperGetIntegerv(const FunctionsGL *functions,
+                                           const GLuint localValue,
+                                           const GLenum pname,
+                                           const char *localName,
+                                           const char *driverName)
+{
+    GLint queryValue;
+    functions->getIntegerv(pname, &queryValue);
+    if (localValue != static_cast<GLuint>(queryValue))
+    {
+        WARN() << localName << " (" << localValue << ") != " << driverName << " (" << queryValue
+               << ")";
+        // Re-add ASSERT: http://anglebug.com/3900
+        // ASSERT(false);
+    }
+}
+
+static void ValidateStateHelperGetVertexAttribiv(const FunctionsGL *functions,
+                                                 const GLint index,
+                                                 const GLuint localValue,
+                                                 const GLenum pname,
+                                                 const char *localName,
+                                                 const char *driverName)
+{
+    GLint queryValue;
+    functions->getVertexAttribiv(index, pname, &queryValue);
+    if (localValue != static_cast<GLuint>(queryValue))
+    {
+        WARN() << localName << "[" << index << "] (" << localValue << ") != " << driverName << "["
+               << index << "] (" << queryValue << ")";
+        // Re-add ASSERT: http://anglebug.com/3900
+        // ASSERT(false);
+    }
+}
+
 }  // anonymous namespace
 
 VertexArrayGL::VertexArrayGL(const VertexArrayState &state,
@@ -368,6 +403,16 @@
                                     static_cast<GLsizei>(destStride),
                                     static_cast<GLintptr>(vertexStartOffset));
 
+            // Update the state to track the streamed attribute
+            mAppliedAttributes[idx].format = attrib.format;
+
+            mAppliedAttributes[idx].relativeOffset = 0;
+            mAppliedAttributes[idx].bindingIndex   = static_cast<GLuint>(idx);
+
+            mAppliedBindings[idx].setStride(static_cast<GLsizei>(destStride));
+            mAppliedBindings[idx].setOffset(static_cast<GLintptr>(vertexStartOffset));
+            mAppliedBindings[idx].setBuffer(context, nullptr);
+
             curBufferOffset += destStride * streamedVertexCount;
         }
 
@@ -730,4 +775,100 @@
     }
 }
 
+void VertexArrayGL::validateState() const
+{
+    // Ensure this vao is currently bound
+    ValidateStateHelperGetIntegerv(mFunctions, mVertexArrayID, GL_VERTEX_ARRAY_BINDING,
+                                   "mVertexArrayID", "GL_VERTEX_ARRAY_BINDING");
+
+    // Element array buffer
+    if (mAppliedElementArrayBuffer.get() == nullptr)
+    {
+        ValidateStateHelperGetIntegerv(
+            mFunctions, mStreamingElementArrayBuffer, GL_ELEMENT_ARRAY_BUFFER_BINDING,
+            "mAppliedElementArrayBuffer", "GL_ELEMENT_ARRAY_BUFFER_BINDING");
+    }
+    else
+    {
+        const BufferGL *bufferGL = GetImplAs<BufferGL>(mAppliedElementArrayBuffer.get());
+        ValidateStateHelperGetIntegerv(
+            mFunctions, bufferGL->getBufferID(), GL_ELEMENT_ARRAY_BUFFER_BINDING,
+            "mAppliedElementArrayBuffer", "GL_ELEMENT_ARRAY_BUFFER_BINDING");
+    }
+
+    // ValidateStateHelperGetIntegerv but with > comparison instead of !=
+    GLint queryValue;
+    mFunctions->getIntegerv(GL_MAX_VERTEX_ATTRIBS, &queryValue);
+    if (mAppliedAttributes.size() > static_cast<GLuint>(queryValue))
+    {
+        WARN() << "mAppliedAttributes.size() (" << mAppliedAttributes.size()
+               << ") > GL_MAX_VERTEX_ATTRIBS (" << queryValue << ")";
+        // Re-add ASSERT: http://anglebug.com/3900
+        // ASSERT(false);
+    }
+
+    // Check each applied attribute/binding
+    for (GLuint index = 0; index < mAppliedAttributes.size(); index++)
+    {
+        VertexAttribute &attribute = mAppliedAttributes[index];
+        ASSERT(attribute.bindingIndex < mAppliedBindings.size());
+        VertexBinding &binding = mAppliedBindings[attribute.bindingIndex];
+
+        ValidateStateHelperGetVertexAttribiv(
+            mFunctions, index, attribute.enabled, GL_VERTEX_ATTRIB_ARRAY_ENABLED,
+            "mAppliedAttributes.enabled", "GL_VERTEX_ATTRIB_ARRAY_ENABLED");
+
+        if (attribute.enabled)
+        {
+            // Applied attributes
+            ASSERT(attribute.format);
+            ValidateStateHelperGetVertexAttribiv(
+                mFunctions, index, ToGLenum(attribute.format->vertexAttribType),
+                GL_VERTEX_ATTRIB_ARRAY_TYPE, "mAppliedAttributes.format->vertexAttribType",
+                "GL_VERTEX_ATTRIB_ARRAY_TYPE");
+            ValidateStateHelperGetVertexAttribiv(
+                mFunctions, index, attribute.format->channelCount, GL_VERTEX_ATTRIB_ARRAY_SIZE,
+                "attribute.format->channelCount", "GL_VERTEX_ATTRIB_ARRAY_SIZE");
+            ValidateStateHelperGetVertexAttribiv(
+                mFunctions, index, attribute.format->isNorm(), GL_VERTEX_ATTRIB_ARRAY_NORMALIZED,
+                "attribute.format->isNorm()", "GL_VERTEX_ATTRIB_ARRAY_NORMALIZED");
+            ValidateStateHelperGetVertexAttribiv(
+                mFunctions, index, attribute.format->isPureInt(), GL_VERTEX_ATTRIB_ARRAY_INTEGER,
+                "attribute.format->isPureInt()", "GL_VERTEX_ATTRIB_ARRAY_INTEGER");
+            if (supportVertexAttribBinding())
+            {
+                ValidateStateHelperGetVertexAttribiv(
+                    mFunctions, index, attribute.relativeOffset, GL_VERTEX_ATTRIB_RELATIVE_OFFSET,
+                    "attribute.relativeOffset", "GL_VERTEX_ATTRIB_RELATIVE_OFFSET");
+                ValidateStateHelperGetVertexAttribiv(
+                    mFunctions, index, attribute.bindingIndex, GL_VERTEX_ATTRIB_BINDING,
+                    "attribute.bindingIndex", "GL_VERTEX_ATTRIB_BINDING");
+            }
+
+            // Applied bindings
+            if (binding.getBuffer().get() == nullptr)
+            {
+                ValidateStateHelperGetVertexAttribiv(
+                    mFunctions, index, mStreamingArrayBuffer, GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING,
+                    "mAppliedBindings.bufferID", "GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING");
+            }
+            else
+            {
+                const BufferGL *arrayBufferGL = GetImplAs<BufferGL>(binding.getBuffer().get());
+                ASSERT(arrayBufferGL);
+                ValidateStateHelperGetVertexAttribiv(
+                    mFunctions, index, arrayBufferGL->getBufferID(),
+                    GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, "mAppliedBindings.bufferID",
+                    "GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING");
+                ValidateStateHelperGetVertexAttribiv(
+                    mFunctions, index, binding.getStride(), GL_VERTEX_ATTRIB_ARRAY_STRIDE,
+                    "binding.getStride()", "GL_VERTEX_ATTRIB_ARRAY_STRIDE");
+                ValidateStateHelperGetVertexAttribiv(
+                    mFunctions, index, binding.getDivisor(), GL_VERTEX_ATTRIB_ARRAY_DIVISOR,
+                    "binding.getDivisor()", "GL_VERTEX_ATTRIB_ARRAY_DIVISOR");
+            }
+        }
+    }
+}
+
 }  // namespace rx
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/VertexArrayGL.h b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/VertexArrayGL.h
index 708a3fc..a2cd804 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/VertexArrayGL.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/VertexArrayGL.h
@@ -56,6 +56,8 @@
     void applyNumViewsToDivisor(int numViews);
     void applyActiveAttribLocationsMask(const gl::AttributesMask &activeMask);
 
+    void validateState() const;
+
   private:
     angle::Result syncDrawState(const gl::Context *context,
                                 const gl::AttributesMask &activeAttributesMask,
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/cgl/DeviceCGL.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/cgl/DeviceCGL.cpp
new file mode 100644
index 0000000..1cddd29
--- /dev/null
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/cgl/DeviceCGL.cpp
@@ -0,0 +1,59 @@
+//
+// 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.
+//
+
+// DeviceCGL.cpp: CGL implementation of egl::Device
+
+#if __has_include(<Cocoa/Cocoa.h>)
+
+#    include "libANGLE/renderer/gl/cgl/DeviceCGL.h"
+
+#    include <EGL/eglext.h>
+#    include "libANGLE/renderer/gl/cgl/DisplayCGL.h"
+
+namespace rx
+{
+
+DeviceCGL::DeviceCGL() {}
+
+DeviceCGL::~DeviceCGL() {}
+
+egl::Error DeviceCGL::initialize()
+{
+    return egl::NoError();
+}
+
+egl::Error DeviceCGL::getAttribute(const egl::Display *display, EGLint attribute, void **outValue)
+{
+    DisplayCGL *displayImpl = GetImplAs<DisplayCGL>(display);
+
+    switch (attribute)
+    {
+        case EGL_CGL_CONTEXT_ANGLE:
+            *outValue = displayImpl->getCGLContext();
+            break;
+        case EGL_CGL_PIXEL_FORMAT_ANGLE:
+            *outValue = displayImpl->getCGLPixelFormat();
+            break;
+        default:
+            return egl::EglBadAttribute();
+    }
+
+    return egl::NoError();
+}
+
+EGLint DeviceCGL::getType()
+{
+    return 0;
+}
+
+void DeviceCGL::generateExtensions(egl::DeviceExtensions *outExtensions) const
+{
+    outExtensions->deviceCGL = true;
+}
+
+}  // namespace rx
+
+#endif  // __has_include(<Cocoa/Cocoa.h>)
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/cgl/DeviceCGL.h b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/cgl/DeviceCGL.h
new file mode 100644
index 0000000..3f7e1c0
--- /dev/null
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/cgl/DeviceCGL.h
@@ -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.
+//
+
+// DeviceCGL.h: CGL implementation of egl::Device
+
+#ifndef LIBANGLE_RENDERER_GL_CGL_DEVICECGL_H_
+#define LIBANGLE_RENDERER_GL_CGL_DEVICECGL_H_
+
+#include "libANGLE/Device.h"
+#include "libANGLE/renderer/DeviceImpl.h"
+
+namespace rx
+{
+class DeviceCGL : public DeviceImpl
+{
+  public:
+    DeviceCGL();
+    ~DeviceCGL() override;
+
+    egl::Error initialize() override;
+    egl::Error getAttribute(const egl::Display *display,
+                            EGLint attribute,
+                            void **outValue) override;
+    EGLint getType() override;
+    void generateExtensions(egl::DeviceExtensions *outExtensions) const override;
+};
+
+}  // namespace rx
+
+#endif  // LIBANGLE_RENDERER_GL_CGL_DEVICECGL_H_
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/cgl/DisplayCGL.h b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/cgl/DisplayCGL.h
index 459d168..f149f9c4 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/cgl/DisplayCGL.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/cgl/DisplayCGL.h
@@ -71,6 +71,7 @@
     gl::Version getMaxSupportedESVersion() const override;
 
     CGLContextObj getCGLContext() const;
+    CGLPixelFormatObj getCGLPixelFormat() const;
 
     WorkerContext *createWorkerContext(std::string *infoLog);
 
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/cgl/DisplayCGL.mm b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/cgl/DisplayCGL.mm
index 42dae45..7ba0f8c 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/cgl/DisplayCGL.mm
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/cgl/DisplayCGL.mm
@@ -18,6 +18,7 @@
 #    include "gpu_info_util/SystemInfo.h"
 #    include "libANGLE/Display.h"
 #    include "libANGLE/renderer/gl/cgl/ContextCGL.h"
+#    include "libANGLE/renderer/gl/cgl/DeviceCGL.h"
 #    include "libANGLE/renderer/gl/cgl/IOSurfaceSurfaceCGL.h"
 #    include "libANGLE/renderer/gl/cgl/PbufferSurfaceCGL.h"
 #    include "libANGLE/renderer/gl/cgl/RendererCGL.h"
@@ -209,8 +210,7 @@
 
 DeviceImpl *DisplayCGL::createDevice()
 {
-    UNIMPLEMENTED();
-    return nullptr;
+    return new DeviceCGL();
 }
 
 egl::ConfigSet DisplayCGL::generateConfigs()
@@ -323,10 +323,16 @@
     return mContext;
 }
 
+CGLPixelFormatObj DisplayCGL::getCGLPixelFormat() const
+{
+    return mPixelFormat;
+}
+
 void DisplayCGL::generateExtensions(egl::DisplayExtensions *outExtensions) const
 {
     outExtensions->iosurfaceClientBuffer = true;
     outExtensions->surfacelessContext    = true;
+    outExtensions->deviceQuery           = true;
 
     // Contexts are virtualized so textures can be shared globally
     outExtensions->displayTextureShareGroup = true;
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/cgl/IOSurfaceSurfaceCGL.mm b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/cgl/IOSurfaceSurfaceCGL.mm
index 418b238..33a0a3f 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/cgl/IOSurfaceSurfaceCGL.mm
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/cgl/IOSurfaceSurfaceCGL.mm
@@ -319,7 +319,8 @@
     }
 
     BlitGL *blitter = GetBlitGL(context);
-    ANGLE_TRY(blitter->clearRenderableTextureAlphaToOne(texture, gl::TextureTarget::Rectangle, 0));
+    ANGLE_TRY(blitter->clearRenderableTextureAlphaToOne(context, texture,
+                                                        gl::TextureTarget::Rectangle, 0));
     mAlphaInitialized = true;
     return angle::Result::Continue;
 }
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/egl/DisplayEGL.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/egl/DisplayEGL.cpp
index a39df6f..239fcc1 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/egl/DisplayEGL.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/egl/DisplayEGL.cpp
@@ -151,6 +151,8 @@
 
     outExtensions->nativeFenceSyncANDROID = mEGL->hasExtension("EGL_ANDROID_native_fence_sync");
 
+    outExtensions->noConfigContext = mEGL->hasExtension("EGL_KHR_no_config_context");
+
     DisplayGL::generateExtensions(outExtensions);
 }
 
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/glx/DisplayGLX.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/glx/DisplayGLX.cpp
index 0d44273..a00cc46 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/glx/DisplayGLX.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/glx/DisplayGLX.cpp
@@ -380,17 +380,15 @@
                                    egl::Surface *readSurface,
                                    gl::Context *context)
 {
-    if (drawSurface)
+    glx::Drawable drawable =
+        (drawSurface ? GetImplAs<SurfaceGLX>(drawSurface)->getDrawable() : mDummyPbuffer);
+    if (drawable != mCurrentDrawable)
     {
-        glx::Drawable drawable = GetImplAs<SurfaceGLX>(drawSurface)->getDrawable();
-        if (drawable != mCurrentDrawable)
+        if (mGLX.makeCurrent(drawable, mContext) != True)
         {
-            if (mGLX.makeCurrent(drawable, mContext) != True)
-            {
-                return egl::EglContextLost() << "Failed to make the GLX context current";
-            }
-            mCurrentDrawable = drawable;
+            return egl::EglContextLost() << "Failed to make the GLX context current";
         }
+        mCurrentDrawable = drawable;
     }
 
     return DisplayGL::makeCurrent(drawSurface, readSurface, context);
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/glx/WindowSurfaceGLX.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/glx/WindowSurfaceGLX.cpp
index c9a2963..ff39ee1 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/glx/WindowSurfaceGLX.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/glx/WindowSurfaceGLX.cpp
@@ -117,6 +117,7 @@
     mGLXWindow = mGLX.createWindow(mFBConfig, mWindow, nullptr);
 
     XMapWindow(mDisplay, mWindow);
+    XSelectInput(mDisplay, mWindow, ExposureMask);  // For XExposeEvent forwarding from child window
     XFlush(mDisplay);
 
     XFree(visualInfo);
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/renderergl_utils.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/renderergl_utils.cpp
index d516750..f6da105 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/renderergl_utils.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/renderergl_utils.cpp
@@ -34,6 +34,7 @@
 
 namespace rx
 {
+
 VendorID GetVendorID(const FunctionsGL *functions)
 {
     std::string nativeVendorString(reinterpret_cast<const char *>(functions->getString(GL_VENDOR)));
@@ -963,13 +964,7 @@
         LimitVersion(maxSupportedESVersion, gl::Version(3, 0));
     }
 
-    // OpenGL 4.2 is required for GL_ARB_compute_shader, some platform drivers have the extension,
-    // but their maximum supported GL versions are less than 4.2. Explicitly limit the minimum
-    // GL version to 4.2.
-    if (functions->isAtLeastGL(gl::Version(4, 3)) || functions->isAtLeastGLES(gl::Version(3, 1)) ||
-        (functions->isAtLeastGL(gl::Version(4, 2)) &&
-         functions->hasGLExtension("GL_ARB_compute_shader") &&
-         functions->hasGLExtension("GL_ARB_shader_storage_buffer_object")))
+    if (nativegl::SupportsCompute(functions))
     {
         for (GLuint index = 0u; index < 3u; ++index)
         {
@@ -1409,7 +1404,7 @@
         functions->hasGLESExtension("GL_OES_draw_elements_base_vertex") ||
         functions->hasGLESExtension("GL_EXT_draw_elements_base_vertex");
 
-    // GL_CHROMIUM_compressed_texture_etc
+    // ANGLE_compressed_texture_etc
     // Expose this extension only when we support the formats or we're running on top of a native
     // ES driver.
     extensions->compressedTextureETC = functions->standard == STANDARD_GL_ES &&
@@ -1446,130 +1441,158 @@
 {
     VendorID vendor = GetVendorID(functions);
     uint32_t device = GetDeviceID(functions);
+    bool isAMD      = IsAMD(vendor);
+    bool isIntel    = IsIntel(vendor);
+    bool isNvidia   = IsNvidia(vendor);
+    bool isQualcomm = IsQualcomm(vendor);
 
-    // Don't use 1-bit alpha formats on desktop GL with AMD or Intel drivers.
-    features->avoid1BitAlphaTextureFormats.enabled =
-        functions->standard == STANDARD_GL_DESKTOP && (IsAMD(vendor));
+    // Don't use 1-bit alpha formats on desktop GL with AMD drivers.
+    ANGLE_FEATURE_CONDITION(features, avoid1BitAlphaTextureFormats,
+                            functions->standard == STANDARD_GL_DESKTOP && isAMD)
 
-    features->rgba4IsNotSupportedForColorRendering.enabled =
-        functions->standard == STANDARD_GL_DESKTOP && IsIntel(vendor);
+    ANGLE_FEATURE_CONDITION(features, rgba4IsNotSupportedForColorRendering,
+                            functions->standard == STANDARD_GL_DESKTOP && isIntel)
 
-    features->emulateAbsIntFunction.enabled = IsIntel(vendor);
+    ANGLE_FEATURE_CONDITION(features, emulateAbsIntFunction, isIntel)
 
-    features->addAndTrueToLoopCondition.enabled = IsIntel(vendor);
+    ANGLE_FEATURE_CONDITION(features, addAndTrueToLoopCondition, isIntel)
 
-    features->emulateIsnanFloat.enabled = IsIntel(vendor);
+    ANGLE_FEATURE_CONDITION(features, emulateIsnanFloat, isIntel)
 
-    features->doesSRGBClearsOnLinearFramebufferAttachments.enabled =
-        functions->standard == STANDARD_GL_DESKTOP && (IsIntel(vendor) || IsAMD(vendor));
+    ANGLE_FEATURE_CONDITION(features, doesSRGBClearsOnLinearFramebufferAttachments,
+                            functions->standard == STANDARD_GL_DESKTOP && (isIntel || isAMD))
 
-    features->emulateMaxVertexAttribStride.enabled =
-        IsLinux() && functions->standard == STANDARD_GL_DESKTOP && IsAMD(vendor);
-    features->useUnusedBlocksWithStandardOrSharedLayout.enabled = IsLinux() && IsAMD(vendor);
+    ANGLE_FEATURE_CONDITION(features, emulateMaxVertexAttribStride,
+                            IsLinux() && functions->standard == STANDARD_GL_DESKTOP && isAMD)
+    ANGLE_FEATURE_CONDITION(
+        features, useUnusedBlocksWithStandardOrSharedLayout,
+        (IsApple() && functions->standard == STANDARD_GL_DESKTOP) || (IsLinux() && isAMD))
 
-    features->doWhileGLSLCausesGPUHang.enabled                  = IsApple();
-    features->useUnusedBlocksWithStandardOrSharedLayout.enabled = IsApple();
-    features->rewriteFloatUnaryMinusOperator.enabled            = IsApple() && IsIntel(vendor);
+    ANGLE_FEATURE_CONDITION(features, doWhileGLSLCausesGPUHang, IsApple())
+    ANGLE_FEATURE_CONDITION(features, rewriteFloatUnaryMinusOperator, IsApple() && isIntel)
 
-    features->addBaseVertexToVertexID.enabled = IsApple() && IsAMD(vendor);
+    ANGLE_FEATURE_CONDITION(features, addBaseVertexToVertexID, IsApple() && isAMD)
 
     // Triggers a bug on Marshmallow Adreno (4xx?) driver.
     // http://anglebug.com/2046
-    features->dontInitializeUninitializedLocals.enabled = IsAndroid() && IsQualcomm(vendor);
+    ANGLE_FEATURE_CONDITION(features, dontInitializeUninitializedLocals, IsAndroid() && isQualcomm)
 
-    features->finishDoesNotCauseQueriesToBeAvailable.enabled =
-        functions->standard == STANDARD_GL_DESKTOP && IsNvidia(vendor);
+    ANGLE_FEATURE_CONDITION(features, finishDoesNotCauseQueriesToBeAvailable,
+                            functions->standard == STANDARD_GL_DESKTOP && isNvidia)
 
     // TODO(cwallez): Disable this workaround for MacOSX versions 10.9 or later.
-    features->alwaysCallUseProgramAfterLink.enabled = true;
+    ANGLE_FEATURE_CONDITION(features, alwaysCallUseProgramAfterLink, true)
 
-    features->unpackOverlappingRowsSeparatelyUnpackBuffer.enabled = IsNvidia(vendor);
-    features->packOverlappingRowsSeparatelyPackBuffer.enabled     = IsNvidia(vendor);
+    ANGLE_FEATURE_CONDITION(features, unpackOverlappingRowsSeparatelyUnpackBuffer, isNvidia)
+    ANGLE_FEATURE_CONDITION(features, packOverlappingRowsSeparatelyPackBuffer, isNvidia)
 
-    features->initializeCurrentVertexAttributes.enabled = IsNvidia(vendor);
+    ANGLE_FEATURE_CONDITION(features, initializeCurrentVertexAttributes, isNvidia)
 
-    features->unpackLastRowSeparatelyForPaddingInclusion.enabled = IsApple() || IsNvidia(vendor);
-    features->packLastRowSeparatelyForPaddingInclusion.enabled   = IsApple() || IsNvidia(vendor);
+    ANGLE_FEATURE_CONDITION(features, unpackLastRowSeparatelyForPaddingInclusion,
+                            IsApple() || isNvidia)
+    ANGLE_FEATURE_CONDITION(features, packLastRowSeparatelyForPaddingInclusion,
+                            IsApple() || isNvidia)
 
-    features->removeInvariantAndCentroidForESSL3.enabled =
-        functions->isAtMostGL(gl::Version(4, 1)) ||
-        (functions->standard == STANDARD_GL_DESKTOP && IsAMD(vendor));
+    ANGLE_FEATURE_CONDITION(features, removeInvariantAndCentroidForESSL3,
+                            functions->isAtMostGL(gl::Version(4, 1)) ||
+                                (functions->standard == STANDARD_GL_DESKTOP && isAMD))
 
     // TODO(oetuaho): Make this specific to the affected driver versions. Versions that came after
     // 364 are known to be affected, at least up to 375.
-    features->emulateAtan2Float.enabled = IsNvidia(vendor);
+    ANGLE_FEATURE_CONDITION(features, emulateAtan2Float, isNvidia)
 
-    features->reapplyUBOBindingsAfterUsingBinaryProgram.enabled = IsAMD(vendor);
+    ANGLE_FEATURE_CONDITION(features, reapplyUBOBindingsAfterUsingBinaryProgram,
+                            isAMD || IsAndroid())
 
-    features->rewriteVectorScalarArithmetic.enabled = IsNvidia(vendor);
+    ANGLE_FEATURE_CONDITION(features, rewriteVectorScalarArithmetic, isNvidia)
 
     // TODO(oetuaho): Make this specific to the affected driver versions. Versions at least up to
     // 390 are known to be affected. Versions after that are expected not to be affected.
-    features->clampFragDepth.enabled = IsNvidia(vendor);
+    ANGLE_FEATURE_CONDITION(features, clampFragDepth, isNvidia)
 
     // TODO(oetuaho): Make this specific to the affected driver versions. Versions since 397.31 are
     // not affected.
-    features->rewriteRepeatedAssignToSwizzled.enabled = IsNvidia(vendor);
+    ANGLE_FEATURE_CONDITION(features, rewriteRepeatedAssignToSwizzled, isNvidia)
 
     // TODO(jmadill): Narrow workaround range for specific devices.
-    features->reapplyUBOBindingsAfterUsingBinaryProgram.enabled = IsAndroid();
 
-    features->clampPointSize.enabled = IsAndroid() || IsNvidia(vendor);
+    ANGLE_FEATURE_CONDITION(features, clampPointSize, IsAndroid() || isNvidia)
 
-    features->dontUseLoopsToInitializeVariables.enabled = IsAndroid() && !IsNvidia(vendor);
+    ANGLE_FEATURE_CONDITION(features, dontUseLoopsToInitializeVariables, IsAndroid() && !isNvidia)
 
-    features->disableBlendFuncExtended.enabled = IsAMD(vendor) || IsIntel(vendor);
+    ANGLE_FEATURE_CONDITION(features, disableBlendFuncExtended, isAMD || isIntel)
 
-    features->unsizedsRGBReadPixelsDoesntTransform.enabled = IsAndroid() && IsQualcomm(vendor);
+    ANGLE_FEATURE_CONDITION(features, unsizedsRGBReadPixelsDoesntTransform,
+                            IsAndroid() && isQualcomm)
 
-    features->queryCounterBitsGeneratesErrors.enabled = IsNexus5X(vendor, device);
+    ANGLE_FEATURE_CONDITION(features, queryCounterBitsGeneratesErrors, IsNexus5X(vendor, device))
 
-    features->dontRelinkProgramsInParallel.enabled =
-        IsAndroid() || (IsWindows() && IsIntel(vendor));
+    ANGLE_FEATURE_CONDITION(features, dontRelinkProgramsInParallel,
+                            IsAndroid() || (IsWindows() && isIntel))
 
     // TODO(jie.a.chen@intel.com): Clean up the bugs.
     // anglebug.com/3031
     // crbug.com/922936
-    features->disableWorkerContexts.enabled =
-        (IsWindows() && (IsIntel(vendor) || IsAMD(vendor))) || (IsLinux() && IsNvidia(vendor));
+    ANGLE_FEATURE_CONDITION(features, disableWorkerContexts,
+                            (IsWindows() && (isIntel || isAMD)) || (IsLinux() && isNvidia))
 
-    features->limitMaxTextureSizeTo4096.enabled = IsAndroid() || (IsIntel(vendor) && IsLinux());
-    features->limitMaxMSAASamplesTo4.enabled    = IsAndroid();
-    features->limitMax3dArrayTextureSizeTo1024.enabled = IsIntel(vendor) && IsLinux();
+    ANGLE_FEATURE_CONDITION(features, limitMaxTextureSizeTo4096,
+                            IsAndroid() || (isIntel && IsLinux()))
+    ANGLE_FEATURE_CONDITION(features, limitMaxMSAASamplesTo4, IsAndroid())
+    ANGLE_FEATURE_CONDITION(features, limitMax3dArrayTextureSizeTo1024, isIntel && IsLinux())
 
-    features->allowClearForRobustResourceInit.enabled = IsApple();
+    ANGLE_FEATURE_CONDITION(features, allowClearForRobustResourceInit, IsApple())
 
     // The WebGL conformance/uniforms/out-of-bounds-uniform-array-access test has been seen to fail
     // on AMD and Android devices.
-    features->clampArrayAccess.enabled = IsAndroid() || IsAMD(vendor);
+    ANGLE_FEATURE_CONDITION(features, clampArrayAccess, IsAndroid() || isAMD)
 
-    features->resetTexImage2DBaseLevel.enabled =
-        IsApple() && IsIntel(vendor) && GetMacOSVersion() >= OSVersion(10, 12, 4);
+    ANGLE_FEATURE_CONDITION(features, resetTexImage2DBaseLevel,
+                            IsApple() && isIntel && GetMacOSVersion() >= OSVersion(10, 12, 4))
 
-    features->clearToZeroOrOneBroken.enabled =
-        IsApple() && IsIntel(vendor) && GetMacOSVersion() < OSVersion(10, 12, 6);
+    ANGLE_FEATURE_CONDITION(features, clearToZeroOrOneBroken,
+                            IsApple() && isIntel && GetMacOSVersion() < OSVersion(10, 12, 6))
 
-    features->adjustSrcDstRegionBlitFramebuffer.enabled =
-        IsLinux() || (IsAndroid() && IsNvidia(vendor)) || (IsWindows() && IsNvidia(vendor));
+    ANGLE_FEATURE_CONDITION(features, adjustSrcDstRegionBlitFramebuffer,
+                            IsLinux() || (IsAndroid() && isNvidia) || (IsWindows() && isNvidia))
 
-    features->clipSrcRegionBlitFramebuffer.enabled = IsApple();
+    ANGLE_FEATURE_CONDITION(features, clipSrcRegionBlitFramebuffer, IsApple())
 
-    features->resettingTexturesGeneratesErrors.enabled =
-        IsApple() || (IsWindows() && IsAMD(device));
+    ANGLE_FEATURE_CONDITION(features, resettingTexturesGeneratesErrors,
+                            IsApple() || (IsWindows() && isAMD))
+
+    ANGLE_FEATURE_CONDITION(features, rgbDXT1TexturesSampleZeroAlpha, IsApple())
+
+    ANGLE_FEATURE_CONDITION(features, unfoldShortCircuits, IsApple())
 }
 
 void InitializeFrontendFeatures(const FunctionsGL *functions, angle::FrontendFeatures *features)
 {
     VendorID vendor = GetVendorID(functions);
+    bool isIntel    = IsIntel(vendor);
+    bool isQualcomm = IsQualcomm(vendor);
 
-    features->disableProgramCachingForTransformFeedback.enabled = IsAndroid() && IsQualcomm(vendor);
-    features->syncFramebufferBindingsOnTexImage.enabled         = IsWindows() && IsIntel(vendor);
+    ANGLE_FEATURE_CONDITION(features, disableProgramCachingForTransformFeedback,
+                            IsAndroid() && isQualcomm)
+    ANGLE_FEATURE_CONDITION(features, syncFramebufferBindingsOnTexImage, IsWindows() && isIntel)
 }
 
 }  // namespace nativegl_gl
 
 namespace nativegl
 {
+bool SupportsCompute(const FunctionsGL *functions)
+{
+    // OpenGL 4.2 is required for GL_ARB_compute_shader, some platform drivers have the extension,
+    // but their maximum supported GL versions are less than 4.2. Explicitly limit the minimum
+    // GL version to 4.2.
+    return (functions->isAtLeastGL(gl::Version(4, 3)) ||
+            functions->isAtLeastGLES(gl::Version(3, 1)) ||
+            (functions->isAtLeastGL(gl::Version(4, 2)) &&
+             functions->hasGLExtension("GL_ARB_compute_shader") &&
+             functions->hasGLExtension("GL_ARB_shader_storage_buffer_object")));
+}
+
 bool SupportsFenceSync(const FunctionsGL *functions)
 {
     return functions->isAtLeastGL(gl::Version(3, 2)) || functions->hasGLExtension("GL_ARB_sync") ||
@@ -1667,6 +1690,47 @@
     }
 }
 
+GLenum GetBufferBindingQuery(gl::BufferBinding bufferBinding)
+{
+    switch (bufferBinding)
+    {
+        case gl::BufferBinding::Array:
+            return GL_ARRAY_BUFFER_BINDING;
+        case gl::BufferBinding::AtomicCounter:
+            return GL_ATOMIC_COUNTER_BUFFER_BINDING;
+        case gl::BufferBinding::CopyRead:
+            return GL_COPY_READ_BUFFER_BINDING;
+        case gl::BufferBinding::CopyWrite:
+            return GL_COPY_WRITE_BUFFER_BINDING;
+        case gl::BufferBinding::DispatchIndirect:
+            return GL_DISPATCH_INDIRECT_BUFFER_BINDING;
+        case gl::BufferBinding::DrawIndirect:
+            return GL_DRAW_INDIRECT_BUFFER_BINDING;
+        case gl::BufferBinding::ElementArray:
+            return GL_ELEMENT_ARRAY_BUFFER_BINDING;
+        case gl::BufferBinding::PixelPack:
+            return GL_PIXEL_PACK_BUFFER_BINDING;
+        case gl::BufferBinding::PixelUnpack:
+            return GL_PIXEL_UNPACK_BUFFER_BINDING;
+        case gl::BufferBinding::ShaderStorage:
+            return GL_SHADER_STORAGE_BUFFER_BINDING;
+        case gl::BufferBinding::TransformFeedback:
+            return GL_TRANSFORM_FEEDBACK_BUFFER_BINDING;
+        case gl::BufferBinding::Uniform:
+            return GL_UNIFORM_BUFFER_BINDING;
+        default:
+            UNREACHABLE();
+            return 0;
+    }
+}
+
+std::string GetBufferBindingString(gl::BufferBinding bufferBinding)
+{
+    std::ostringstream os;
+    os << bufferBinding << "_BINDING";
+    return os.str();
+}
+
 }  // namespace nativegl
 
 const FunctionsGL *GetFunctionsGL(const gl::Context *context)
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/renderergl_utils.h b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/renderergl_utils.h
index 202b85d..1d0378f 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/renderergl_utils.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/renderergl_utils.h
@@ -96,6 +96,7 @@
 
 namespace nativegl
 {
+bool SupportsCompute(const FunctionsGL *functions);
 bool SupportsFenceSync(const FunctionsGL *functions);
 bool SupportsOcclusionQueries(const FunctionsGL *functions);
 bool SupportsNativeRendering(const FunctionsGL *functions,
@@ -105,6 +106,8 @@
 bool UseTexImage2D(gl::TextureType textureType);
 bool UseTexImage3D(gl::TextureType textureType);
 GLenum GetTextureBindingQuery(gl::TextureType textureType);
+GLenum GetBufferBindingQuery(gl::BufferBinding bufferBinding);
+std::string GetBufferBindingString(gl::BufferBinding bufferBinding);
 }  // namespace nativegl
 
 bool CanMapBufferForRead(const FunctionsGL *functions);
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/load_functions_data.json b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/load_functions_data.json
index 404de2b..815cfc8 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/load_functions_data.json
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/load_functions_data.json
@@ -54,6 +54,9 @@
     }
   },
   "GL_ALPHA32F_EXT": {
+    "R32_FLOAT": {
+      "GL_FLOAT": "LoadToNative<GLfloat, 1>"
+    },
     "NONE": {
       "GL_FLOAT": "LoadA32FToRGBA32F"
     }
@@ -93,6 +96,9 @@
     }
   },
   "GL_LUMINANCE32F_EXT": {
+    "R32_FLOAT": {
+      "GL_FLOAT": "LoadToNative<GLfloat, 1>"
+    },
     "NONE": {
       "GL_FLOAT": "LoadL32FToRGBA32F"
     }
@@ -529,6 +535,10 @@
     }
   },
   "GL_LUMINANCE_ALPHA16F_EXT": {
+    "R16G16_FLOAT": {
+      "GL_HALF_FLOAT": "LoadToNative<GLhalf, 2>",
+      "GL_HALF_FLOAT_OES": "LoadToNative<GLhalf, 2>"
+    },
     "NONE": {
       "GL_HALF_FLOAT": "LoadLA16FToRGBA16F",
       "GL_HALF_FLOAT_OES": "LoadLA16FToRGBA16F"
@@ -613,6 +623,9 @@
     }
   },
   "GL_LUMINANCE_ALPHA32F_EXT": {
+    "R32G32_FLOAT": {
+      "GL_FLOAT": "LoadToNative<GLfloat, 2>"
+    },
     "NONE": {
       "GL_FLOAT": "LoadLA32FToRGBA32F"
     }
@@ -630,7 +643,8 @@
       "GL_UNSIGNED_INT": "LoadR32ToR24G8"
     },
     "D32_FLOAT_S8X24_UINT": {
-      "GL_UNSIGNED_INT_24_8": "LoadD24S8ToD32FS8X24"
+      "GL_UNSIGNED_INT_24_8": "LoadD24S8ToD32FS8X24",
+      "GL_UNSIGNED_INT": "LoadD32ToD32FX32"
     }
   },
   "GL_R32I": {
@@ -670,6 +684,10 @@
     }
   },
   "GL_LUMINANCE16F_EXT": {
+    "R16_FLOAT": {
+      "GL_HALF_FLOAT": "LoadToNative<GLhalf, 1>",
+      "GL_HALF_FLOAT_OES": "LoadToNative<GLhalf, 1>"
+    },
     "NONE": {
       "GL_HALF_FLOAT": "LoadL16FToRGBA16F",
       "GL_HALF_FLOAT_OES": "LoadL16FToRGBA16F"
@@ -696,6 +714,10 @@
     }
   },
   "GL_ALPHA16F_EXT": {
+    "R16_FLOAT": {
+      "GL_HALF_FLOAT": "LoadToNative<GLhalf, 1>",
+      "GL_HALF_FLOAT_OES": "LoadToNative<GLhalf, 1>"
+    },
     "NONE": {
       "GL_HALF_FLOAT": "LoadA16FToRGBA16F",
       "GL_HALF_FLOAT_OES": "LoadA16FToRGBA16F"
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/load_functions_table_autogen.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/load_functions_table_autogen.cpp
index e6e8be3..796ab68 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/load_functions_table_autogen.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/load_functions_table_autogen.cpp
@@ -112,6 +112,20 @@
     }
 }
 
+LoadImageFunctionInfo ALPHA16F_EXT_to_R16_FLOAT(GLenum type)
+{
+    switch (type)
+    {
+        case GL_HALF_FLOAT:
+            return LoadImageFunctionInfo(LoadToNative<GLhalf, 1>, false);
+        case GL_HALF_FLOAT_OES:
+            return LoadImageFunctionInfo(LoadToNative<GLhalf, 1>, false);
+        default:
+            UNREACHABLE();
+            return LoadImageFunctionInfo(UnreachableLoadFunction, true);
+    }
+}
+
 LoadImageFunctionInfo ALPHA16F_EXT_to_default(GLenum type)
 {
     switch (type)
@@ -126,6 +140,18 @@
     }
 }
 
+LoadImageFunctionInfo ALPHA32F_EXT_to_R32_FLOAT(GLenum type)
+{
+    switch (type)
+    {
+        case GL_FLOAT:
+            return LoadImageFunctionInfo(LoadToNative<GLfloat, 1>, false);
+        default:
+            UNREACHABLE();
+            return LoadImageFunctionInfo(UnreachableLoadFunction, true);
+    }
+}
+
 LoadImageFunctionInfo ALPHA32F_EXT_to_default(GLenum type)
 {
     switch (type)
@@ -1416,6 +1442,8 @@
 {
     switch (type)
     {
+        case GL_UNSIGNED_INT:
+            return LoadImageFunctionInfo(LoadD32ToD32FX32, true);
         case GL_UNSIGNED_INT_24_8:
             return LoadImageFunctionInfo(LoadD24S8ToD32FS8X24, true);
         default:
@@ -1538,6 +1566,20 @@
     }
 }
 
+LoadImageFunctionInfo LUMINANCE16F_EXT_to_R16_FLOAT(GLenum type)
+{
+    switch (type)
+    {
+        case GL_HALF_FLOAT:
+            return LoadImageFunctionInfo(LoadToNative<GLhalf, 1>, false);
+        case GL_HALF_FLOAT_OES:
+            return LoadImageFunctionInfo(LoadToNative<GLhalf, 1>, false);
+        default:
+            UNREACHABLE();
+            return LoadImageFunctionInfo(UnreachableLoadFunction, true);
+    }
+}
+
 LoadImageFunctionInfo LUMINANCE16F_EXT_to_default(GLenum type)
 {
     switch (type)
@@ -1552,6 +1594,18 @@
     }
 }
 
+LoadImageFunctionInfo LUMINANCE32F_EXT_to_R32_FLOAT(GLenum type)
+{
+    switch (type)
+    {
+        case GL_FLOAT:
+            return LoadImageFunctionInfo(LoadToNative<GLfloat, 1>, false);
+        default:
+            UNREACHABLE();
+            return LoadImageFunctionInfo(UnreachableLoadFunction, true);
+    }
+}
+
 LoadImageFunctionInfo LUMINANCE32F_EXT_to_default(GLenum type)
 {
     switch (type)
@@ -1654,6 +1708,20 @@
     }
 }
 
+LoadImageFunctionInfo LUMINANCE_ALPHA16F_EXT_to_R16G16_FLOAT(GLenum type)
+{
+    switch (type)
+    {
+        case GL_HALF_FLOAT:
+            return LoadImageFunctionInfo(LoadToNative<GLhalf, 2>, false);
+        case GL_HALF_FLOAT_OES:
+            return LoadImageFunctionInfo(LoadToNative<GLhalf, 2>, false);
+        default:
+            UNREACHABLE();
+            return LoadImageFunctionInfo(UnreachableLoadFunction, true);
+    }
+}
+
 LoadImageFunctionInfo LUMINANCE_ALPHA16F_EXT_to_default(GLenum type)
 {
     switch (type)
@@ -1668,6 +1736,18 @@
     }
 }
 
+LoadImageFunctionInfo LUMINANCE_ALPHA32F_EXT_to_R32G32_FLOAT(GLenum type)
+{
+    switch (type)
+    {
+        case GL_FLOAT:
+            return LoadImageFunctionInfo(LoadToNative<GLfloat, 2>, false);
+        default:
+            UNREACHABLE();
+            return LoadImageFunctionInfo(UnreachableLoadFunction, true);
+    }
+}
+
 LoadImageFunctionInfo LUMINANCE_ALPHA32F_EXT_to_default(GLenum type)
 {
     switch (type)
@@ -2939,9 +3019,25 @@
             }
         }
         case GL_ALPHA16F_EXT:
-            return ALPHA16F_EXT_to_default;
+        {
+            switch (angleFormat)
+            {
+                case FormatID::R16_FLOAT:
+                    return ALPHA16F_EXT_to_R16_FLOAT;
+                default:
+                    return ALPHA16F_EXT_to_default;
+            }
+        }
         case GL_ALPHA32F_EXT:
-            return ALPHA32F_EXT_to_default;
+        {
+            switch (angleFormat)
+            {
+                case FormatID::R32_FLOAT:
+                    return ALPHA32F_EXT_to_R32_FLOAT;
+                default:
+                    return ALPHA32F_EXT_to_default;
+            }
+        }
         case GL_ALPHA8_EXT:
         {
             switch (angleFormat)
@@ -3404,9 +3500,25 @@
             }
         }
         case GL_LUMINANCE16F_EXT:
-            return LUMINANCE16F_EXT_to_default;
+        {
+            switch (angleFormat)
+            {
+                case FormatID::R16_FLOAT:
+                    return LUMINANCE16F_EXT_to_R16_FLOAT;
+                default:
+                    return LUMINANCE16F_EXT_to_default;
+            }
+        }
         case GL_LUMINANCE32F_EXT:
-            return LUMINANCE32F_EXT_to_default;
+        {
+            switch (angleFormat)
+            {
+                case FormatID::R32_FLOAT:
+                    return LUMINANCE32F_EXT_to_R32_FLOAT;
+                default:
+                    return LUMINANCE32F_EXT_to_default;
+            }
+        }
         case GL_LUMINANCE8_ALPHA8_EXT:
         {
             switch (angleFormat)
@@ -3446,9 +3558,25 @@
             }
         }
         case GL_LUMINANCE_ALPHA16F_EXT:
-            return LUMINANCE_ALPHA16F_EXT_to_default;
+        {
+            switch (angleFormat)
+            {
+                case FormatID::R16G16_FLOAT:
+                    return LUMINANCE_ALPHA16F_EXT_to_R16G16_FLOAT;
+                default:
+                    return LUMINANCE_ALPHA16F_EXT_to_default;
+            }
+        }
         case GL_LUMINANCE_ALPHA32F_EXT:
-            return LUMINANCE_ALPHA32F_EXT_to_default;
+        {
+            switch (angleFormat)
+            {
+                case FormatID::R32G32_FLOAT:
+                    return LUMINANCE_ALPHA32F_EXT_to_R32G32_FLOAT;
+                default:
+                    return LUMINANCE_ALPHA32F_EXT_to_default;
+            }
+        }
         case GL_R11F_G11F_B10F:
         {
             switch (angleFormat)
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/null/DeviceNULL.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/null/DeviceNULL.cpp
index 7903e4a..4f6a9a8 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/null/DeviceNULL.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/null/DeviceNULL.cpp
@@ -23,7 +23,7 @@
     return egl::NoError();
 }
 
-egl::Error DeviceNULL::getDevice(void **outValue)
+egl::Error DeviceNULL::getAttribute(const egl::Display *display, EGLint attribute, void **outValue)
 {
     UNIMPLEMENTED();
     return egl::EglBadAccess();
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/null/DeviceNULL.h b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/null/DeviceNULL.h
index b26b4c9..a800e15 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/null/DeviceNULL.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/null/DeviceNULL.h
@@ -22,7 +22,9 @@
     ~DeviceNULL() override;
 
     egl::Error initialize() override;
-    egl::Error getDevice(void **outValue) override;
+    egl::Error getAttribute(const egl::Display *display,
+                            EGLint attribute,
+                            void **outValue) override;
     EGLint getType() override;
     void generateExtensions(egl::DeviceExtensions *outExtensions) const override;
 };
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/renderer_utils.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/renderer_utils.cpp
index e34f3fb..c5b7eee 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/renderer_utils.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/renderer_utils.cpp
@@ -306,12 +306,12 @@
     EGLAttrib debugSetting =
         attribs.get(EGL_PLATFORM_ANGLE_DEBUG_LAYERS_ENABLED_ANGLE, EGL_DONT_CARE);
 
-// Prefer to enable debug layers if compiling in Debug, and disabled in Release.
-#if defined(ANGLE_ENABLE_ASSERTS)
+    // Prefer to enable debug layers when available.
+#if defined(ANGLE_ENABLE_VULKAN_VALIDATION_LAYERS_BY_DEFAULT)
     return (debugSetting != EGL_FALSE);
 #else
     return (debugSetting == EGL_TRUE);
-#endif  // defined(ANGLE_ENABLE_ASSERTS)
+#endif  // defined(ANGLE_ENABLE_VULKAN_VALIDATION_LAYERS_BY_DEFAULT)
 }
 
 bool ShouldUseVirtualizedContexts(const egl::AttributeMap &attribs, bool defaultValue)
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/BufferVk.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/BufferVk.cpp
index c14b846..9d3a5d6 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/BufferVk.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/BufferVk.cpp
@@ -78,11 +78,12 @@
 
 void BufferVk::release(ContextVk *contextVk)
 {
-    mBuffer.release(contextVk);
+    RendererVk *renderer = contextVk->getRenderer();
+    mBuffer.release(renderer);
 
     for (ConversionBuffer &buffer : mVertexConversionBuffers)
     {
-        buffer.data.release(contextVk);
+        buffer.data.release(renderer);
     }
 }
 
@@ -222,7 +223,9 @@
             ANGLE_TRY(contextVk->flushImpl(nullptr));
         }
         // Make sure the GPU is done with the buffer.
-        ANGLE_TRY(contextVk->finishToSerial(mBuffer.getStoredQueueSerial()));
+        ANGLE_TRY(contextVk->finishToSerial(mBuffer.getLatestSerial()));
+
+        ASSERT(!mBuffer.isResourceInUse(contextVk));
     }
 
     ANGLE_VK_TRY(contextVk, mBuffer.getDeviceMemory().map(contextVk->getDevice(), offset, length, 0,
@@ -317,7 +320,7 @@
                                          VK_ACCESS_HOST_WRITE_BIT, copyRegion));
 
         // Immediately release staging buffer. We should probably be using a DynamicBuffer here.
-        contextVk->releaseObject(contextVk->getCurrentQueueSerial(), &stagingBuffer);
+        stagingBuffer.release(contextVk);
     }
     else
     {
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/CommandGraph.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/CommandGraph.cpp
index fa6c5fc..515b74c 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/CommandGraph.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/CommandGraph.cpp
@@ -241,45 +241,46 @@
 // CommandGraphResource implementation.
 CommandGraphResource::CommandGraphResource(CommandGraphResourceType resourceType)
     : mCurrentWritingNode(nullptr), mResourceType(resourceType)
-{}
-
-CommandGraphResource::~CommandGraphResource() = default;
-
-bool CommandGraphResource::isResourceInUse(ContextVk *context) const
 {
-    return context->isSerialInUse(mStoredQueueSerial);
+    mUse.init();
 }
 
-void CommandGraphResource::resetQueueSerial()
+CommandGraphResource::~CommandGraphResource()
 {
-    mCurrentWritingNode = nullptr;
-    mCurrentReadingNodes.clear();
-    mStoredQueueSerial = Serial();
+    mUse.release();
 }
 
-angle::Result CommandGraphResource::recordCommands(ContextVk *context,
+bool CommandGraphResource::isResourceInUse(ContextVk *contextVk) const
+{
+    return mUse.isCurrentlyInGraph() || contextVk->isSerialInUse(mUse.getSerial());
+}
+
+angle::Result CommandGraphResource::recordCommands(ContextVk *contextVk,
                                                    CommandBuffer **commandBufferOut)
 {
-    updateQueueSerial(context->getCurrentQueueSerial());
+    updateCurrentAccessNodes();
 
     if (!hasChildlessWritingNode() || hasStartedRenderPass())
     {
-        startNewCommands(context);
+        startNewCommands(contextVk);
         return mCurrentWritingNode->beginOutsideRenderPassRecording(
-            context, context->getCommandPool(), commandBufferOut);
+            contextVk, contextVk->getCommandPool(), commandBufferOut);
     }
 
     CommandBuffer *outsideRenderPassCommands = mCurrentWritingNode->getOutsideRenderPassCommands();
     if (!outsideRenderPassCommands->valid())
     {
         ANGLE_TRY(mCurrentWritingNode->beginOutsideRenderPassRecording(
-            context, context->getCommandPool(), commandBufferOut));
+            contextVk, contextVk->getCommandPool(), commandBufferOut));
     }
     else
     {
         *commandBufferOut = outsideRenderPassCommands;
     }
 
+    // Store reference to usage in graph.
+    contextVk->getCommandGraph()->onResourceUse(mUse);
+
     return angle::Result::Continue;
 }
 
@@ -306,17 +307,19 @@
     return mCurrentWritingNode->beginInsideRenderPassRecording(contextVk, commandBufferOut);
 }
 
-void CommandGraphResource::addWriteDependency(CommandGraphResource *writingResource)
+void CommandGraphResource::addWriteDependency(ContextVk *contextVk,
+                                              CommandGraphResource *writingResource)
 {
     CommandGraphNode *writingNode = writingResource->mCurrentWritingNode;
     ASSERT(writingNode);
 
-    onWriteImpl(writingNode, writingResource->getStoredQueueSerial());
+    onWriteImpl(contextVk, writingNode);
 }
 
-void CommandGraphResource::addReadDependency(CommandGraphResource *readingResource)
+void CommandGraphResource::addReadDependency(ContextVk *contextVk,
+                                             CommandGraphResource *readingResource)
 {
-    updateQueueSerial(readingResource->getStoredQueueSerial());
+    onGraphAccess(contextVk->getCommandGraph());
 
     CommandGraphNode *readingNode = readingResource->mCurrentWritingNode;
     ASSERT(readingNode);
@@ -341,12 +344,12 @@
     CommandGraphNode *newCommands =
         contextVk->getCommandGraph()->allocateNode(CommandGraphNodeFunction::Generic);
     newCommands->setDiagnosticInfo(mResourceType, reinterpret_cast<uintptr_t>(this));
-    onWriteImpl(newCommands, contextVk->getCurrentQueueSerial());
+    onWriteImpl(contextVk, newCommands);
 }
 
-void CommandGraphResource::onWriteImpl(CommandGraphNode *writingNode, Serial currentSerial)
+void CommandGraphResource::onWriteImpl(ContextVk *contextVk, CommandGraphNode *writingNode)
 {
-    updateQueueSerial(currentSerial);
+    onGraphAccess(contextVk->getCommandGraph());
 
     // Make sure any open reads and writes finish before we execute 'writingNode'.
     if (!mCurrentReadingNodes.empty())
@@ -822,6 +825,42 @@
     *allocatedMemoryOut += commandBufferAllocated;
 }
 
+// SharedGarbage implementation.
+SharedGarbage::SharedGarbage() = default;
+
+SharedGarbage::SharedGarbage(SharedGarbage &&other)
+{
+    *this = std::move(other);
+}
+
+SharedGarbage::SharedGarbage(SharedResourceUse &&use, std::vector<GarbageObject> &&garbage)
+    : mLifetime(std::move(use)), mGarbage(std::move(garbage))
+{}
+
+SharedGarbage::~SharedGarbage() = default;
+
+SharedGarbage &SharedGarbage::operator=(SharedGarbage &&rhs)
+{
+    std::swap(mLifetime, rhs.mLifetime);
+    std::swap(mGarbage, rhs.mGarbage);
+    return *this;
+}
+
+bool SharedGarbage::destroyIfComplete(VkDevice device, Serial completedSerial)
+{
+    if (mLifetime.isCurrentlyInGraph() || mLifetime.getSerial() > completedSerial)
+        return false;
+
+    mLifetime.release();
+
+    for (GarbageObject &object : mGarbage)
+    {
+        object.destroy(device);
+    }
+
+    return true;
+}
+
 // CommandGraph implementation.
 CommandGraph::CommandGraph(bool enableGraphDiagnostics, angle::PoolAllocator *poolAllocator)
     : mEnableGraphDiagnostics(enableGraphDiagnostics),
@@ -835,6 +874,7 @@
 CommandGraph::~CommandGraph()
 {
     ASSERT(empty());
+    ASSERT(mResourceUses.empty());
 }
 
 CommandGraphNode *CommandGraph::allocateNode(CommandGraphNodeFunction function)
@@ -902,6 +942,8 @@
         dumpGraphDotFile(std::cout);
     }
 
+    releaseResourceUsesAndUpdateSerials(serial);
+
     std::vector<CommandGraphNode *> nodeStack;
 
     VkCommandBufferBeginInfo beginInfo = {};
@@ -1226,5 +1268,24 @@
     }
 }
 
+void CommandGraph::releaseResourceUses()
+{
+    for (SharedResourceUse &use : mResourceUses)
+    {
+        use.release();
+    }
+
+    mResourceUses.clear();
+}
+
+void CommandGraph::releaseResourceUsesAndUpdateSerials(Serial serial)
+{
+    for (SharedResourceUse &use : mResourceUses)
+    {
+        use.releaseAndUpdateSerial(serial);
+    }
+
+    mResourceUses.clear();
+}
 }  // namespace vk
 }  // namespace rx
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/CommandGraph.h b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/CommandGraph.h
index 89cd970..c2e13d6 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/CommandGraph.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/CommandGraph.h
@@ -18,6 +18,7 @@
 
 namespace vk
 {
+class CommandGraph;
 
 enum class VisitedState
 {
@@ -270,6 +271,104 @@
     RenderPassOwner *mRenderPassOwner;
 };
 
+// Tracks how a resource is used in a command graph and in a VkQueue. The reference count indicates
+// the number of times a resource is used in the graph. The serial indicates the last current use
+// of a resource in the VkQueue. The reference count and serial together can determine if a
+// resource is in use.
+struct ResourceUse
+{
+    ResourceUse() = default;
+
+    uint32_t counter = 0;
+    Serial serial;
+};
+
+class SharedResourceUse final : angle::NonCopyable
+{
+  public:
+    SharedResourceUse() : mUse(nullptr) {}
+    ~SharedResourceUse() { ASSERT(!valid()); }
+    SharedResourceUse(SharedResourceUse &&rhs) : mUse(rhs.mUse) { rhs.mUse = nullptr; }
+    SharedResourceUse &operator=(SharedResourceUse &&rhs)
+    {
+        std::swap(mUse, rhs.mUse);
+        return *this;
+    }
+
+    ANGLE_INLINE bool valid() const { return mUse != nullptr; }
+
+    void init()
+    {
+        ASSERT(!mUse);
+        mUse = new ResourceUse;
+        mUse->counter++;
+    }
+
+    ANGLE_INLINE void release()
+    {
+        ASSERT(valid());
+        ASSERT(mUse->counter > 0);
+        if (--mUse->counter == 0)
+        {
+            delete mUse;
+        }
+        mUse = nullptr;
+    }
+
+    ANGLE_INLINE void releaseAndUpdateSerial(Serial serial)
+    {
+        ASSERT(valid());
+        ASSERT(mUse->counter > 0);
+        ASSERT(mUse->serial <= serial);
+        mUse->serial = serial;
+        release();
+    }
+
+    ANGLE_INLINE void set(const SharedResourceUse &rhs)
+    {
+        ASSERT(rhs.valid());
+        ASSERT(!valid());
+        ASSERT(rhs.mUse->counter < std::numeric_limits<uint32_t>::max());
+        mUse = rhs.mUse;
+        mUse->counter++;
+    }
+
+    ANGLE_INLINE Serial getSerial() const
+    {
+        ASSERT(valid());
+        return mUse->serial;
+    }
+
+    // The base counter value for an live resource is "1". Any value greater than one indicates
+    // the resource is in use by a vk::CommandGraph.
+    ANGLE_INLINE bool isCurrentlyInGraph() const
+    {
+        ASSERT(valid());
+        return mUse->counter > 1;
+    }
+
+  private:
+    ResourceUse *mUse;
+};
+
+class SharedGarbage
+{
+  public:
+    SharedGarbage();
+    SharedGarbage(SharedGarbage &&other);
+    SharedGarbage(SharedResourceUse &&use, std::vector<GarbageObject> &&garbage);
+    ~SharedGarbage();
+    SharedGarbage &operator=(SharedGarbage &&rhs);
+
+    bool destroyIfComplete(VkDevice device, Serial completedSerial);
+
+  private:
+    SharedResourceUse mLifetime;
+    std::vector<GarbageObject> mGarbage;
+};
+
+using SharedGarbageList = std::vector<SharedGarbage>;
+
 // This is a helper class for back-end objects used in Vk command buffers. It records a serial
 // at command recording times indicating an order in the queue. We use Fences to detect when
 // commands finish, and then release any unreferenced and deleted resources based on the stored
@@ -282,35 +381,21 @@
     virtual ~CommandGraphResource();
 
     // Returns true if the resource is in use by the renderer.
-    bool isResourceInUse(ContextVk *context) const;
+    bool isResourceInUse(ContextVk *contextVk) const;
 
-    // Get the current queue serial for this resource. Used to release resources, and for
     // queries, to know if the queue they are submitted on has finished execution.
-    Serial getStoredQueueSerial() const { return mStoredQueueSerial; }
+    Serial getLatestSerial() const { return mUse.getSerial(); }
 
     // Sets up dependency relations. 'this' resource is the resource being written to.
-    void addWriteDependency(CommandGraphResource *writingResource);
+    void addWriteDependency(ContextVk *contextVk, CommandGraphResource *writingResource);
 
     // Sets up dependency relations. 'this' resource is the resource being read.
-    void addReadDependency(CommandGraphResource *readingResource);
+    void addReadDependency(ContextVk *contextVk, CommandGraphResource *readingResource);
 
     // Updates the in-use serial tracked for this resource. Will clear dependencies if the resource
     // was not used in this set of command nodes.
-    ANGLE_INLINE void updateQueueSerial(Serial queueSerial)
-    {
-        ASSERT(queueSerial >= mStoredQueueSerial);
-
-        if (queueSerial > mStoredQueueSerial)
-        {
-            mCurrentWritingNode = nullptr;
-            mCurrentReadingNodes.clear();
-            mStoredQueueSerial = queueSerial;
-        }
-    }
-
-    // Reset the current queue serial for this resource. Will clear dependencies if the resource
-    // was not used in this set of command nodes.
-    void resetQueueSerial();
+    void onGraphAccess(CommandGraph *commandGraph);
+    void updateCurrentAccessNodes();
 
     // Allocates a write node via getNewWriteNode and returns a started command buffer.
     // The started command buffer will render outside of a RenderPass.
@@ -328,115 +413,49 @@
                                   CommandBuffer **commandBufferOut);
 
     // Checks if we're in a RenderPass without children.
-    bool hasStartedRenderPass() const
-    {
-        return hasChildlessWritingNode() &&
-               mCurrentWritingNode->getInsideRenderPassCommands()->valid();
-    }
+    bool hasStartedRenderPass() const;
 
     // Checks if we're in a RenderPass that encompasses renderArea, returning true if so. Updates
     // serial internally. Returns the started command buffer in commandBufferOut.
-    ANGLE_INLINE bool appendToStartedRenderPass(Serial currentQueueSerial,
-                                                const gl::Rectangle &renderArea,
-                                                CommandBuffer **commandBufferOut)
-    {
-        updateQueueSerial(currentQueueSerial);
-        if (hasStartedRenderPass())
-        {
-            if (mCurrentWritingNode->getRenderPassRenderArea().encloses(renderArea))
-            {
-                *commandBufferOut = mCurrentWritingNode->getInsideRenderPassCommands();
-                return true;
-            }
-        }
-
-        return false;
-    }
+    bool appendToStartedRenderPass(CommandGraph *graph,
+                                   const gl::Rectangle &renderArea,
+                                   CommandBuffer **commandBufferOut);
 
     // Returns true if the render pass is started, but there are no commands yet recorded in it.
     // This is useful to know if the render pass ops can be modified.
-    bool renderPassStartedButEmpty() const
-    {
-        return hasStartedRenderPass() &&
-               (!vk::CommandBuffer::CanKnowIfEmpty() ||
-                mCurrentWritingNode->getInsideRenderPassCommands()->empty());
-    }
+    bool renderPassStartedButEmpty() const;
 
-    void clearRenderPassColorAttachment(size_t attachmentIndex, const VkClearColorValue &clearValue)
-    {
-        ASSERT(renderPassStartedButEmpty());
-        mCurrentWritingNode->clearRenderPassColorAttachment(attachmentIndex, clearValue);
-    }
+    void clearRenderPassColorAttachment(size_t attachmentIndex,
+                                        const VkClearColorValue &clearValue);
+    void clearRenderPassDepthAttachment(size_t attachmentIndex, float depth);
+    void clearRenderPassStencilAttachment(size_t attachmentIndex, uint32_t stencil);
 
-    void clearRenderPassDepthAttachment(size_t attachmentIndex, float depth)
-    {
-        ASSERT(renderPassStartedButEmpty());
-        mCurrentWritingNode->clearRenderPassDepthAttachment(attachmentIndex, depth);
-    }
-
-    void clearRenderPassStencilAttachment(size_t attachmentIndex, uint32_t stencil)
-    {
-        ASSERT(renderPassStartedButEmpty());
-        mCurrentWritingNode->clearRenderPassStencilAttachment(attachmentIndex, stencil);
-    }
-
-    void invalidateRenderPassColorAttachment(size_t attachmentIndex)
-    {
-        ASSERT(hasStartedRenderPass());
-        mCurrentWritingNode->invalidateRenderPassColorAttachment(attachmentIndex);
-    }
-
-    void invalidateRenderPassDepthAttachment(size_t attachmentIndex)
-    {
-        ASSERT(hasStartedRenderPass());
-        mCurrentWritingNode->invalidateRenderPassDepthAttachment(attachmentIndex);
-    }
-
-    void invalidateRenderPassStencilAttachment(size_t attachmentIndex)
-    {
-        ASSERT(hasStartedRenderPass());
-        mCurrentWritingNode->invalidateRenderPassStencilAttachment(attachmentIndex);
-    }
+    void invalidateRenderPassColorAttachment(size_t attachmentIndex);
+    void invalidateRenderPassDepthAttachment(size_t attachmentIndex);
+    void invalidateRenderPassStencilAttachment(size_t attachmentIndex);
 
     // Accessor for RenderPass RenderArea.
-    const gl::Rectangle &getRenderPassRenderArea() const
-    {
-        ASSERT(hasStartedRenderPass());
-        return mCurrentWritingNode->getRenderPassRenderArea();
-    }
+    const gl::Rectangle &getRenderPassRenderArea() const;
 
     // Called when 'this' object changes, but we'd like to start a new command buffer later.
     void finishCurrentCommands(ContextVk *contextVk);
 
     // Store a deferred memory barrier. Will be recorded into a primary command buffer at submit.
-    void addGlobalMemoryBarrier(VkFlags srcAccess, VkFlags dstAccess, VkPipelineStageFlags stages)
-    {
-        ASSERT(mCurrentWritingNode);
-        mCurrentWritingNode->addGlobalMemoryBarrier(srcAccess, dstAccess, stages);
-    }
+    void addGlobalMemoryBarrier(VkFlags srcAccess, VkFlags dstAccess, VkPipelineStageFlags stages);
 
   protected:
     explicit CommandGraphResource(CommandGraphResourceType resourceType);
 
+    // Current resource lifetime.
+    SharedResourceUse mUse;
+
   private:
     // Returns true if this node has a current writing node with no children.
-    ANGLE_INLINE bool hasChildlessWritingNode() const
-    {
-        // Note: currently, we don't have a resource that can issue both generic and special
-        // commands.  We don't create read/write dependencies between mixed generic/special
-        // resources either.  As such, we expect the function to always be generic here.  If such a
-        // resource is added in the future, this can add a check for function == generic and fail if
-        // false.
-        ASSERT(mCurrentWritingNode == nullptr ||
-               mCurrentWritingNode->getFunction() == CommandGraphNodeFunction::Generic);
-        return (mCurrentWritingNode != nullptr && !mCurrentWritingNode->hasChildren());
-    }
+    ANGLE_INLINE bool hasChildlessWritingNode() const;
 
     void startNewCommands(ContextVk *contextVk);
 
-    void onWriteImpl(CommandGraphNode *writingNode, Serial currentSerial);
-
-    Serial mStoredQueueSerial;
+    void onWriteImpl(ContextVk *contextVk, CommandGraphNode *writingNode);
 
     std::vector<CommandGraphNode *> mCurrentReadingNodes;
 
@@ -506,6 +525,9 @@
     // Host-visible buffer write availability operation:
     void makeHostVisibleBufferWriteAvailable();
 
+    void onResourceUse(const SharedResourceUse &resourceUse);
+    void releaseResourceUses();
+
   private:
     CommandGraphNode *allocateBarrierNode(CommandGraphNodeFunction function,
                                           CommandGraphResourceType resourceType,
@@ -516,6 +538,7 @@
 
     void dumpGraphDotFile(std::ostream &out) const;
     void updateOverlay(ContextVk *contextVk) const;
+    void releaseResourceUsesAndUpdateSerials(Serial serial);
 
     std::vector<CommandGraphNode *> mNodes;
     bool mEnableGraphDiagnostics;
@@ -569,7 +592,136 @@
     // issued.
     static constexpr size_t kInvalidNodeIndex = std::numeric_limits<std::size_t>::max();
     size_t mLastBarrierIndex;
+
+    std::vector<SharedResourceUse> mResourceUses;
 };
+
+// CommandGraphResource inlines.
+ANGLE_INLINE bool CommandGraphResource::hasStartedRenderPass() const
+{
+    return hasChildlessWritingNode() && mCurrentWritingNode->getInsideRenderPassCommands()->valid();
+}
+
+ANGLE_INLINE void CommandGraphResource::updateCurrentAccessNodes()
+{
+    // Clear dependencies if this is a new access.
+    if (!mUse.isCurrentlyInGraph())
+    {
+        mCurrentWritingNode = nullptr;
+        mCurrentReadingNodes.clear();
+    }
+}
+
+ANGLE_INLINE void CommandGraphResource::onGraphAccess(CommandGraph *commandGraph)
+{
+    updateCurrentAccessNodes();
+
+    // Store reference to usage in graph.
+    commandGraph->onResourceUse(mUse);
+}
+
+ANGLE_INLINE bool CommandGraphResource::appendToStartedRenderPass(CommandGraph *graph,
+                                                                  const gl::Rectangle &renderArea,
+                                                                  CommandBuffer **commandBufferOut)
+{
+    updateCurrentAccessNodes();
+
+    if (hasStartedRenderPass())
+    {
+        // Store reference to usage in graph.
+        graph->onResourceUse(mUse);
+
+        if (mCurrentWritingNode->getRenderPassRenderArea().encloses(renderArea))
+        {
+            *commandBufferOut = mCurrentWritingNode->getInsideRenderPassCommands();
+            return true;
+        }
+    }
+
+    return false;
+}
+
+ANGLE_INLINE bool CommandGraphResource::renderPassStartedButEmpty() const
+{
+    return hasStartedRenderPass() && (!vk::CommandBuffer::CanKnowIfEmpty() ||
+                                      mCurrentWritingNode->getInsideRenderPassCommands()->empty());
+}
+
+ANGLE_INLINE void CommandGraphResource::clearRenderPassColorAttachment(
+    size_t attachmentIndex,
+    const VkClearColorValue &clearValue)
+{
+    ASSERT(renderPassStartedButEmpty());
+    mCurrentWritingNode->clearRenderPassColorAttachment(attachmentIndex, clearValue);
+}
+
+ANGLE_INLINE void CommandGraphResource::clearRenderPassDepthAttachment(size_t attachmentIndex,
+                                                                       float depth)
+{
+    ASSERT(renderPassStartedButEmpty());
+    mCurrentWritingNode->clearRenderPassDepthAttachment(attachmentIndex, depth);
+}
+
+ANGLE_INLINE void CommandGraphResource::clearRenderPassStencilAttachment(size_t attachmentIndex,
+                                                                         uint32_t stencil)
+{
+    ASSERT(renderPassStartedButEmpty());
+    mCurrentWritingNode->clearRenderPassStencilAttachment(attachmentIndex, stencil);
+}
+
+ANGLE_INLINE void CommandGraphResource::invalidateRenderPassColorAttachment(size_t attachmentIndex)
+{
+    ASSERT(hasStartedRenderPass());
+    mCurrentWritingNode->invalidateRenderPassColorAttachment(attachmentIndex);
+}
+
+ANGLE_INLINE void CommandGraphResource::invalidateRenderPassDepthAttachment(size_t attachmentIndex)
+{
+    ASSERT(hasStartedRenderPass());
+    mCurrentWritingNode->invalidateRenderPassDepthAttachment(attachmentIndex);
+}
+
+ANGLE_INLINE void CommandGraphResource::invalidateRenderPassStencilAttachment(
+    size_t attachmentIndex)
+{
+    ASSERT(hasStartedRenderPass());
+    mCurrentWritingNode->invalidateRenderPassStencilAttachment(attachmentIndex);
+}
+
+ANGLE_INLINE const gl::Rectangle &CommandGraphResource::getRenderPassRenderArea() const
+{
+    ASSERT(hasStartedRenderPass());
+    return mCurrentWritingNode->getRenderPassRenderArea();
+}
+
+ANGLE_INLINE void CommandGraphResource::addGlobalMemoryBarrier(VkFlags srcAccess,
+                                                               VkFlags dstAccess,
+                                                               VkPipelineStageFlags stages)
+{
+    ASSERT(mCurrentWritingNode);
+    mCurrentWritingNode->addGlobalMemoryBarrier(srcAccess, dstAccess, stages);
+}
+
+ANGLE_INLINE bool CommandGraphResource::hasChildlessWritingNode() const
+{
+    // Note: currently, we don't have a resource that can issue both generic and special
+    // commands.  We don't create read/write dependencies between mixed generic/special
+    // resources either.  As such, we expect the function to always be generic here.  If such a
+    // resource is added in the future, this can add a check for function == generic and fail if
+    // false.
+    ASSERT(mCurrentWritingNode == nullptr ||
+           mCurrentWritingNode->getFunction() == CommandGraphNodeFunction::Generic);
+    return (mCurrentWritingNode != nullptr && !mCurrentWritingNode->hasChildren());
+}
+
+// CommandGraph inlines.
+ANGLE_INLINE void CommandGraph::onResourceUse(const SharedResourceUse &resourceUse)
+{
+    ASSERT(!empty());
+    SharedResourceUse newUse;
+    newUse.set(resourceUse);
+    mResourceUses.emplace_back(std::move(newUse));
+}
 }  // namespace vk
 }  // namespace rx
 
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ContextVk.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ContextVk.cpp
index cfab054..2a327df 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ContextVk.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ContextVk.cpp
@@ -98,9 +98,6 @@
 constexpr size_t kDefaultPoolAllocatorPageSize  = 16 * 1024;
 constexpr size_t kDriverUniformsAllocatorPageSize = 4 * 1024;
 
-// Wait a maximum of 10s.  If that times out, we declare it a failure.
-constexpr uint64_t kMaxFenceWaitTimeNs = 10'000'000'000llu;
-
 constexpr size_t kInFlightCommandsLimit = 100u;
 
 // Initially dumping the command graphs is disabled.
@@ -198,16 +195,16 @@
 }
 
 // CommandBatch implementation.
-ContextVk::CommandBatch::CommandBatch() = default;
+CommandBatch::CommandBatch() = default;
 
-ContextVk::CommandBatch::~CommandBatch() = default;
+CommandBatch::~CommandBatch() = default;
 
-ContextVk::CommandBatch::CommandBatch(CommandBatch &&other)
+CommandBatch::CommandBatch(CommandBatch &&other)
 {
     *this = std::move(other);
 }
 
-ContextVk::CommandBatch &ContextVk::CommandBatch::operator=(CommandBatch &&other)
+CommandBatch &CommandBatch::operator=(CommandBatch &&other)
 {
     std::swap(primaryCommands, other.primaryCommands);
     std::swap(commandPool, other.commandPool);
@@ -216,13 +213,294 @@
     return *this;
 }
 
-void ContextVk::CommandBatch::destroy(VkDevice device)
+void CommandBatch::destroy(VkDevice device)
 {
     primaryCommands.destroy(device);
     commandPool.destroy(device);
     fence.reset(device);
 }
 
+// CommandQueue implementation.
+CommandQueue::CommandQueue()  = default;
+CommandQueue::~CommandQueue() = default;
+
+void CommandQueue::destroy(VkDevice device)
+{
+    mPrimaryCommandPool.destroy(device);
+    ASSERT(mInFlightCommands.empty() && mGarbageQueue.empty());
+}
+
+angle::Result CommandQueue::init(vk::Context *context)
+{
+    RendererVk *renderer = context->getRenderer();
+
+    // Initialize the command pool now that we know the queue family index.
+    uint32_t queueFamilyIndex = renderer->getQueueFamilyIndex();
+    if (!renderer->getFeatures().transientCommandBuffer.enabled)
+    {
+        ANGLE_TRY(mPrimaryCommandPool.init(context, queueFamilyIndex));
+    }
+
+    return angle::Result::Continue;
+}
+
+angle::Result CommandQueue::checkCompletedCommands(vk::Context *context)
+{
+    RendererVk *renderer = context->getRenderer();
+    VkDevice device      = renderer->getDevice();
+
+    int finishedCount = 0;
+
+    for (CommandBatch &batch : mInFlightCommands)
+    {
+        VkResult result = batch.fence.get().getStatus(device);
+        if (result == VK_NOT_READY)
+        {
+            break;
+        }
+        ANGLE_VK_TRY(context, result);
+
+        renderer->onCompletedSerial(batch.serial);
+
+        renderer->resetSharedFence(&batch.fence);
+        ANGLE_TRACE_EVENT0("gpu.angle", "command buffer recycling");
+        batch.commandPool.destroy(device);
+        ANGLE_TRY(releasePrimaryCommandBuffer(context, std::move(batch.primaryCommands)));
+        ++finishedCount;
+    }
+
+    mInFlightCommands.erase(mInFlightCommands.begin(), mInFlightCommands.begin() + finishedCount);
+
+    Serial lastCompleted = renderer->getLastCompletedQueueSerial();
+
+    size_t freeIndex = 0;
+    for (; freeIndex < mGarbageQueue.size(); ++freeIndex)
+    {
+        vk::GarbageAndSerial &garbageList = mGarbageQueue[freeIndex];
+        if (garbageList.getSerial() < lastCompleted)
+        {
+            for (vk::GarbageObject &garbage : garbageList.get())
+            {
+                garbage.destroy(device);
+            }
+        }
+        else
+        {
+            break;
+        }
+    }
+
+    // Remove the entries from the garbage list - they should be ready to go.
+    if (freeIndex > 0)
+    {
+        mGarbageQueue.erase(mGarbageQueue.begin(), mGarbageQueue.begin() + freeIndex);
+    }
+
+    return angle::Result::Continue;
+}
+
+angle::Result CommandQueue::releaseToCommandBatch(vk::Context *context,
+                                                  vk::PrimaryCommandBuffer &&commandBuffer,
+                                                  vk::CommandPool *commandPool,
+                                                  CommandBatch *batch)
+{
+    RendererVk *renderer = context->getRenderer();
+    VkDevice device      = renderer->getDevice();
+
+    batch->primaryCommands = std::move(commandBuffer);
+
+    if (commandPool->valid())
+    {
+        batch->commandPool = std::move(*commandPool);
+        // Recreate CommandPool
+        VkCommandPoolCreateInfo poolInfo = {};
+        poolInfo.sType                   = VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO;
+        poolInfo.flags                   = VK_COMMAND_POOL_CREATE_TRANSIENT_BIT;
+        poolInfo.queueFamilyIndex        = renderer->getQueueFamilyIndex();
+
+        ANGLE_VK_TRY(context, commandPool->init(device, poolInfo));
+    }
+
+    return angle::Result::Continue;
+}
+
+void CommandQueue::clearAllGarbage(VkDevice device)
+{
+    for (vk::GarbageAndSerial &garbageList : mGarbageQueue)
+    {
+        for (vk::GarbageObject &garbage : garbageList.get())
+        {
+            garbage.destroy(device);
+        }
+    }
+    mGarbageQueue.clear();
+}
+
+angle::Result CommandQueue::allocatePrimaryCommandBuffer(vk::Context *context,
+                                                         const vk::CommandPool &commandPool,
+                                                         vk::PrimaryCommandBuffer *commandBufferOut)
+{
+    RendererVk *renderer = context->getRenderer();
+    VkDevice device      = renderer->getDevice();
+
+    if (ANGLE_LIKELY(!renderer->getFeatures().transientCommandBuffer.enabled))
+    {
+        return mPrimaryCommandPool.allocate(context, commandBufferOut);
+    }
+
+    VkCommandBufferAllocateInfo commandBufferInfo = {};
+    commandBufferInfo.sType                       = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO;
+    commandBufferInfo.commandPool                 = commandPool.getHandle();
+    commandBufferInfo.level                       = VK_COMMAND_BUFFER_LEVEL_PRIMARY;
+    commandBufferInfo.commandBufferCount          = 1;
+
+    ANGLE_VK_TRY(context, commandBufferOut->init(device, commandBufferInfo));
+    return angle::Result::Continue;
+}
+
+angle::Result CommandQueue::releasePrimaryCommandBuffer(vk::Context *context,
+                                                        vk::PrimaryCommandBuffer &&commandBuffer)
+{
+    RendererVk *renderer = context->getRenderer();
+    VkDevice device      = renderer->getDevice();
+
+    if (ANGLE_LIKELY(!renderer->getFeatures().transientCommandBuffer.enabled))
+    {
+        ASSERT(mPrimaryCommandPool.valid());
+        ANGLE_TRY(mPrimaryCommandPool.collect(context, std::move(commandBuffer)));
+    }
+    else
+    {
+        commandBuffer.destroy(device);
+    }
+
+    return angle::Result::Continue;
+}
+
+void CommandQueue::handleDeviceLost(RendererVk *renderer)
+{
+    VkDevice device = renderer->getDevice();
+
+    for (CommandBatch &batch : mInFlightCommands)
+    {
+        // On device loss we need to wait for fence to be signaled before destroying it
+        VkResult status = batch.fence.get().wait(device, renderer->getMaxFenceWaitTimeNs());
+        // If the wait times out, it is probably not possible to recover from lost device
+        ASSERT(status == VK_SUCCESS || status == VK_ERROR_DEVICE_LOST);
+
+        // On device lost, here simply destroy the CommandBuffer, it will fully cleared later
+        // by CommandPool::destroy
+        batch.primaryCommands.destroy(device);
+
+        batch.commandPool.destroy(device);
+        batch.fence.reset(device);
+    }
+    mInFlightCommands.clear();
+}
+
+bool CommandQueue::hasInFlightCommands() const
+{
+    return !mInFlightCommands.empty();
+}
+
+angle::Result CommandQueue::finishToSerialOrTimeout(vk::Context *context,
+                                                    Serial serial,
+                                                    uint64_t timeout,
+                                                    bool *outTimedOut)
+{
+    *outTimedOut = false;
+
+    if (mInFlightCommands.empty())
+    {
+        return angle::Result::Continue;
+    }
+
+    // Find the first batch with serial equal to or bigger than given serial (note that
+    // the batch serials are unique, otherwise upper-bound would have been necessary).
+    size_t batchIndex = mInFlightCommands.size() - 1;
+    for (size_t i = 0; i < mInFlightCommands.size(); ++i)
+    {
+        if (mInFlightCommands[i].serial >= serial)
+        {
+            batchIndex = i;
+            break;
+        }
+    }
+    const CommandBatch &batch = mInFlightCommands[batchIndex];
+
+    // Wait for it finish
+    VkDevice device = context->getDevice();
+    VkResult status =
+        batch.fence.get().wait(device, context->getRenderer()->getMaxFenceWaitTimeNs());
+
+    // If timed out, report it as such.
+    if (status == VK_TIMEOUT)
+    {
+        *outTimedOut = true;
+        return angle::Result::Continue;
+    }
+
+    ANGLE_VK_TRY(context, status);
+
+    // Clean up finished batches.
+    return checkCompletedCommands(context);
+}
+
+angle::Result CommandQueue::submitFrame(vk::Context *context,
+                                        const VkSubmitInfo &submitInfo,
+                                        const vk::Shared<vk::Fence> &sharedFence,
+                                        vk::GarbageList *currentGarbage,
+                                        vk::CommandPool *commandPool,
+                                        vk::PrimaryCommandBuffer &&commandBuffer)
+{
+    ANGLE_TRACE_EVENT0("gpu.angle", "CommandQueue::submitFrame");
+    VkFenceCreateInfo fenceInfo = {};
+    fenceInfo.sType             = VK_STRUCTURE_TYPE_FENCE_CREATE_INFO;
+    fenceInfo.flags             = 0;
+
+    RendererVk *renderer = context->getRenderer();
+    VkDevice device      = renderer->getDevice();
+
+    vk::DeviceScoped<CommandBatch> scopedBatch(device);
+    CommandBatch &batch = scopedBatch.get();
+    batch.fence.copy(device, sharedFence);
+
+    ANGLE_TRY(renderer->queueSubmit(context, submitInfo, batch.fence.get(), &batch.serial));
+
+    if (!currentGarbage->empty())
+    {
+        mGarbageQueue.emplace_back(std::move(*currentGarbage), batch.serial);
+    }
+
+    // Store the primary CommandBuffer and command pool used for secondary CommandBuffers
+    // in the in-flight list.
+    ANGLE_TRY(releaseToCommandBatch(context, std::move(commandBuffer), commandPool, &batch));
+
+    mInFlightCommands.emplace_back(scopedBatch.release());
+
+    // CPU should be throttled to avoid mInFlightCommands from growing too fast.  That is done
+    // on swap() though, and there could be multiple submissions in between (through glFlush()
+    // calls), so the limit is larger than the expected number of images.  The
+    // InterleavedAttributeDataBenchmark perf test for example issues a large number of flushes.
+    ASSERT(mInFlightCommands.size() <= kInFlightCommandsLimit);
+
+    ANGLE_TRY(checkCompletedCommands(context));
+
+    return angle::Result::Continue;
+}
+
+vk::Shared<vk::Fence> CommandQueue::getLastSubmittedFence(const vk::Context *context) const
+{
+    vk::Shared<vk::Fence> fence;
+    if (!mInFlightCommands.empty())
+    {
+        fence.copy(context->getDevice(), mInFlightCommands.back().fence);
+    }
+
+    return fence;
+}
+
+// ContextVk implementation.
 ContextVk::ContextVk(const gl::State &state, gl::ErrorSet *errorSet, RendererVk *renderer)
     : ContextImpl(state, errorSet),
       vk::Context(renderer),
@@ -241,8 +519,6 @@
       mIsAnyHostVisibleBufferWritten(false),
       mEmulateSeamfulCubeMapSampling(false),
       mUseOldRewriteStructSamplers(false),
-      mLastCompletedQueueSerial(renderer->nextSerial()),
-      mCurrentQueueSerial(renderer->nextSerial()),
       mPoolAllocator(kDefaultPoolAllocatorPageSize, 1),
       mCommandGraph(kEnableCommandGraphDiagnostics, &mPoolAllocator),
       mGpuEventsEnabled(false),
@@ -310,13 +586,14 @@
 
 void ContextVk::onDestroy(const gl::Context *context)
 {
-    // Force a flush on destroy.
+    // This will not destroy any resources. It will release them to be collected after finish.
+    mIncompleteTextures.onDestroy(context);
+
+    // Flush and complete current outstanding work before destruction.
     (void)finishImpl();
 
     VkDevice device = getDevice();
 
-    mIncompleteTextures.onDestroy(context);
-
     for (DriverUniformsDescriptorSet &driverUniforms : mDriverUniforms)
     {
         driverUniforms.destroy(device);
@@ -334,10 +611,11 @@
         queryPool.destroy(device);
     }
 
-    if (!mInFlightCommands.empty() || !mGarbage.empty())
-    {
-        (void)finishImpl();
-    }
+    ASSERT(mCurrentGarbage.empty());
+
+    mCommandQueue.destroy(device);
+
+    mCommandGraph.releaseResourceUses();
 
     mUtils.destroy(device);
 
@@ -347,11 +625,6 @@
     mGpuEventQueryPool.destroy(device);
     mCommandPool.destroy(device);
 
-    if (ANGLE_LIKELY(!mRenderer->getFeatures().transientCommandBuffer.enabled))
-    {
-        mPrimaryCommandPool.destroy(this);
-    }
-
     for (vk::CommandPool &pool : mCommandPoolFreeList)
     {
         pool.destroy(device);
@@ -407,21 +680,17 @@
         buffer.init(mRenderer, kVertexBufferUsage, 1, kDefaultBufferSize, true);
     }
 
-    // Initialize the command pool now that we know the queue family index.
-    uint32_t queueFamilyIndex = getRenderer()->getQueueFamilyIndex();
-    if (ANGLE_LIKELY(!mRenderer->getFeatures().transientCommandBuffer.enabled))
+    ANGLE_TRY(mCommandQueue.init(this));
+
+    if (mRenderer->getFeatures().transientCommandBuffer.enabled)
     {
-        ANGLE_TRY(mPrimaryCommandPool.init(this, queueFamilyIndex));
-    }
-    else
-    {
-        // Once the transientCommandBuffer issue being resolved, the commandPool will only
+        // Once http://anglebug.com/3508 is resolved, the commandPool will only
         // used for secondaryBuffer allocation, so we can guard this block of code use macro
-        // ANGLE_USE_CUSTOM_VULKAN_CMD_BUFFERS
+        // ANGLE_USE_CUSTOM_VULKAN_CMD_BUFFERS.
         VkCommandPoolCreateInfo commandPoolInfo = {};
         commandPoolInfo.sType                   = VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO;
         commandPoolInfo.flags                   = VK_COMMAND_POOL_CREATE_TRANSIENT_BIT;
-        commandPoolInfo.queueFamilyIndex        = queueFamilyIndex;
+        commandPoolInfo.queueFamilyIndex        = mRenderer->getQueueFamilyIndex();
 
         ANGLE_VK_TRY(this, mCommandPool.init(getDevice(), commandPoolInfo));
     }
@@ -430,8 +699,8 @@
     angle::PlatformMethods *platform = ANGLEPlatformCurrent();
     ASSERT(platform);
 
-    // GPU tracing workaround for anglebug.com/2927.  The renderer should not emit gpu events during
-    // platform discovery.
+    // GPU tracing workaround for anglebug.com/2927.  The renderer should not emit gpu events
+    // during platform discovery.
     const unsigned char *gpuEventsEnabled =
         platform->getTraceCategoryEnabledFlag(platform, "gpu.angle.gpu");
     mGpuEventsEnabled = gpuEventsEnabled && *gpuEventsEnabled;
@@ -464,10 +733,10 @@
 
 angle::Result ContextVk::setupDraw(const gl::Context *context,
                                    gl::PrimitiveMode mode,
-                                   GLint firstVertex,
+                                   GLint firstVertexOrInvalid,
                                    GLsizei vertexOrIndexCount,
                                    GLsizei instanceCount,
-                                   gl::DrawElementsType indexTypeOrNone,
+                                   gl::DrawElementsType indexTypeOrInvalid,
                                    const void *indices,
                                    DirtyBits dirtyBitMask,
                                    vk::CommandBuffer **commandBufferOut)
@@ -481,10 +750,14 @@
     }
 
     // Must be called before the command buffer is started. Can call finish.
-    if (context->getStateCache().hasAnyActiveClientAttrib())
+    if (mVertexArray->getStreamingVertexAttribsMask().any())
     {
-        ANGLE_TRY(mVertexArray->updateClientAttribs(context, firstVertex, vertexOrIndexCount,
-                                                    instanceCount, indexTypeOrNone, indices));
+        ASSERT(firstVertexOrInvalid != -1);
+        // All client attribs & any emulated buffered attribs will be updated
+        ANGLE_TRY(mVertexArray->updateStreamedAttribs(context, firstVertexOrInvalid,
+                                                      vertexOrIndexCount, instanceCount,
+                                                      indexTypeOrInvalid, indices));
+
         mGraphicsDirtyBits.set(DIRTY_BIT_VERTEX_BUFFERS);
     }
 
@@ -497,8 +770,8 @@
         mGraphicsDirtyBits |= mNewGraphicsCommandBufferDirtyBits;
 
         gl::Rectangle scissoredRenderArea = mDrawFramebuffer->getScissoredRenderArea(this);
-        if (!mDrawFramebuffer->appendToStartedRenderPass(
-                getCurrentQueueSerial(), scissoredRenderArea, &mRenderPassCommandBuffer))
+        if (!mDrawFramebuffer->appendToStartedRenderPass(&mCommandGraph, scissoredRenderArea,
+                                                         &mRenderPassCommandBuffer))
         {
             ANGLE_TRY(mDrawFramebuffer->startNewRenderPass(this, scissoredRenderArea,
                                                            &mRenderPassCommandBuffer));
@@ -521,7 +794,8 @@
     // Update transform feedback offsets on every draw call.
     if (mState.isTransformFeedbackActiveUnpaused())
     {
-        mXfbBaseVertex = firstVertex;
+        ASSERT(firstVertexOrInvalid != -1);
+        mXfbBaseVertex = firstVertexOrInvalid;
         invalidateGraphicsDriverUniforms();
     }
 
@@ -584,6 +858,80 @@
                      mIndexedDirtyBitsMask, commandBufferOut);
 }
 
+angle::Result ContextVk::setupIndirectDraw(const gl::Context *context,
+                                           gl::PrimitiveMode mode,
+                                           DirtyBits dirtyBitMask,
+                                           vk::CommandBuffer **commandBufferOut,
+                                           vk::Buffer **indirectBufferOut)
+{
+    ASSERT(mode != gl::PrimitiveMode::LineLoop);
+
+    gl::Buffer *indirectBuffer = mState.getTargetBuffer(gl::BufferBinding::DrawIndirect);
+    ASSERT(indirectBuffer);
+
+    vk::BufferHelper &buffer           = vk::GetImpl(indirectBuffer)->getBuffer();
+    *indirectBufferOut                 = const_cast<vk::Buffer *>(&buffer.getBuffer());
+    vk::FramebufferHelper *framebuffer = mDrawFramebuffer->getFramebuffer();
+    buffer.onRead(this, framebuffer, VK_ACCESS_INDIRECT_COMMAND_READ_BIT);
+
+    ANGLE_TRY(setupDraw(context, mode, -1, 0, 0, gl::DrawElementsType::InvalidEnum, nullptr,
+                        dirtyBitMask, commandBufferOut));
+
+    return angle::Result::Continue;
+}
+
+angle::Result ContextVk::setupIndexedIndirectDraw(const gl::Context *context,
+                                                  gl::PrimitiveMode mode,
+                                                  gl::DrawElementsType indexType,
+                                                  vk::CommandBuffer **commandBufferOut,
+                                                  vk::Buffer **indirectBufferOut)
+{
+    ASSERT(mode != gl::PrimitiveMode::LineLoop);
+
+    if (indexType != mCurrentDrawElementsType)
+    {
+        mCurrentDrawElementsType = indexType;
+        setIndexBufferDirty();
+    }
+
+    return setupIndirectDraw(context, mode, mIndexedDirtyBitsMask, commandBufferOut,
+                             indirectBufferOut);
+}
+
+angle::Result ContextVk::setupLineLoopIndexedIndirectDraw(const gl::Context *context,
+                                                          gl::PrimitiveMode mode,
+                                                          gl::DrawElementsType indexType,
+                                                          const gl::Buffer *indirectBuffer,
+                                                          VkDeviceSize indirectBufferOffset,
+                                                          const gl::Buffer *indexBuffer,
+                                                          vk::CommandBuffer **commandBufferOut,
+                                                          vk::Buffer **indirectBufferOut,
+                                                          VkDeviceSize *indirectBufferOffsetOut)
+{
+    ASSERT(mode == gl::PrimitiveMode::LineLoop);
+
+    BufferVk *indirectBufferVk                = vk::GetImpl(indirectBuffer);
+    vk::BufferHelper *indirectBufferHelperOut = nullptr;
+
+    ANGLE_TRY(mVertexArray->handleLineLoopIndirect(this, indirectBufferVk, indexType,
+                                                   indirectBufferOffset, &indirectBufferHelperOut,
+                                                   indirectBufferOffsetOut));
+
+    *indirectBufferOut = const_cast<vk::Buffer *>(&indirectBufferHelperOut->getBuffer());
+
+    if (indexType != mCurrentDrawElementsType)
+    {
+        mCurrentDrawElementsType = indexType;
+        setIndexBufferDirty();
+    }
+
+    vk::FramebufferHelper *framebuffer = mDrawFramebuffer->getFramebuffer();
+    indirectBufferHelperOut->onRead(this, framebuffer, VK_ACCESS_INDIRECT_COMMAND_READ_BIT);
+
+    return setupDraw(context, mode, -1, 0, 0, gl::DrawElementsType::InvalidEnum, nullptr,
+                     mIndexedDirtyBitsMask, commandBufferOut);
+}
+
 angle::Result ContextVk::setupLineLoopDraw(const gl::Context *context,
                                            gl::PrimitiveMode mode,
                                            GLint firstVertex,
@@ -737,12 +1085,14 @@
         mVertexArray->getCurrentArrayBuffers();
     vk::FramebufferHelper *framebuffer = mDrawFramebuffer->getFramebuffer();
 
-    for (size_t attribIndex : context->getStateCache().getActiveBufferedAttribsMask())
+    // Mark all active vertex buffers as accessed by the graph.
+    gl::AttributesMask attribsMask = mProgram->getState().getActiveAttribLocationsMask();
+    for (size_t attribIndex : attribsMask)
     {
         vk::BufferHelper *arrayBuffer = arrayBufferResources[attribIndex];
         if (arrayBuffer)
         {
-            arrayBuffer->onRead(framebuffer, VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT);
+            arrayBuffer->onRead(this, framebuffer, VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT);
         }
     }
 
@@ -760,7 +1110,7 @@
                                    gl_vk::kIndexTypeMap[mCurrentDrawElementsType]);
 
     vk::FramebufferHelper *framebuffer = mDrawFramebuffer->getFramebuffer();
-    elementArrayBuffer->onRead(framebuffer, VK_ACCESS_INDEX_READ_BIT);
+    elementArrayBuffer->onRead(this, framebuffer, VK_ACCESS_INDEX_READ_BIT);
 
     return angle::Result::Continue;
 }
@@ -837,89 +1187,21 @@
                                          mDriverUniforms[PipelineType::Compute]);
 }
 
-angle::Result ContextVk::releaseToCommandBatch(vk::PrimaryCommandBuffer &&commandBuffer,
-                                               CommandBatch *batch)
-{
-    batch->primaryCommands = std::move(commandBuffer);
-
-    if (mCommandPool.valid())
-    {
-        batch->commandPool = std::move(mCommandPool);
-        // Recreate CommandPool
-        VkCommandPoolCreateInfo poolInfo = {};
-        poolInfo.sType                   = VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO;
-        poolInfo.flags                   = VK_COMMAND_POOL_CREATE_TRANSIENT_BIT;
-        poolInfo.queueFamilyIndex        = getRenderer()->getQueueFamilyIndex();
-
-        ANGLE_VK_TRY(this, mCommandPool.init(getDevice(), poolInfo));
-    }
-
-    return angle::Result::Continue;
-}
-
-angle::Result ContextVk::recycleCommandBatch(CommandBatch *batch)
-{
-    batch->commandPool.destroy(getDevice());
-
-    if (ANGLE_LIKELY(!mRenderer->getFeatures().transientCommandBuffer.enabled))
-    {
-        ASSERT(mPrimaryCommandPool.valid());
-        ANGLE_TRY(mPrimaryCommandPool.collect(this, std::move(batch->primaryCommands)));
-    }
-    else
-    {
-        batch->primaryCommands.destroy(getDevice());
-    }
-
-    return angle::Result::Continue;
-}
-
 angle::Result ContextVk::submitFrame(const VkSubmitInfo &submitInfo,
                                      vk::PrimaryCommandBuffer &&commandBuffer)
 {
-    ANGLE_TRACE_EVENT0("gpu.angle", "RendererVk::submitFrame");
-    VkFenceCreateInfo fenceInfo = {};
-    fenceInfo.sType             = VK_STRUCTURE_TYPE_FENCE_CREATE_INFO;
-    fenceInfo.flags             = 0;
+    ANGLE_TRY(ensureSubmitFenceInitialized());
+    ANGLE_TRY(mCommandQueue.submitFrame(this, submitInfo, mSubmitFence, &mCurrentGarbage,
+                                        &mCommandPool, std::move(commandBuffer)));
 
-    VkDevice device = getDevice();
-    vk::DeviceScoped<CommandBatch> scopedBatch(device);
-    CommandBatch &batch = scopedBatch.get();
-    ANGLE_TRY(getNextSubmitFence(&batch.fence));
-
-    ANGLE_TRY(getRenderer()->queueSubmit(this, submitInfo, batch.fence.get()));
-
-    // TODO: this comment still valid?
-    // Notify the Contexts that they should be starting new command buffers.
-    // We use one command pool per serial/submit associated with this VkQueue. We can also
-    // have multiple Contexts sharing one VkQueue. In ContextVk::setupDraw we don't explicitly
-    // check for a new serial when starting a new command buffer. We just check that the current
-    // recording command buffer is valid. Thus we need to explicitly notify every other Context
-    // using this VkQueue that they their current command buffer is no longer valid.
+    // we need to explicitly notify every other Context using this VkQueue that their current
+    // command buffer is no longer valid.
     onRenderPassFinished();
     mComputeDirtyBits |= mNewComputeCommandBufferDirtyBits;
 
-    // Store the primary CommandBuffer and command pool used for secondary CommandBuffers
-    // in the in-flight list.
-    ANGLE_TRY(releaseToCommandBatch(std::move(commandBuffer), &batch));
-    batch.serial = mCurrentQueueSerial;
-
-    mInFlightCommands.emplace_back(scopedBatch.release());
-
     // Make sure a new fence is created for the next submission.
     mRenderer->resetSharedFence(&mSubmitFence);
 
-    // CPU should be throttled to avoid mInFlightCommands from growing too fast.  That is done on
-    // swap() though, and there could be multiple submissions in between (through glFlush() calls),
-    // so the limit is larger than the expected number of images.  The
-    // InterleavedAttributeDataBenchmark perf test for example issues a large number of flushes.
-    ASSERT(mInFlightCommands.size() <= kInFlightCommandsLimit);
-
-    mLastSubmittedQueueSerial = mCurrentQueueSerial;
-    mCurrentQueueSerial       = getRenderer()->nextSerial();
-
-    ANGLE_TRY(checkCompletedCommands());
-
     if (mGpuEventsEnabled)
     {
         ANGLE_TRY(checkCompletedGpuEvents());
@@ -936,7 +1218,8 @@
     }
     mIsAnyHostVisibleBufferWritten = false;
 
-    return mCommandGraph.submitCommands(this, mCurrentQueueSerial, &mRenderPassCache, commandBatch);
+    return mCommandGraph.submitCommands(this, getCurrentQueueSerial(), &mRenderPassCache,
+                                        commandBatch);
 }
 
 angle::Result ContextVk::synchronizeCpuGpuTime()
@@ -946,8 +1229,8 @@
     angle::PlatformMethods *platform = ANGLEPlatformCurrent();
     ASSERT(platform);
 
-    // To synchronize CPU and GPU times, we need to get the CPU timestamp as close as possible to
-    // the GPU timestamp.  The process of getting the GPU timestamp is as follows:
+    // To synchronize CPU and GPU times, we need to get the CPU timestamp as close as possible
+    // to the GPU timestamp.  The process of getting the GPU timestamp is as follows:
     //
     //             CPU                            GPU
     //
@@ -969,9 +1252,9 @@
     //       Get query results
     //
     // The areas of unknown work (????) on the CPU indicate that the CPU may or may not have
-    // finished post-submission work while the GPU is executing in parallel. With no further work,
-    // querying CPU timestamps before submission and after getting query results give the bounds to
-    // Tgpu, which could be quite large.
+    // finished post-submission work while the GPU is executing in parallel. With no further
+    // work, querying CPU timestamps before submission and after getting query results give the
+    // bounds to Tgpu, which could be quite large.
     //
     // Using VkEvents, the GPU can be made to wait for the CPU and vice versa, in an effort to
     // reduce this range. This function implements the following procedure:
@@ -1005,8 +1288,8 @@
     //
     // If Te-Ts > epsilon, a GPU or CPU interruption can be assumed and the operation can be
     // retried.  Once Te-Ts < epsilon, Tcpu can be taken to presumably match Tgpu.  Finding an
-    // epsilon that's valid for all devices may be difficult, so the loop can be performed only a
-    // limited number of times and the Tcpu,Tgpu pair corresponding to smallest Te-Ts used for
+    // epsilon that's valid for all devices may be difficult, so the loop can be performed only
+    // a limited number of times and the Tcpu,Tgpu pair corresponding to smallest Te-Ts used for
     // calibration.
     //
     // Note: Once VK_EXT_calibrated_timestamps is ubiquitous, this should be redone.
@@ -1048,20 +1331,7 @@
         vk::DeviceScoped<vk::PrimaryCommandBuffer> commandBatch(device);
         vk::PrimaryCommandBuffer &commandBuffer = commandBatch.get();
 
-        if (ANGLE_LIKELY(!mRenderer->getFeatures().transientCommandBuffer.enabled))
-        {
-            ANGLE_TRY(mPrimaryCommandPool.alloc(this, &commandBuffer));
-        }
-        else
-        {
-            VkCommandBufferAllocateInfo commandBufferInfo = {};
-            commandBufferInfo.sType              = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO;
-            commandBufferInfo.commandPool        = mCommandPool.getHandle();
-            commandBufferInfo.level              = VK_COMMAND_BUFFER_LEVEL_PRIMARY;
-            commandBufferInfo.commandBufferCount = 1;
-
-            ANGLE_VK_TRY(this, commandBuffer.init(device, commandBufferInfo));
-        }
+        ANGLE_TRY(mCommandQueue.allocatePrimaryCommandBuffer(this, mCommandPool, &commandBuffer));
 
         VkCommandBufferBeginInfo beginInfo = {};
         beginInfo.sType                    = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO;
@@ -1173,7 +1443,7 @@
 
     event.name   = name;
     event.phase  = phase;
-    event.serial = mCurrentQueueSerial;
+    event.serial = getCurrentQueueSerial();
 
     ANGLE_TRY(mGpuEventQueryPool.allocateQuery(this, &event.queryPoolIndex, &event.queryIndex));
 
@@ -1197,10 +1467,12 @@
 
     int finishedCount = 0;
 
+    Serial lastCompletedSerial = getLastCompletedQueueSerial();
+
     for (GpuEventQuery &eventQuery : mInFlightGpuEventQueries)
     {
         // Only check the timestamp query if the submission has finished.
-        if (eventQuery.serial > mLastCompletedQueueSerial)
+        if (eventQuery.serial > lastCompletedSerial)
         {
             break;
         }
@@ -1254,7 +1526,8 @@
     double nextGpuSyncDiffS = nextSyncCpuTimestampS - nextSyncGpuTimestampS;
 
     // No gpu trace events should have been generated before the clock sync, so if there is no
-    // "previous" clock sync, there should be no gpu events (i.e. the function early-outs above).
+    // "previous" clock sync, there should be no gpu events (i.e. the function early-outs
+    // above).
     ASSERT(mGpuClockSync.gpuTimestampS != std::numeric_limits<double>::max() &&
            mGpuClockSync.cpuTimestampS != std::numeric_limits<double>::max());
 
@@ -1272,8 +1545,8 @@
         // Account for clock drift.
         gpuTimestampS += lastGpuSyncDiffS + gpuSyncDriftSlope * (gpuTimestampS - lastGpuSyncTimeS);
 
-        // Generate the trace now that the GPU timestamp is available and clock drifts are accounted
-        // for.
+        // Generate the trace now that the GPU timestamp is available and clock drifts are
+        // accounted for.
         static long long eventId = 1;
         static const unsigned char *categoryEnabled =
             TRACE_EVENT_API_GET_CATEGORY_ENABLED(platform, "gpu.angle.gpu");
@@ -1284,35 +1557,23 @@
     mGpuEvents.clear();
 }
 
-void ContextVk::handleDeviceLost()
+void ContextVk::clearAllGarbage()
 {
-    mCommandGraph.clear();
-    // TODO: generate a new serial neccessary here?
     VkDevice device = getDevice();
-
-    for (CommandBatch &batch : mInFlightCommands)
-    {
-        // On device loss we need to wait for fence to be signaled before destroying it
-        VkResult status = batch.fence.get().wait(device, kMaxFenceWaitTimeNs);
-        // If the wait times out, it is probably not possible to recover from lost device
-        ASSERT(status == VK_SUCCESS || status == VK_ERROR_DEVICE_LOST);
-
-        // On device lost, here simply destroy the CommandBuffer, it will fully cleared later
-        // by CommandPool::destroy
-        batch.primaryCommands.destroy(device);
-
-        batch.commandPool.destroy(device);
-        batch.fence.reset(device);
-    }
-    mInFlightCommands.clear();
-
-    for (vk::GarbageObject &garbage : mGarbage)
+    for (vk::GarbageObject &garbage : mCurrentGarbage)
     {
         garbage.destroy(device);
     }
-    mGarbage.clear();
+    mCurrentGarbage.clear();
+    mCommandQueue.clearAllGarbage(device);
+}
 
-    mLastCompletedQueueSerial = mLastSubmittedQueueSerial;
+void ContextVk::handleDeviceLost()
+{
+    mCommandGraph.clear();
+
+    mCommandQueue.handleDeviceLost(mRenderer);
+    clearAllGarbage();
 
     mRenderer->notifyDeviceLost();
 }
@@ -1470,8 +1731,20 @@
                                             gl::PrimitiveMode mode,
                                             const void *indirect)
 {
-    ANGLE_VK_UNREACHABLE(this);
-    return angle::Result::Stop;
+    if (mode == gl::PrimitiveMode::LineLoop)
+    {
+        // TODO - http://anglebug.com/3564
+        ANGLE_VK_UNREACHABLE(this);
+        return angle::Result::Stop;
+    }
+
+    vk::CommandBuffer *commandBuffer = nullptr;
+    vk::Buffer *buffer               = nullptr;
+
+    ANGLE_TRY(setupIndirectDraw(context, mode, mNonIndexedDirtyBitsMask, &commandBuffer, &buffer));
+
+    commandBuffer->drawIndirect(*buffer, reinterpret_cast<VkDeviceSize>(indirect), 1, 0);
+    return angle::Result::Continue;
 }
 
 angle::Result ContextVk::drawElementsIndirect(const gl::Context *context,
@@ -1479,8 +1752,38 @@
                                               gl::DrawElementsType type,
                                               const void *indirect)
 {
-    ANGLE_VK_UNREACHABLE(this);
-    return angle::Result::Stop;
+    VkDeviceSize indirectBufferOffset = reinterpret_cast<VkDeviceSize>(indirect);
+    gl::Buffer *indirectBuffer        = mState.getTargetBuffer(gl::BufferBinding::DrawIndirect);
+    ASSERT(indirectBuffer);
+
+    const gl::Buffer *indexBuffer = mVertexArray->getState().getElementArrayBuffer();
+    ASSERT(indexBuffer);
+
+    if (type == gl::DrawElementsType::UnsignedByte && mGraphicsDirtyBits[DIRTY_BIT_INDEX_BUFFER])
+    {
+        BufferVk *indexVk     = vk::GetImpl(indexBuffer);
+        BufferVk *cmdBufferVk = vk::GetImpl(indirectBuffer);
+        ANGLE_TRY(
+            mVertexArray->convertIndexBufferIndirectGPU(this, cmdBufferVk, indexVk, indirect));
+    }
+
+    vk::CommandBuffer *commandBuffer = nullptr;
+    vk::Buffer *indirectBufferFinal  = nullptr;
+
+    if (mode == gl::PrimitiveMode::LineLoop)
+    {
+        ANGLE_TRY(setupLineLoopIndexedIndirectDraw(
+            context, mode, type, indirectBuffer, indirectBufferOffset, indexBuffer, &commandBuffer,
+            &indirectBufferFinal, &indirectBufferOffset));
+    }
+    else
+    {
+        ANGLE_TRY(
+            setupIndexedIndirectDraw(context, mode, type, &commandBuffer, &indirectBufferFinal));
+    }
+
+    commandBuffer->drawIndexedIndirect(*indirectBufferFinal, indirectBufferOffset, 1, 0);
+    return angle::Result::Continue;
 }
 
 gl::GraphicsResetStatus ContextVk::getResetStatus()
@@ -1819,7 +2122,8 @@
                 break;
             case gl::State::DIRTY_BIT_UNPACK_STATE:
                 // This is a no-op, it's only important to use the right unpack state when we do
-                // setImage or setSubImage in TextureVk, which is plumbed through the frontend call
+                // setImage or setSubImage in TextureVk, which is plumbed through the frontend
+                // call
                 break;
             case gl::State::DIRTY_BIT_UNPACK_BUFFER_BINDING:
                 break;
@@ -1840,11 +2144,12 @@
                 break;
             case gl::State::DIRTY_BIT_DRAW_FRAMEBUFFER_BINDING:
             {
-                // FramebufferVk::syncState signals that we should start a new command buffer. But
-                // changing the binding can skip FramebufferVk::syncState if the Framebuffer has no
-                // dirty bits. Thus we need to explicitly clear the current command buffer to
-                // ensure we start a new one. Note that we need a new command buffer because a
-                // command graph node can only support one RenderPass configuration at a time.
+                // FramebufferVk::syncState signals that we should start a new command buffer.
+                // But changing the binding can skip FramebufferVk::syncState if the Framebuffer
+                // has no dirty bits. Thus we need to explicitly clear the current command
+                // buffer to ensure we start a new one. Note that we need a new command buffer
+                // because a command graph node can only support one RenderPass configuration at
+                // a time.
                 onRenderPassFinished();
 
                 gl::Framebuffer *drawFramebuffer = glState.getDrawFramebuffer();
@@ -1901,10 +2206,11 @@
                 }
                 else
                 {
-                    // No additional work is needed here. We will update the pipeline desc later.
+                    // No additional work is needed here. We will update the pipeline desc
+                    // later.
                     invalidateDefaultAttributes(
                         context->getStateCache().getActiveDefaultAttribsMask());
-                    bool useVertexBuffer = (mProgram->getState().getMaxActiveAttribLocation());
+                    bool useVertexBuffer = (mProgram->getState().getMaxActiveAttribLocation() > 0);
                     mNonIndexedDirtyBitsMask.set(DIRTY_BIT_VERTEX_BUFFERS, useVertexBuffer);
                     mIndexedDirtyBitsMask.set(DIRTY_BIT_VERTEX_BUFFERS, useVertexBuffer);
                     mCurrentGraphicsPipeline = nullptr;
@@ -1940,8 +2246,8 @@
                 // coverage. See EXT_multisample_compatibility.  http://anglebug.com/3204
                 break;
             case gl::State::DIRTY_BIT_SAMPLE_ALPHA_TO_ONE:
-                // TODO(syoussefi): this is part of EXT_multisample_compatibility.  The alphaToOne
-                // Vulkan feature should be enabled to support this extension.
+                // TODO(syoussefi): this is part of EXT_multisample_compatibility.  The
+                // alphaToOne Vulkan feature should be enabled to support this extension.
                 // http://anglebug.com/3204
                 mGraphicsPipelineDesc->updateAlphaToOneEnable(&mGraphicsPipelineTransition,
                                                               glState.isSampleAlphaToOneEnabled());
@@ -1986,10 +2292,9 @@
 angle::Result ContextVk::onMakeCurrent(const gl::Context *context)
 {
     ASSERT(mCommandGraph.empty());
-    mCurrentQueueSerial = getRenderer()->nextSerial();
 
-    // Flip viewports if FeaturesVk::flipViewportY is enabled and the user did not request that the
-    // surface is flipped.
+    // Flip viewports if FeaturesVk::flipViewportY is enabled and the user did not request that
+    // the surface is flipped.
     egl::Surface *drawSurface = context->getCurrentDrawSurface();
     mFlipYForCurrentSurface =
         drawSurface != nullptr && mRenderer->getFeatures().flipViewportY.enabled &&
@@ -2222,7 +2527,7 @@
 
     gl::Buffer *glBuffer     = getState().getTargetBuffer(gl::BufferBinding::DispatchIndirect);
     vk::BufferHelper &buffer = vk::GetImpl(glBuffer)->getBuffer();
-    buffer.onRead(&mDispatcher, VK_ACCESS_INDIRECT_COMMAND_READ_BIT);
+    buffer.onRead(this, &mDispatcher, VK_ACCESS_INDIRECT_COMMAND_READ_BIT);
 
     commandBuffer->dispatchIndirect(buffer.getBuffer(), indirect);
 
@@ -2231,11 +2536,11 @@
 
 angle::Result ContextVk::memoryBarrier(const gl::Context *context, GLbitfield barriers)
 {
-    // Note: most of the barriers specified here don't require us to issue a memory barrier, as the
-    // relevant resources already insert the appropriate barriers.  They do however require the
-    // resource writing nodes to finish so future buffer barriers are placed correctly, as well as
-    // resource dependencies not creating a graph loop.  This is done by inserting a command graph
-    // barrier that does nothing!
+    // Note: most of the barriers specified here don't require us to issue a memory barrier, as
+    // the relevant resources already insert the appropriate barriers.  They do however require
+    // the resource writing nodes to finish so future buffer barriers are placed correctly, as
+    // well as resource dependencies not creating a graph loop.  This is done by inserting a
+    // command graph barrier that does nothing!
 
     VkAccessFlags srcAccess = 0;
     VkAccessFlags dstAccess = 0;
@@ -2312,8 +2617,8 @@
             offsetDiff = static_cast<uint32_t>((offset - alignedOffset) / sizeof(uint32_t));
 
             // We expect offsetDiff to fit in an 8-bit value.  The maximum difference is
-            // minStorageBufferOffsetAlignment / 4, where minStorageBufferOffsetAlignment currently
-            // has a maximum value of 256 on any device.
+            // minStorageBufferOffsetAlignment / 4, where minStorageBufferOffsetAlignment
+            // currently has a maximum value of 256 on any device.
             ASSERT(offsetDiff < (1 << 8));
         }
 
@@ -2508,9 +2813,9 @@
 
         vk::ImageHelper &image = textureVk->getImage();
 
-        // The image should be flushed and ready to use at this point. There may still be lingering
-        // staged updates in its staging buffer for unused texture mip levels or layers. Therefore
-        // we can't verify it has no staged updates right here.
+        // The image should be flushed and ready to use at this point. There may still be
+        // lingering staged updates in its staging buffer for unused texture mip levels or
+        // layers. Therefore we can't verify it has no staged updates right here.
 
         vk::ImageLayout textureLayout = vk::ImageLayout::AllGraphicsShadersReadOnly;
         if (program->isCompute())
@@ -2529,7 +2834,7 @@
             image.changeLayout(aspectFlags, textureLayout, srcLayoutChange);
         }
 
-        image.addReadDependency(recorder);
+        image.addReadDependency(this, recorder);
 
         mActiveTextures[textureUnit].texture = textureVk;
         mActiveTextures[textureUnit].sampler = samplerVk;
@@ -2564,9 +2869,9 @@
         TextureVk *textureVk   = vk::GetImpl(texture);
         vk::ImageHelper *image = &textureVk->getImage();
 
-        // The image should be flushed and ready to use at this point. There may still be lingering
-        // staged updates in its staging buffer for unused texture mip levels or layers. Therefore
-        // we can't verify it has no staged updates right here.
+        // The image should be flushed and ready to use at this point. There may still be
+        // lingering staged updates in its staging buffer for unused texture mip levels or
+        // layers. Therefore we can't verify it has no staged updates right here.
 
         // TODO(syoussefi): make sure front-end syncs textures that are used as images (they are
         // already notified of content change).
@@ -2590,7 +2895,7 @@
             image->changeLayout(aspectFlags, imageLayout, layoutChange);
         }
 
-        image->addWriteDependency(recorder);
+        image->addWriteDependency(this, recorder);
 
         mActiveImages[imageUnitIndex] = textureVk;
     }
@@ -2604,6 +2909,11 @@
     mWaitSemaphores.push_back(waitSemaphore->getHandle());
 }
 
+bool ContextVk::shouldFlush()
+{
+    return getRenderer()->shouldCleanupGarbage();
+}
+
 angle::Result ContextVk::flushImpl(const vk::Semaphore *signalSemaphore)
 {
     if (mCommandGraph.empty() && !signalSemaphore && mWaitSemaphores.empty())
@@ -2613,34 +2923,24 @@
 
     ANGLE_TRACE_EVENT0("gpu.angle", "ContextVk::flush");
 
-    vk::DeviceScoped<vk::PrimaryCommandBuffer> commandBatch(getDevice());
-    if (ANGLE_LIKELY(!mRenderer->getFeatures().transientCommandBuffer.enabled))
-    {
-        ANGLE_TRY(mPrimaryCommandPool.alloc(this, &commandBatch.get()));
-    }
-    else
-    {
-        VkCommandBufferAllocateInfo commandBufferInfo = {};
-        commandBufferInfo.sType              = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO;
-        commandBufferInfo.commandPool        = mCommandPool.getHandle();
-        commandBufferInfo.level              = VK_COMMAND_BUFFER_LEVEL_PRIMARY;
-        commandBufferInfo.commandBufferCount = 1;
+    VkDevice device = getDevice();
 
-        ANGLE_VK_TRY(this, commandBatch.get().init(getDevice(), commandBufferInfo));
-    }
+    vk::DeviceScoped<vk::PrimaryCommandBuffer> primaryCommands(device);
+    ANGLE_TRY(
+        mCommandQueue.allocatePrimaryCommandBuffer(this, mCommandPool, &primaryCommands.get()));
 
     if (!mCommandGraph.empty())
     {
-        ANGLE_TRY(flushCommandGraph(&commandBatch.get()));
+        ANGLE_TRY(flushCommandGraph(&primaryCommands.get()));
     }
 
     waitForSwapchainImageIfNecessary();
 
     VkSubmitInfo submitInfo = {};
-    InitializeSubmitInfo(&submitInfo, commandBatch.get(), mWaitSemaphores,
+    InitializeSubmitInfo(&submitInfo, primaryCommands.get(), mWaitSemaphores,
                          &mWaitSemaphoreStageMasks, signalSemaphore);
 
-    ANGLE_TRY(submitFrame(submitInfo, commandBatch.release()));
+    ANGLE_TRY(submitFrame(submitInfo, primaryCommands.release()));
 
     mWaitSemaphores.clear();
 
@@ -2653,14 +2953,10 @@
 
     ANGLE_TRY(flushImpl(nullptr));
 
-    ANGLE_TRY(finishToSerial(mLastSubmittedQueueSerial));
-    ASSERT(mInFlightCommands.empty());
+    ANGLE_TRY(finishToSerial(getLastSubmittedQueueSerial()));
+    ASSERT(!mCommandQueue.hasInFlightCommands());
 
-    for (vk::GarbageObject &garbage : mGarbage)
-    {
-        garbage.destroy(getDevice());
-    }
-    mGarbage.clear();
+    clearAllGarbage();
 
     if (mGpuEventsEnabled)
     {
@@ -2669,9 +2965,9 @@
         {
             ANGLE_TRY(checkCompletedGpuEvents());
         }
-        // Recalculate the CPU/GPU time difference to account for clock drifting.  Avoid unnecessary
-        // synchronization if there is no event to be adjusted (happens when finish() gets called
-        // multiple times towards the end of the application).
+        // Recalculate the CPU/GPU time difference to account for clock drifting.  Avoid
+        // unnecessary synchronization if there is no event to be adjusted (happens when
+        // finish() gets called multiple times towards the end of the application).
         if (mGpuEvents.size() > 0)
         {
             ANGLE_TRY(synchronizeCpuGpuTime());
@@ -2693,55 +2989,19 @@
 
 bool ContextVk::isSerialInUse(Serial serial) const
 {
-    return serial > mLastCompletedQueueSerial;
+    return serial > getLastCompletedQueueSerial();
 }
 
 angle::Result ContextVk::checkCompletedCommands()
 {
-    VkDevice device = getDevice();
-
-    int finishedCount = 0;
-
-    for (CommandBatch &batch : mInFlightCommands)
-    {
-        VkResult result = batch.fence.get().getStatus(device);
-        if (result == VK_NOT_READY)
-        {
-            break;
-        }
-        ANGLE_VK_TRY(this, result);
-
-        ASSERT(batch.serial > mLastCompletedQueueSerial);
-        mLastCompletedQueueSerial = batch.serial;
-
-        mRenderer->resetSharedFence(&batch.fence);
-        ANGLE_TRACE_EVENT0("gpu.angle", "command batch recycling");
-        ANGLE_TRY(recycleCommandBatch(&batch));
-        ++finishedCount;
-    }
-
-    mInFlightCommands.erase(mInFlightCommands.begin(), mInFlightCommands.begin() + finishedCount);
-
-    size_t freeIndex = 0;
-    for (; freeIndex < mGarbage.size(); ++freeIndex)
-    {
-        if (!mGarbage[freeIndex].destroyIfComplete(device, mLastCompletedQueueSerial))
-            break;
-    }
-
-    // Remove the entries from the garbage list - they should be ready to go.
-    if (freeIndex > 0)
-    {
-        mGarbage.erase(mGarbage.begin(), mGarbage.begin() + freeIndex);
-    }
-
-    return angle::Result::Continue;
+    return mCommandQueue.checkCompletedCommands(this);
 }
 
 angle::Result ContextVk::finishToSerial(Serial serial)
 {
-    bool timedOut        = false;
-    angle::Result result = finishToSerialOrTimeout(serial, kMaxFenceWaitTimeNs, &timedOut);
+    bool timedOut = false;
+    angle::Result result =
+        finishToSerialOrTimeout(serial, mRenderer->getMaxFenceWaitTimeNs(), &timedOut);
 
     // Don't tolerate timeout.  If such a large wait time results in timeout, something's wrong.
     if (timedOut)
@@ -2753,63 +3013,38 @@
 
 angle::Result ContextVk::finishToSerialOrTimeout(Serial serial, uint64_t timeout, bool *outTimedOut)
 {
-    *outTimedOut = false;
-
-    if (!isSerialInUse(serial) || mInFlightCommands.empty())
-    {
-        return angle::Result::Continue;
-    }
-
-    // Find the first batch with serial equal to or bigger than given serial (note that
-    // the batch serials are unique, otherwise upper-bound would have been necessary).
-    size_t batchIndex = mInFlightCommands.size() - 1;
-    for (size_t i = 0; i < mInFlightCommands.size(); ++i)
-    {
-        if (mInFlightCommands[i].serial >= serial)
-        {
-            batchIndex = i;
-            break;
-        }
-    }
-    const CommandBatch &batch = mInFlightCommands[batchIndex];
-
-    // Wait for it finish
-    VkDevice device = getDevice();
-    VkResult status = batch.fence.get().wait(device, kMaxFenceWaitTimeNs);
-
-    // If timed out, report it as such.
-    if (status == VK_TIMEOUT)
-    {
-        *outTimedOut = true;
-        return angle::Result::Continue;
-    }
-
-    ANGLE_VK_TRY(this, status);
-
-    // Clean up finished batches.
-    return checkCompletedCommands();
+    return mCommandQueue.finishToSerialOrTimeout(this, serial, timeout, outTimedOut);
 }
 
 angle::Result ContextVk::getCompatibleRenderPass(const vk::RenderPassDesc &desc,
                                                  vk::RenderPass **renderPassOut)
 {
-    return mRenderPassCache.getCompatibleRenderPass(this, mCurrentQueueSerial, desc, renderPassOut);
+    return mRenderPassCache.getCompatibleRenderPass(this, getCurrentQueueSerial(), desc,
+                                                    renderPassOut);
 }
 
 angle::Result ContextVk::getRenderPassWithOps(const vk::RenderPassDesc &desc,
                                               const vk::AttachmentOpsArray &ops,
                                               vk::RenderPass **renderPassOut)
 {
-    return mRenderPassCache.getRenderPassWithOps(this, mCurrentQueueSerial, desc, ops,
+    return mRenderPassCache.getRenderPassWithOps(this, getCurrentQueueSerial(), desc, ops,
                                                  renderPassOut);
 }
 
+angle::Result ContextVk::ensureSubmitFenceInitialized()
+{
+    if (mSubmitFence.isReferenced())
+    {
+        return angle::Result::Continue;
+    }
+
+    return mRenderer->newSharedFence(this, &mSubmitFence);
+}
+
 angle::Result ContextVk::getNextSubmitFence(vk::Shared<vk::Fence> *sharedFenceOut)
 {
-    if (!mSubmitFence.isReferenced())
-    {
-        ANGLE_TRY(getRenderer()->newSharedFence(this, &mSubmitFence));
-    }
+    ANGLE_TRY(ensureSubmitFenceInitialized());
+
     ASSERT(!sharedFenceOut->isReferenced());
     sharedFenceOut->copy(getDevice(), mSubmitFence);
     return angle::Result::Continue;
@@ -2817,42 +3052,32 @@
 
 vk::Shared<vk::Fence> ContextVk::getLastSubmittedFence() const
 {
-    vk::Shared<vk::Fence> fence;
-    if (!mInFlightCommands.empty())
-    {
-        fence.copy(getDevice(), mInFlightCommands.back().fence);
-    }
-
-    return fence;
-}
-
-vk::CommandGraph *ContextVk::getCommandGraph()
-{
-    return &mCommandGraph;
+    return mCommandQueue.getLastSubmittedFence(this);
 }
 
 angle::Result ContextVk::getTimestamp(uint64_t *timestampOut)
 {
-    // The intent of this function is to query the timestamp without stalling the GPU.  Currently,
-    // that seems impossible, so instead, we are going to make a small submission with just a
-    // timestamp query.  First, the disjoint timer query extension says:
+    // The intent of this function is to query the timestamp without stalling the GPU.
+    // Currently, that seems impossible, so instead, we are going to make a small submission
+    // with just a timestamp query.  First, the disjoint timer query extension says:
     //
     // > This will return the GL time after all previous commands have reached the GL server but
     // have not yet necessarily executed.
     //
-    // The previous commands are stored in the command graph at the moment and are not yet flushed.
-    // The wording allows us to make a submission to get the timestamp without performing a flush.
+    // The previous commands are stored in the command graph at the moment and are not yet
+    // flushed. The wording allows us to make a submission to get the timestamp without
+    // performing a flush.
     //
     // Second:
     //
-    // > By using a combination of this synchronous get command and the asynchronous timestamp query
-    // object target, applications can measure the latency between when commands reach the GL server
-    // and when they are realized in the framebuffer.
+    // > By using a combination of this synchronous get command and the asynchronous timestamp
+    // query object target, applications can measure the latency between when commands reach the
+    // GL server and when they are realized in the framebuffer.
     //
-    // This fits with the above strategy as well, although inevitably we are possibly introducing a
-    // GPU bubble.  This function directly generates a command buffer and submits it instead of
-    // using the other member functions.  This is to avoid changing any state, such as the queue
-    // serial.
+    // This fits with the above strategy as well, although inevitably we are possibly
+    // introducing a GPU bubble.  This function directly generates a command buffer and submits
+    // it instead of using the other member functions.  This is to avoid changing any state,
+    // such as the queue serial.
 
     // Create a query used to receive the GPU timestamp
     VkDevice device = getDevice();
@@ -2865,20 +3090,7 @@
     vk::DeviceScoped<vk::PrimaryCommandBuffer> commandBatch(device);
     vk::PrimaryCommandBuffer &commandBuffer = commandBatch.get();
 
-    if (ANGLE_LIKELY(!mRenderer->getFeatures().transientCommandBuffer.enabled))
-    {
-        ANGLE_TRY(mPrimaryCommandPool.alloc(this, &commandBuffer));
-    }
-    else
-    {
-        VkCommandBufferAllocateInfo commandBufferInfo = {};
-        commandBufferInfo.sType              = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO;
-        commandBufferInfo.commandPool        = mCommandPool.getHandle();
-        commandBufferInfo.level              = VK_COMMAND_BUFFER_LEVEL_PRIMARY;
-        commandBufferInfo.commandBufferCount = 1;
-
-        ANGLE_VK_TRY(this, commandBuffer.init(device, commandBufferInfo));
-    }
+    ANGLE_TRY(mCommandQueue.allocatePrimaryCommandBuffer(this, mCommandPool, &commandBuffer));
 
     VkCommandBufferBeginInfo beginInfo = {};
     beginInfo.sType                    = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO;
@@ -2914,11 +3126,12 @@
     submitInfo.signalSemaphoreCount = 0;
     submitInfo.pSignalSemaphores    = nullptr;
 
-    ANGLE_TRY(getRenderer()->queueSubmit(this, submitInfo, fence.get()));
+    Serial throwAwaySerial;
+    ANGLE_TRY(mRenderer->queueSubmit(this, submitInfo, fence.get(), &throwAwaySerial));
 
     // Wait for the submission to finish.  Given no semaphores, there is hope that it would execute
     // in parallel with what's already running on the GPU.
-    ANGLE_VK_TRY(this, fence.get().wait(device, kMaxFenceWaitTimeNs));
+    ANGLE_VK_TRY(this, fence.get().wait(device, mRenderer->getMaxFenceWaitTimeNs()));
 
     // Get the query results
     constexpr VkQueryResultFlags queryFlags = VK_QUERY_RESULT_WAIT_BIT | VK_QUERY_RESULT_64_BIT;
@@ -2934,16 +3147,7 @@
         *timestampOut *
         static_cast<double>(getRenderer()->getPhysicalDeviceProperties().limits.timestampPeriod));
 
-    if (ANGLE_LIKELY(!mRenderer->getFeatures().transientCommandBuffer.enabled))
-    {
-        ANGLE_TRY(mPrimaryCommandPool.collect(this, commandBatch.release()));
-    }
-    else
-    {
-        commandBatch.get().destroy(getDevice());
-    }
-
-    return angle::Result::Continue;
+    return mCommandQueue.releasePrimaryCommandBuffer(this, commandBatch.release());
 }
 
 void ContextVk::invalidateDefaultAttribute(size_t attribIndex)
@@ -2981,6 +3185,7 @@
     ANGLE_TRY(defaultBuffer.flush(this));
 
     mVertexArray->updateDefaultAttrib(this, attribIndex, bufferHandle,
+                                      defaultBuffer.getCurrentBuffer(),
                                       static_cast<uint32_t>(offset));
     return angle::Result::Continue;
 }
@@ -2993,7 +3198,7 @@
         if (waitSemaphore.valid())
         {
             addWaitSemaphore(waitSemaphore.getHandle());
-            releaseObject(getCurrentQueueSerial(), &waitSemaphore);
+            addGarbage(&waitSemaphore);
         }
     }
 }
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ContextVk.h b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ContextVk.h
index edfcea4..b5049f9 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ContextVk.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ContextVk.h
@@ -29,6 +29,74 @@
 class RendererVk;
 class WindowSurfaceVk;
 
+struct CommandBatch final : angle::NonCopyable
+{
+    CommandBatch();
+    ~CommandBatch();
+    CommandBatch(CommandBatch &&other);
+    CommandBatch &operator=(CommandBatch &&other);
+
+    void destroy(VkDevice device);
+
+    vk::PrimaryCommandBuffer primaryCommands;
+    // commandPool is for secondary CommandBuffer allocation
+    vk::CommandPool commandPool;
+    vk::Shared<vk::Fence> fence;
+    Serial serial;
+};
+
+class CommandQueue final : angle::NonCopyable
+{
+  public:
+    CommandQueue();
+    ~CommandQueue();
+
+    angle::Result init(vk::Context *context);
+    void destroy(VkDevice device);
+    void handleDeviceLost(RendererVk *renderer);
+
+    bool hasInFlightCommands() const;
+
+    angle::Result allocatePrimaryCommandBuffer(vk::Context *context,
+                                               const vk::CommandPool &commandPool,
+                                               vk::PrimaryCommandBuffer *commandBufferOut);
+    angle::Result releasePrimaryCommandBuffer(vk::Context *context,
+                                              vk::PrimaryCommandBuffer &&commandBuffer);
+
+    void clearAllGarbage(VkDevice device);
+
+    angle::Result finishToSerialOrTimeout(vk::Context *context,
+                                          Serial serial,
+                                          uint64_t timeout,
+                                          bool *outTimedOut);
+
+    angle::Result submitFrame(vk::Context *context,
+                              const VkSubmitInfo &submitInfo,
+                              const vk::Shared<vk::Fence> &sharedFence,
+                              vk::GarbageList *currentGarbage,
+                              vk::CommandPool *commandPool,
+                              vk::PrimaryCommandBuffer &&commandBuffer);
+
+    vk::Shared<vk::Fence> getLastSubmittedFence(const vk::Context *context) const;
+
+    // Check to see which batches have finished completion (forward progress for
+    // mLastCompletedQueueSerial, for example for when the application busy waits on a query
+    // result). It would be nice if we didn't have to expose this for QueryVk::getResult.
+    angle::Result checkCompletedCommands(vk::Context *context);
+
+  private:
+    angle::Result releaseToCommandBatch(vk::Context *context,
+                                        vk::PrimaryCommandBuffer &&commandBuffer,
+                                        vk::CommandPool *commandPool,
+                                        CommandBatch *batch);
+
+    vk::GarbageQueue mGarbageQueue;
+    std::vector<CommandBatch> mInFlightCommands;
+
+    // Keeps a free list of reusable primary command buffers.
+    vk::PersistentCommandPool mPrimaryCommandPool;
+};
+
 class ContextVk : public ContextImpl, public vk::Context, public vk::RenderPassOwner
 {
   public:
@@ -213,9 +281,10 @@
                                               GLuint relativeOffset)
     {
         invalidateVertexAndIndexBuffers();
-        mGraphicsPipelineDesc->updateVertexInput(&mGraphicsPipelineTransition,
-                                                 static_cast<uint32_t>(attribIndex), stride,
-                                                 divisor, format, relativeOffset);
+        // Set divisor to 1 for attribs with emulated divisor
+        mGraphicsPipelineDesc->updateVertexInput(
+            &mGraphicsPipelineTransition, static_cast<uint32_t>(attribIndex), stride,
+            divisor > mRenderer->getMaxVertexAttribDivisor() ? 1 : divisor, format, relativeOffset);
     }
 
     void invalidateDefaultAttribute(size_t attribIndex);
@@ -255,6 +324,7 @@
 
     void insertWaitSemaphore(const vk::Semaphore *waitSemaphore);
 
+    bool shouldFlush();
     angle::Result flushImpl(const vk::Semaphore *semaphore);
     angle::Result finishImpl();
 
@@ -262,28 +332,22 @@
 
     const vk::CommandPool &getCommandPool() const;
 
-    Serial getCurrentQueueSerial() const { return mCurrentQueueSerial; }
-    Serial getLastSubmittedQueueSerial() const { return mLastSubmittedQueueSerial; }
-    Serial getLastCompletedQueueSerial() const { return mLastCompletedQueueSerial; }
+    Serial getCurrentQueueSerial() const { return mRenderer->getCurrentQueueSerial(); }
+    Serial getLastSubmittedQueueSerial() const { return mRenderer->getLastSubmittedQueueSerial(); }
+    Serial getLastCompletedQueueSerial() const { return mRenderer->getLastCompletedQueueSerial(); }
 
     bool isSerialInUse(Serial serial) const;
 
     template <typename T>
-    void releaseObject(Serial resourceSerial, T *object)
+    void addGarbage(T *object)
     {
-        if (!isSerialInUse(resourceSerial))
+        if (object->valid())
         {
-            object->destroy(getDevice());
-        }
-        else
-        {
-            object->dumpResources(resourceSerial, &mGarbage);
+            mCurrentGarbage.emplace_back(vk::GetGarbage(object));
         }
     }
 
-    // Check to see which batches have finished completion (forward progress for
-    // mLastCompletedQueueSerial, for example for when the application busy waits on a query
-    // result).
+    // It would be nice if we didn't have to expose this for QueryVk::getResult.
     angle::Result checkCompletedCommands();
 
     // Wait for completion of batches until (at least) batch with given serial is finished.
@@ -302,7 +366,7 @@
     vk::Shared<vk::Fence> getLastSubmittedFence() const;
 
     // This should only be called from ResourceVk.
-    vk::CommandGraph *getCommandGraph();
+    vk::CommandGraph *getCommandGraph() { return &mCommandGraph; }
 
     vk::ShaderLibrary &getShaderLibrary() { return mShaderLibrary; }
     UtilsVk &getUtils() { return mUtils; }
@@ -362,8 +426,20 @@
     using DirtyBitHandler = angle::Result (ContextVk::*)(const gl::Context *,
                                                          vk::CommandBuffer *commandBuffer);
 
-    std::array<DirtyBitHandler, DIRTY_BIT_MAX> mGraphicsDirtyBitHandlers;
-    std::array<DirtyBitHandler, DIRTY_BIT_MAX> mComputeDirtyBitHandlers;
+    struct DriverUniformsDescriptorSet
+    {
+        vk::DynamicBuffer dynamicBuffer;
+        VkDescriptorSet descriptorSet;
+        uint32_t dynamicOffset;
+        vk::BindingPointer<vk::DescriptorSetLayout> descriptorSetLayout;
+        vk::RefCountedDescriptorPoolBinding descriptorPoolBinding;
+
+        DriverUniformsDescriptorSet();
+        ~DriverUniformsDescriptorSet();
+
+        void init(RendererVk *rendererVk);
+        void destroy(VkDevice device);
+    };
 
     enum class PipelineType
     {
@@ -374,9 +450,46 @@
         EnumCount   = 2,
     };
 
+    // The GpuEventQuery struct holds together a timestamp query and enough data to create a
+    // trace event based on that. Use traceGpuEvent to insert such queries.  They will be readback
+    // when the results are available, without inserting a GPU bubble.
+    //
+    // - eventName will be the reported name of the event
+    // - phase is either 'B' (duration begin), 'E' (duration end) or 'i' (instant // event).
+    //   See Google's "Trace Event Format":
+    //   https://docs.google.com/document/d/1CvAClvFfyA5R-PhYUmn5OOQtYMH4h6I0nSsKchNAySU
+    // - serial is the serial of the batch the query was submitted on.  Until the batch is
+    //   submitted, the query is not checked to avoid incuring a flush.
+    struct GpuEventQuery final
+    {
+        const char *name;
+        char phase;
+
+        uint32_t queryIndex;
+        size_t queryPoolIndex;
+
+        Serial serial;
+    };
+
+    // Once a query result is available, the timestamp is read and a GpuEvent object is kept until
+    // the next clock sync, at which point the clock drift is compensated in the results before
+    // handing them off to the application.
+    struct GpuEvent final
+    {
+        uint64_t gpuTimestampCycles;
+        const char *name;
+        char phase;
+    };
+
+    struct GpuClockSyncInfo
+    {
+        double gpuTimestampS;
+        double cpuTimestampS;
+    };
+
     angle::Result setupDraw(const gl::Context *context,
                             gl::PrimitiveMode mode,
-                            GLint firstVertex,
+                            GLint firstVertexOrInvalid,
                             GLsizei vertexOrIndexCount,
                             GLsizei instanceCount,
                             gl::DrawElementsType indexTypeOrInvalid,
@@ -390,6 +503,31 @@
                                    gl::DrawElementsType indexType,
                                    const void *indices,
                                    vk::CommandBuffer **commandBufferOut);
+    angle::Result setupIndirectDraw(const gl::Context *context,
+                                    gl::PrimitiveMode mode,
+                                    DirtyBits dirtyBitMask,
+                                    vk::CommandBuffer **commandBufferOut,
+                                    vk::Buffer **indirectBufferOut);
+    angle::Result setupIndirectDrawHelper(const gl::Context *context,
+                                          gl::PrimitiveMode mode,
+                                          DirtyBits dirtyBitMask,
+                                          vk::CommandBuffer **commandBufferOut);
+    angle::Result setupIndexedIndirectDraw(const gl::Context *context,
+                                           gl::PrimitiveMode mode,
+                                           gl::DrawElementsType indexType,
+                                           vk::CommandBuffer **commandBufferOut,
+                                           vk::Buffer **indirectBufferOut);
+
+    angle::Result setupLineLoopIndexedIndirectDraw(const gl::Context *context,
+                                                   gl::PrimitiveMode mode,
+                                                   gl::DrawElementsType indexType,
+                                                   const gl::Buffer *indirectBuffer,
+                                                   VkDeviceSize indirectBufferOffset,
+                                                   const gl::Buffer *indexBuffer,
+                                                   vk::CommandBuffer **commandBufferOut,
+                                                   vk::Buffer **indirectBufferOut,
+                                                   VkDeviceSize *indirectBufferOffsetOut);
+
     angle::Result setupLineLoopDraw(const gl::Context *context,
                                     gl::PrimitiveMode mode,
                                     GLint firstVertex,
@@ -469,7 +607,6 @@
     angle::Result handleDirtyShaderResourcesImpl(const gl::Context *context,
                                                  vk::CommandBuffer *commandBuffer,
                                                  vk::CommandGraphResource *recorder);
-    struct DriverUniformsDescriptorSet;
     angle::Result handleDirtyDescriptorSetsImpl(vk::CommandBuffer *commandBuffer,
                                                 VkPipelineBindPoint bindPoint,
                                                 const DriverUniformsDescriptorSet &driverUniforms);
@@ -495,14 +632,15 @@
                                     const char *name);
     angle::Result checkCompletedGpuEvents();
     void flushGpuEvents(double nextSyncGpuTimestampS, double nextSyncCpuTimestampS);
-
     void handleDeviceLost();
-
     void waitForSwapchainImageIfNecessary();
-
     bool shouldEmulateSeamfulCubeMapSampling() const;
-
     bool shouldUseOldRewriteStructSamplers() const;
+    void clearAllGarbage();
+    angle::Result ensureSubmitFenceInitialized();
+
+    std::array<DirtyBitHandler, DIRTY_BIT_MAX> mGraphicsDirtyBitHandlers;
+    std::array<DirtyBitHandler, DIRTY_BIT_MAX> mComputeDirtyBitHandlers;
 
     vk::PipelineHelper *mCurrentGraphicsPipeline;
     vk::PipelineAndSerial *mCurrentComputePipeline;
@@ -572,21 +710,6 @@
     // RewriteStructSamplers pass.
     bool mUseOldRewriteStructSamplers;
 
-    struct DriverUniformsDescriptorSet
-    {
-        vk::DynamicBuffer dynamicBuffer;
-        VkDescriptorSet descriptorSet;
-        uint32_t dynamicOffset;
-        vk::BindingPointer<vk::DescriptorSetLayout> descriptorSetLayout;
-        vk::RefCountedDescriptorPoolBinding descriptorPoolBinding;
-
-        DriverUniformsDescriptorSet();
-        ~DriverUniformsDescriptorSet();
-
-        void init(RendererVk *rendererVk);
-        void destroy(VkDevice device);
-    };
-
     angle::PackedEnumMap<PipelineType, DriverUniformsDescriptorSet> mDriverUniforms;
 
     // This cache should also probably include the texture index (shader location) and array
@@ -604,35 +727,8 @@
     vk::CommandPool mCommandPool;
     std::vector<vk::CommandPool> mCommandPoolFreeList;
 
-    // We use a Persistent CommandPool with pre-allocated buffers for primary CommandBuffer
-    vk::PersistentCommandPool mPrimaryCommandPool;
-
-    Serial mLastCompletedQueueSerial;
-    Serial mLastSubmittedQueueSerial;
-    Serial mCurrentQueueSerial;
-
-    struct CommandBatch final : angle::NonCopyable
-    {
-        CommandBatch();
-        ~CommandBatch();
-        CommandBatch(CommandBatch &&other);
-        CommandBatch &operator=(CommandBatch &&other);
-
-        void destroy(VkDevice device);
-
-        vk::PrimaryCommandBuffer primaryCommands;
-        // commandPool is for secondary CommandBuffer allocation
-        vk::CommandPool commandPool;
-        vk::Shared<vk::Fence> fence;
-        Serial serial;
-    };
-
-    angle::Result releaseToCommandBatch(vk::PrimaryCommandBuffer &&commandBuffer,
-                                        CommandBatch *batch);
-    angle::Result recycleCommandBatch(CommandBatch *batch);
-
-    std::vector<CommandBatch> mInFlightCommands;
-    std::vector<vk::GarbageObject> mGarbage;
+    CommandQueue mCommandQueue;
+    vk::GarbageList mCurrentGarbage;
 
     RenderPassCache mRenderPassCache;
 
@@ -654,37 +750,6 @@
     vk::ShaderLibrary mShaderLibrary;
     UtilsVk mUtils;
 
-    // The GpuEventQuery struct holds together a timestamp query and enough data to create a
-    // trace event based on that. Use traceGpuEvent to insert such queries.  They will be readback
-    // when the results are available, without inserting a GPU bubble.
-    //
-    // - eventName will be the reported name of the event
-    // - phase is either 'B' (duration begin), 'E' (duration end) or 'i' (instant // event).
-    //   See Google's "Trace Event Format":
-    //   https://docs.google.com/document/d/1CvAClvFfyA5R-PhYUmn5OOQtYMH4h6I0nSsKchNAySU
-    // - serial is the serial of the batch the query was submitted on.  Until the batch is
-    //   submitted, the query is not checked to avoid incuring a flush.
-    struct GpuEventQuery final
-    {
-        const char *name;
-        char phase;
-
-        uint32_t queryIndex;
-        size_t queryPoolIndex;
-
-        Serial serial;
-    };
-
-    // Once a query result is available, the timestamp is read and a GpuEvent object is kept until
-    // the next clock sync, at which point the clock drift is compensated in the results before
-    // handing them off to the application.
-    struct GpuEvent final
-    {
-        uint64_t gpuTimestampCycles;
-        const char *name;
-        char phase;
-    };
-
     bool mGpuEventsEnabled;
     vk::DynamicQueryPool mGpuEventQueryPool;
     // A list of queries that have yet to be turned into an event (their result is not yet
@@ -698,11 +763,6 @@
     std::vector<VkPipelineStageFlags> mWaitSemaphoreStageMasks;
 
     // Hold information from the last gpu clock sync for future gpu-to-cpu timestamp conversions.
-    struct GpuClockSyncInfo
-    {
-        double gpuTimestampS;
-        double cpuTimestampS;
-    };
     GpuClockSyncInfo mGpuClockSync;
 
     // The very first timestamp queried for a GPU event is used as origin, so event timestamps would
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/DeviceVk.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/DeviceVk.cpp
index 900f0ea..5d5883f 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/DeviceVk.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/DeviceVk.cpp
@@ -24,7 +24,7 @@
     return egl::NoError();
 }
 
-egl::Error DeviceVk::getDevice(void **outValue)
+egl::Error DeviceVk::getAttribute(const egl::Display *display, EGLint attribute, void **outValue)
 {
     UNIMPLEMENTED();
     return egl::EglBadAccess();
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/DeviceVk.h b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/DeviceVk.h
index 8a6e52c..a0c50ff 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/DeviceVk.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/DeviceVk.h
@@ -22,7 +22,9 @@
     ~DeviceVk() override;
 
     egl::Error initialize() override;
-    egl::Error getDevice(void **outValue) override;
+    egl::Error getAttribute(const egl::Display *display,
+                            EGLint attribute,
+                            void **outValue) override;
     EGLint getType() override;
     void generateExtensions(egl::DeviceExtensions *outExtensions) const override;
 };
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/DisplayVk.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/DisplayVk.cpp
index cd929f6..bad2c8b 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/DisplayVk.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/DisplayVk.cpp
@@ -196,6 +196,8 @@
     outExtensions->glRenderbufferImage   = true;
     outExtensions->imageNativeBuffer =
         getRenderer()->getFeatures().supportsAndroidHardwareBuffer.enabled;
+
+    outExtensions->noConfigContext = true;
 }
 
 void DisplayVk::generateCaps(egl::Caps *outCaps) const
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/FramebufferVk.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/FramebufferVk.cpp
index 49247b6..42e7446 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/FramebufferVk.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/FramebufferVk.cpp
@@ -181,7 +181,7 @@
     ContextVk *contextVk = vk::GetImpl(context);
     mFramebuffer.release(contextVk);
 
-    mReadPixelBuffer.release(contextVk);
+    mReadPixelBuffer.release(contextVk->getRenderer());
 }
 
 angle::Result FramebufferVk::discard(const gl::Context *context,
@@ -195,11 +195,12 @@
                                         size_t count,
                                         const GLenum *attachments)
 {
-    mFramebuffer.updateQueueSerial(vk::GetImpl(context)->getCurrentQueueSerial());
+    ContextVk *contextVk = vk::GetImpl(context);
+    mFramebuffer.onGraphAccess(contextVk->getCommandGraph());
 
     if (mFramebuffer.valid() && mFramebuffer.hasStartedRenderPass())
     {
-        invalidateImpl(vk::GetImpl(context), count, attachments);
+        invalidateImpl(contextVk, count, attachments);
     }
 
     return angle::Result::Continue;
@@ -210,14 +211,15 @@
                                            const GLenum *attachments,
                                            const gl::Rectangle &area)
 {
-    mFramebuffer.updateQueueSerial(vk::GetImpl(context)->getCurrentQueueSerial());
+    ContextVk *contextVk = vk::GetImpl(context);
+    mFramebuffer.onGraphAccess(contextVk->getCommandGraph());
 
     // RenderPass' storeOp cannot be made conditional to a specific region, so we only apply this
     // hint if the requested area encompasses the render area.
     if (mFramebuffer.valid() && mFramebuffer.hasStartedRenderPass() &&
         area.encloses(mFramebuffer.getRenderPassRenderArea()))
     {
-        invalidateImpl(vk::GetImpl(context), count, attachments);
+        invalidateImpl(contextVk, count, attachments);
     }
 
     return angle::Result::Continue;
@@ -261,7 +263,7 @@
         return angle::Result::Continue;
     }
 
-    mFramebuffer.updateQueueSerial(contextVk->getCurrentQueueSerial());
+    mFramebuffer.updateCurrentAccessNodes();
 
     // This function assumes that only enabled attachments are asked to be cleared.
     ASSERT((clearColorBuffers & mState.getEnabledDrawBuffers()) == clearColorBuffers);
@@ -462,7 +464,14 @@
 
 GLenum FramebufferVk::getImplementationColorReadType(const gl::Context *context) const
 {
-    return GetReadAttachmentInfo(context, mRenderTargetCache.getColorRead(mState)).type;
+    GLenum readType = GetReadAttachmentInfo(context, mRenderTargetCache.getColorRead(mState)).type;
+    if (context->getClientMajorVersion() < 3 && readType == GL_HALF_FLOAT)
+    {
+        // GL_HALF_FLOAT was not introduced until GLES 3.0, and has a different value from
+        // GL_HALF_FLOAT_OES
+        readType = GL_HALF_FLOAT_OES;
+    }
+    return readType;
 }
 
 angle::Result FramebufferVk::readPixels(const gl::Context *context,
@@ -557,7 +566,7 @@
     ASSERT(colorBlit != (depthBlit || stencilBlit));
 
     vk::ImageHelper *srcImage = &readRenderTarget->getImage();
-    vk::ImageHelper *dstImage = drawRenderTarget->getImageForWrite(&mFramebuffer);
+    vk::ImageHelper *dstImage = drawRenderTarget->getImageForWrite(contextVk, &mFramebuffer);
 
     VkImageAspectFlags imageAspectMask = srcImage->getAspectFlags();
     VkImageAspectFlags blitAspectMask  = imageAspectMask;
@@ -582,7 +591,7 @@
     vk::CommandBuffer *commandBuffer = nullptr;
     ANGLE_TRY(mFramebuffer.recordCommands(contextVk, &commandBuffer));
 
-    srcImage->addReadDependency(&mFramebuffer);
+    srcImage->addReadDependency(contextVk, &mFramebuffer);
 
     VkImageBlit blit                   = {};
     blit.srcSubresource.aspectMask     = blitAspectMask;
@@ -812,7 +821,7 @@
         else
         {
             ANGLE_TRY(utilsVk.colorBlitResolve(contextVk, this, &readRenderTarget->getImage(),
-                                               readRenderTarget->getFetchImageView(), params));
+                                               readRenderTarget->getReadImageView(), params));
         }
     }
 
@@ -890,8 +899,8 @@
             vk::ImageView depthViewObject   = depthView.release();
             vk::ImageView stencilViewObject = stencilView.release();
 
-            contextVk->releaseObject(contextVk->getCurrentQueueSerial(), &depthViewObject);
-            contextVk->releaseObject(contextVk->getCurrentQueueSerial(), &stencilViewObject);
+            contextVk->addGarbage(&depthViewObject);
+            contextVk->addGarbage(&stencilViewObject);
         }
     }
 
@@ -914,7 +923,7 @@
     ANGLE_TRY(mFramebuffer.recordCommands(contextVk, &commandBuffer));
 
     // Source's layout change should happen before rendering
-    srcImage->addReadDependency(&mFramebuffer);
+    srcImage->addReadDependency(contextVk, &mFramebuffer);
 
     VkImageResolve resolveRegion                = {};
     resolveRegion.srcSubresource.aspectMask     = VK_IMAGE_ASPECT_COLOR_BIT;
@@ -936,7 +945,7 @@
     for (size_t colorIndexGL : mState.getEnabledDrawBuffers())
     {
         RenderTargetVk *drawRenderTarget = mRenderTargetCache.getColors()[colorIndexGL];
-        vk::ImageHelper *drawImage       = drawRenderTarget->getImageForWrite(&mFramebuffer);
+        vk::ImageHelper *drawImage = drawRenderTarget->getImageForWrite(contextVk, &mFramebuffer);
         drawImage->changeLayout(VK_IMAGE_ASPECT_COLOR_BIT, vk::ImageLayout::TransferDst,
                                 commandBuffer);
 
@@ -1436,8 +1445,8 @@
     ANGLE_TRY(mFramebuffer.recordCommands(contextVk, &commandBuffer));
 
     // Note that although we're reading from the image, we need to update the layout below.
-    vk::ImageHelper *srcImage =
-        renderTarget->getImageForRead(&mFramebuffer, vk::ImageLayout::TransferSrc, commandBuffer);
+    vk::ImageHelper *srcImage = renderTarget->getImageForRead(
+        contextVk, &mFramebuffer, vk::ImageLayout::TransferSrc, commandBuffer);
 
     const angle::Format *readFormat = &srcImage->getFormat().imageFormat();
 
@@ -1476,7 +1485,7 @@
             contextVk, renderer->getMemoryProperties(), gl::Extents(area.width, area.height, 1),
             srcImage->getFormat(),
             VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT, 1));
-        resolvedImage.get().updateQueueSerial(contextVk->getCurrentQueueSerial());
+        resolvedImage.get().onGraphAccess(contextVk->getCommandGraph());
 
         // Note: resolve only works on color images (not depth/stencil).
         //
@@ -1595,7 +1604,7 @@
     // is too small, we need to start a new one.  The latter can happen if a scissored clear starts
     // a render pass, the scissor is disabled and a draw call is issued to affect the whole
     // framebuffer.
-    mFramebuffer.updateQueueSerial(contextVk->getCurrentQueueSerial());
+    mFramebuffer.updateCurrentAccessNodes();
     if (mFramebuffer.hasStartedRenderPass() &&
         !mFramebuffer.getRenderPassRenderArea().encloses(scissoredRenderArea))
     {
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/FramebufferVk.h b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/FramebufferVk.h
index f5d0a38..539a8b2 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/FramebufferVk.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/FramebufferVk.h
@@ -112,12 +112,11 @@
     RenderTargetVk *getColorReadRenderTarget() const;
 
     // This will clear the current write operation if it is complete.
-    bool appendToStartedRenderPass(Serial currentQueueSerial,
+    bool appendToStartedRenderPass(vk::CommandGraph *graph,
                                    const gl::Rectangle &renderArea,
                                    vk::CommandBuffer **commandBufferOut)
     {
-        return mFramebuffer.appendToStartedRenderPass(currentQueueSerial, renderArea,
-                                                      commandBufferOut);
+        return mFramebuffer.appendToStartedRenderPass(graph, renderArea, commandBufferOut);
     }
 
     vk::FramebufferHelper *getFramebuffer() { return &mFramebuffer; }
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/GlslangWrapper.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/GlslangWrapper.cpp
index 883d1e5..d40668d 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/GlslangWrapper.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/GlslangWrapper.cpp
@@ -102,6 +102,7 @@
     void init(const std::string &source);
     bool empty() const { return mTokens.empty(); }
 
+    bool findTokenName(const std::string &name);
     // Find @@ LAYOUT-name(extra, args) @@ and replace it with:
     //
     //     layout(specifier, extra, args)
@@ -280,6 +281,18 @@
     }
 }
 
+bool IntermediateShaderSource::findTokenName(const std::string &name)
+{
+    for (Token &block : mTokens)
+    {
+        if (block.text == name)
+        {
+            return true;
+        }
+    }
+    return false;
+}
+
 void IntermediateShaderSource::insertLayoutSpecifier(const std::string &name,
                                                      const std::string &specifier)
 {
@@ -497,7 +510,7 @@
 
     // Parse attribute locations and replace them in the vertex shader.
     // See corresponding code in OutputVulkanGLSL.cpp.
-    for (const sh::ShaderVariable &attribute : programState.getAttributes())
+    for (const sh::ShaderVariable &attribute : programState.getProgramInputs())
     {
         // Warning: If we end up supporting ES 3.0 shaders and up, Program::linkAttributes is
         // going to bring us all attributes in this list instead of only the active ones.
@@ -509,13 +522,6 @@
     }
 }
 
-std::string RemoveArrayZeroSubscript(const std::string &expression)
-{
-    ASSERT(expression.size() > 3);
-    ASSERT(expression.substr(expression.size() - 3) == "[0]");
-    return expression.substr(0, expression.size() - 3);
-}
-
 void AssignOutputLocations(const gl::ProgramState &programState,
                            IntermediateShaderSource *fragmentSource)
 {
@@ -532,21 +538,7 @@
         {
             const sh::ShaderVariable &outputVar = outputVariables[outputLocation.index];
 
-            // In the following:
-            //
-            //     out vec4 fragOutput[N];
-            //
-            // The varying name is |fragOutput[0]|.  We need to remove the extra |[0]|.
             std::string name = outputVar.name;
-            if (outputVar.isArray())
-            {
-                name = RemoveArrayZeroSubscript(name);
-                if (outputVar.isArrayOfArrays())
-                {
-                    name = RemoveArrayZeroSubscript(name);
-                }
-            }
-
             std::string locationString;
             if (outputVar.location != -1)
             {
@@ -567,7 +559,8 @@
     }
 }
 
-void AssignVaryingLocations(const gl::ProgramLinkedResources &resources,
+void AssignVaryingLocations(const gl::ProgramState &programState,
+                            const gl::ProgramLinkedResources &resources,
                             IntermediateShaderSource *outStageSource,
                             IntermediateShaderSource *inStageSource)
 {
@@ -607,6 +600,16 @@
         const std::string &name =
             varying.isStructField() ? varying.parentStructName : varying.varying->name;
 
+        // Varings are from 3 stage of shader sources
+        // To match pair of (out - in) qualifier, varying should be in the pair of shader source
+        if (!outStageSource->findTokenName(name) || !inStageSource->findTokenName(name))
+        {
+            // Pair can be unmatching at transform feedback case,
+            // But it requires qualifier.
+            if (!varying.vertexOnly)
+                continue;
+        }
+
         outStageSource->insertLayoutSpecifier(name, locationString);
         inStageSource->insertLayoutSpecifier(name, locationString);
 
@@ -939,18 +942,29 @@
 
     IntermediateShaderSource *vertexSource   = &intermediateSources[gl::ShaderType::Vertex];
     IntermediateShaderSource *fragmentSource = &intermediateSources[gl::ShaderType::Fragment];
+    IntermediateShaderSource *geometrySource = &intermediateSources[gl::ShaderType::Geometry];
 
-    if (!vertexSource->empty())
+    if (!geometrySource->empty())
+    {
+        AssignOutputLocations(programState, fragmentSource);
+        AssignVaryingLocations(programState, resources, geometrySource, fragmentSource);
+        if (!vertexSource->empty())
+        {
+            AssignAttributeLocations(programState, vertexSource);
+            AssignVaryingLocations(programState, resources, vertexSource, geometrySource);
+        }
+    }
+    else if (!vertexSource->empty())
     {
         AssignAttributeLocations(programState, vertexSource);
         AssignOutputLocations(programState, fragmentSource);
-        AssignVaryingLocations(resources, vertexSource, fragmentSource);
+        AssignVaryingLocations(programState, resources, vertexSource, fragmentSource);
     }
     else if (!fragmentSource->empty())
     {
         AssignAttributeLocations(programState, fragmentSource);
         AssignOutputLocations(programState, fragmentSource);
-        AssignVaryingLocations(resources, vertexSource, fragmentSource);
+        AssignVaryingLocations(programState, resources, vertexSource, fragmentSource);
     }
     AssignUniformBindings(&intermediateSources);
     AssignTextureBindings(useOldRewriteStructSamplers, programState, &intermediateSources);
@@ -1005,6 +1019,14 @@
                                                kVersionDefine, kLineRasterDefine),
                        VK_ERROR_INVALID_SHADER_NV);
 
+        if (!shaderSources[gl::ShaderType::Geometry].empty())
+        {
+            ANGLE_VK_CHECK(context,
+                           angle::ReplaceSubstring(&patchedSources[gl::ShaderType::Geometry],
+                                                   kVersionDefine, kLineRasterDefine),
+                           VK_ERROR_INVALID_SHADER_NV);
+        }
+
         return GetShaderCodeImpl(context, glCaps, patchedSources, shaderCodeOut);
     }
     else
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ImageVk.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ImageVk.cpp
index 1205a7f..ec1599f 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ImageVk.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ImageVk.cpp
@@ -32,33 +32,19 @@
     DisplayVk *displayVk = vk::GetImpl(display);
     RendererVk *renderer = displayVk->getRenderer();
 
-    std::vector<vk::GarbageObjectBase> garbage;
-
     if (mImage != nullptr && mOwnsImage)
     {
-        mImage->releaseImage(displayVk, &garbage);
-        mImage->releaseStagingBuffer(displayVk, &garbage);
-        delete mImage;
+        mImage->releaseImage(renderer);
+        mImage->releaseStagingBuffer(renderer);
+        SafeDelete(mImage);
     }
     else if (egl::IsExternalImageTarget(mState.target))
     {
         ASSERT(mState.source != nullptr);
         ExternalImageSiblingVk *externalImageSibling =
             GetImplAs<ExternalImageSiblingVk>(GetAs<egl::ExternalImageSibling>(mState.source));
-        externalImageSibling->release(displayVk, &garbage);
-    }
-    mImage = nullptr;
-
-    if (!garbage.empty())
-    {
-        renderer->addGarbage(std::move(mImageLastUseFences), std::move(garbage));
-    }
-    else
-    {
-        for (vk::Shared<vk::Fence> &fence : mImageLastUseFences)
-        {
-            fence.reset(displayVk->getDevice());
-        }
+        externalImageSibling->release(renderer);
+        mImage = nullptr;
     }
 }
 
@@ -160,12 +146,6 @@
     // Flush the context to make sure the fence has been submitted.
     ANGLE_TRY(contextVk->flushImpl(nullptr));
 
-    vk::Shared<vk::Fence> fence = contextVk->getLastSubmittedFence();
-    if (fence.isReferenced())
-    {
-        mImageLastUseFences.push_back(std::move(fence));
-    }
-
     return angle::Result::Continue;
 }
 
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ImageVk.h b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ImageVk.h
index 1e7f540..c701829 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ImageVk.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ImageVk.h
@@ -24,7 +24,7 @@
 
     virtual vk::ImageHelper *getImage() const = 0;
 
-    virtual void release(DisplayVk *display, std::vector<vk::GarbageObjectBase> *garbageQueue) = 0;
+    virtual void release(RendererVk *renderer) = 0;
 };
 
 class ImageVk : public ImageImpl
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/MemoryObjectVk.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/MemoryObjectVk.cpp
index 48a66f5..6a8dc96 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/MemoryObjectVk.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/MemoryObjectVk.cpp
@@ -100,10 +100,10 @@
     uint32_t layerCount;
     gl_vk::GetExtentsAndLayerCount(type, size, &vkExtents, &layerCount);
 
-    ANGLE_TRY(image->initExternal(contextVk, type, vkExtents, vkFormat, 1, imageUsageFlags,
-                                  vk::ImageLayout::ExternalPreInitialized,
-                                  &externalMemoryImageCreateInfo, static_cast<uint32_t>(levels),
-                                  layerCount));
+    ANGLE_TRY(image->initExternal(
+        contextVk, type, vkExtents, vkFormat, 1, imageUsageFlags,
+        vk::ImageLayout::ExternalPreInitialized, &externalMemoryImageCreateInfo, 0,
+        static_cast<uint32_t>(levels) - 1, static_cast<uint32_t>(levels), layerCount));
 
     VkMemoryRequirements externalMemoryRequirements;
     image->getImage().getMemoryRequirements(renderer->getDevice(), &externalMemoryRequirements);
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/OverlayVk.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/OverlayVk.cpp
index ec5ce67..8075331 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/OverlayVk.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/OverlayVk.cpp
@@ -81,7 +81,7 @@
 
 angle::Result OverlayVk::createFont(ContextVk *contextVk)
 {
-    RendererVk *rendererVk = contextVk->getRenderer();
+    RendererVk *renderer = contextVk->getRenderer();
 
     // Create a buffer to stage font data upload.
     VkBufferCreateInfo bufferCreateInfo = {};
@@ -91,7 +91,7 @@
     bufferCreateInfo.usage       = VK_BUFFER_USAGE_TRANSFER_SRC_BIT;
     bufferCreateInfo.sharingMode = VK_SHARING_MODE_EXCLUSIVE;
 
-    vk::ContextScoped<vk::BufferHelper> fontDataBuffer(contextVk);
+    vk::RendererScoped<vk::BufferHelper> fontDataBuffer(renderer);
 
     ANGLE_TRY(fontDataBuffer.get().init(contextVk, bufferCreateInfo,
                                         VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT));
@@ -107,12 +107,13 @@
     fontDataBuffer.get().onExternalWrite(VK_ACCESS_HOST_WRITE_BIT);
 
     // Create the font image.
-    ANGLE_TRY(mFontImage.init(
-        contextVk, gl::TextureType::_2D,
-        VkExtent3D{gl::overlay::kFontImageWidth, gl::overlay::kFontImageHeight, 1},
-        rendererVk->getFormat(angle::FormatID::R8_UNORM), 1,
-        VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_SAMPLED_BIT, 1, gl::overlay::kFontCount));
-    ANGLE_TRY(mFontImage.initMemory(contextVk, rendererVk->getMemoryProperties(),
+    ANGLE_TRY(
+        mFontImage.init(contextVk, gl::TextureType::_2D,
+                        VkExtent3D{gl::overlay::kFontImageWidth, gl::overlay::kFontImageHeight, 1},
+                        renderer->getFormat(angle::FormatID::R8_UNORM), 1,
+                        VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_SAMPLED_BIT, 0, 0, 1,
+                        gl::overlay::kFontCount));
+    ANGLE_TRY(mFontImage.initMemory(contextVk, renderer->getMemoryProperties(),
                                     VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT));
     ANGLE_TRY(mFontImage.initImageView(contextVk, gl::TextureType::_2DArray,
                                        VK_IMAGE_ASPECT_COLOR_BIT, gl::SwizzleState(),
@@ -122,7 +123,7 @@
     vk::CommandBuffer *fontDataUpload;
     ANGLE_TRY(mFontImage.recordCommands(contextVk, &fontDataUpload));
 
-    fontDataBuffer.get().onRead(&mFontImage, VK_ACCESS_TRANSFER_READ_BIT);
+    fontDataBuffer.get().onRead(contextVk, &mFontImage, VK_ACCESS_TRANSFER_READ_BIT);
 
     mFontImage.changeLayout(VK_IMAGE_ASPECT_COLOR_BIT, vk::ImageLayout::TransferDst,
                             fontDataUpload);
@@ -148,12 +149,11 @@
 
 angle::Result OverlayVk::cullWidgets(ContextVk *contextVk)
 {
-    RendererVk *rendererVk = contextVk->getRenderer();
+    RendererVk *renderer = contextVk->getRenderer();
 
     // Release old culledWidgets image
-    Serial currentSerial = contextVk->getCurrentQueueSerial();
-    contextVk->releaseObject(currentSerial, &mCulledWidgets);
-    contextVk->releaseObject(currentSerial, &mCulledWidgetsView);
+    mCulledWidgets.releaseImage(renderer);
+    contextVk->addGarbage(&mCulledWidgetsView);
 
     // Create a buffer to contain coordinates of enabled text and graph widgets.  This buffer will
     // be used to perform tiled culling and can be discarded immediately after.
@@ -163,7 +163,7 @@
     bufferCreateInfo.usage              = VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT;
     bufferCreateInfo.sharingMode        = VK_SHARING_MODE_EXCLUSIVE;
 
-    vk::ContextScoped<vk::BufferHelper> enabledWidgetsBuffer(contextVk);
+    vk::RendererScoped<vk::BufferHelper> enabledWidgetsBuffer(renderer);
 
     ANGLE_TRY(enabledWidgetsBuffer.get().init(contextVk, bufferCreateInfo,
                                               VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT));
@@ -186,9 +186,10 @@
         UnsignedCeilDivide(mPresentImageExtent.height, mSubgroupSize[1]), 1};
 
     ANGLE_TRY(mCulledWidgets.init(contextVk, gl::TextureType::_2D, culledWidgetsExtent,
-                                  rendererVk->getFormat(angle::FormatID::R32G32_UINT), 1,
-                                  VK_IMAGE_USAGE_STORAGE_BIT | VK_IMAGE_USAGE_SAMPLED_BIT, 1, 1));
-    ANGLE_TRY(mCulledWidgets.initMemory(contextVk, rendererVk->getMemoryProperties(),
+                                  renderer->getFormat(angle::FormatID::R32G32_UINT), 1,
+                                  VK_IMAGE_USAGE_STORAGE_BIT | VK_IMAGE_USAGE_SAMPLED_BIT, 0, 0, 1,
+                                  1));
+    ANGLE_TRY(mCulledWidgets.initMemory(contextVk, renderer->getMemoryProperties(),
                                         VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT));
     ANGLE_TRY(mCulledWidgets.initImageView(contextVk, gl::TextureType::_2D,
                                            VK_IMAGE_ASPECT_COLOR_BIT, gl::SwizzleState(),
@@ -213,10 +214,10 @@
         return angle::Result::Continue;
     }
 
-    RendererVk *rendererVk = contextVk->getRenderer();
+    RendererVk *renderer = contextVk->getRenderer();
 
     // If the swapchain image doesn't support storage image, we can't output to it.
-    VkFormatFeatureFlags featureBits = rendererVk->getImageFormatFeatureBits(
+    VkFormatFeatureFlags featureBits = renderer->getImageFormatFeatureBits(
         imageToPresent->getFormat().vkImageFormat, VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT);
     if ((featureBits & VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT) == 0)
     {
@@ -239,8 +240,8 @@
         mRefreshCulledWidgets = false;
     }
 
-    vk::ContextScoped<vk::BufferHelper> textDataBuffer(contextVk);
-    vk::ContextScoped<vk::BufferHelper> graphDataBuffer(contextVk);
+    vk::RendererScoped<vk::BufferHelper> textDataBuffer(renderer);
+    vk::RendererScoped<vk::BufferHelper> graphDataBuffer(renderer);
 
     VkBufferCreateInfo textBufferCreateInfo = {};
     textBufferCreateInfo.sType              = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO;
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/PersistentCommandPool.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/PersistentCommandPool.cpp
index 95cfbaa..52246cd 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/PersistentCommandPool.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/PersistentCommandPool.cpp
@@ -42,11 +42,13 @@
     return angle::Result::Continue;
 }
 
-void PersistentCommandPool::destroy(const vk::Context *context)
+void PersistentCommandPool::destroy(VkDevice device)
 {
+    if (!valid())
+        return;
+
     ASSERT(mCommandPool.valid());
 
-    VkDevice device = context->getDevice();
     for (vk::PrimaryCommandBuffer &cmdBuf : mFreeBuffers)
     {
         cmdBuf.destroy(device, mCommandPool);
@@ -56,8 +58,8 @@
     mCommandPool.destroy(device);
 }
 
-angle::Result PersistentCommandPool::alloc(vk::Context *context,
-                                           vk::PrimaryCommandBuffer *bufferOutput)
+angle::Result PersistentCommandPool::allocate(vk::Context *context,
+                                              vk::PrimaryCommandBuffer *commandBufferOut)
 {
     if (mFreeBuffers.empty())
     {
@@ -65,7 +67,7 @@
         ASSERT(!mFreeBuffers.empty());
     }
 
-    *bufferOutput = std::move(mFreeBuffers.back());
+    *commandBufferOut = std::move(mFreeBuffers.back());
     mFreeBuffers.pop_back();
 
     return angle::Result::Continue;
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/PersistentCommandPool.h b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/PersistentCommandPool.h
index 619b358..187dbcd 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/PersistentCommandPool.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/PersistentCommandPool.h
@@ -27,10 +27,10 @@
     PersistentCommandPool();
     ~PersistentCommandPool();
 
-    void destroy(const vk::Context *context);
+    void destroy(VkDevice device);
     angle::Result init(vk::Context *context, uint32_t queueFamilyIndex);
 
-    angle::Result alloc(vk::Context *context, vk::PrimaryCommandBuffer *bufferOutput);
+    angle::Result allocate(vk::Context *context, vk::PrimaryCommandBuffer *commandBufferOut);
     angle::Result collect(vk::Context *context, vk::PrimaryCommandBuffer &&buffer);
 
     bool valid() const { return mCommandPool.valid(); }
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ProgramVk.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ProgramVk.cpp
index a6baf75..fc34548 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ProgramVk.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ProgramVk.cpp
@@ -22,8 +22,8 @@
 
 namespace
 {
-
-constexpr size_t kUniformBlockDynamicBufferMinSize = 256 * 128;
+// This size is picked according to the required maxUniformBufferRange in the Vulkan spec.
+constexpr size_t kUniformBlockDynamicBufferMinSize = 16384u;
 
 // Identical to Std140 encoder in all aspects, except it ignores opaque uniform types.
 class VulkanDefaultBlockEncoder : public sh::Std140BlockEncoder
@@ -446,15 +446,17 @@
     }
     mPipelineLayout.reset();
 
+    RendererVk *renderer = contextVk->getRenderer();
+
     for (auto &uniformBlock : mDefaultUniformBlocks)
     {
-        uniformBlock.storage.release(contextVk);
+        uniformBlock.storage.release(renderer);
     }
 
     mDefaultShaderInfo.release(contextVk);
     mLineRasterShaderInfo.release(contextVk);
 
-    mEmptyBuffer.release(contextVk);
+    mEmptyBuffer.release(renderer);
 
     mDescriptorSets.clear();
     mEmptyDescriptorSets.fill(VK_NULL_HANDLE);
@@ -470,6 +472,7 @@
     }
 
     mTextureDescriptorsCache.clear();
+    mDescriptorBuffersCache.clear();
 }
 
 std::unique_ptr<rx::LinkEvent> ProgramVk::load(const gl::Context *context,
@@ -795,6 +798,7 @@
                 {
                     // Gets the uniform name without the [0] at the end.
                     uniformName = gl::StripLastArrayIndex(uniformName);
+                    ASSERT(uniformName.size() != uniform.name.size());
                 }
 
                 bool found = false;
@@ -1219,6 +1223,8 @@
 
     uint32_t bindingIndex = 0;
 
+    mDescriptorBuffersCache.clear();
+
     // Write default uniforms for each shader type.
     for (const gl::ShaderType shaderType : mState.getLinkedShaderStages())
     {
@@ -1228,13 +1234,15 @@
 
         if (!uniformBlock.uniformData.empty())
         {
-            const vk::BufferHelper *bufferHelper = uniformBlock.storage.getCurrentBuffer();
-            bufferInfo.buffer                    = bufferHelper->getBuffer().getHandle();
+            vk::BufferHelper *bufferHelper = uniformBlock.storage.getCurrentBuffer();
+            bufferInfo.buffer              = bufferHelper->getBuffer().getHandle();
+            mDescriptorBuffersCache.emplace_back(bufferHelper);
         }
         else
         {
-            mEmptyBuffer.updateQueueSerial(contextVk->getCurrentQueueSerial());
+            mEmptyBuffer.onGraphAccess(contextVk->getCommandGraph());
             bufferInfo.buffer = mEmptyBuffer.getBuffer().getHandle();
+            mDescriptorBuffersCache.emplace_back(&mEmptyBuffer);
         }
 
         bufferInfo.offset = 0;
@@ -1333,7 +1341,7 @@
         }
         else
         {
-            bufferHelper.onRead(recorder, VK_ACCESS_UNIFORM_READ_BIT);
+            bufferHelper.onRead(contextVk, recorder, VK_ACCESS_UNIFORM_READ_BIT);
         }
 
         ++writeCount;
@@ -1398,7 +1406,7 @@
     }
 
     // Bind the empty buffer to every array slot that's unused.
-    mEmptyBuffer.updateQueueSerial(contextVk->getCurrentQueueSerial());
+    mEmptyBuffer.onGraphAccess(contextVk->getCommandGraph());
     for (size_t binding : ~writtenBindings)
     {
         VkDescriptorBufferInfo &bufferInfo = descriptorBufferInfo[binding];
@@ -1465,7 +1473,7 @@
             const vk::ImageView *imageView = nullptr;
 
             ANGLE_TRY(textureVk->getLayerLevelStorageImageView(
-                contextVk, binding.layered, binding.layer, binding.level, &imageView));
+                contextVk, (binding.layered == GL_TRUE), binding.layer, binding.level, &imageView));
 
             // Note: binding.access is unused because it is implied by the shader.
 
@@ -1533,7 +1541,7 @@
 
 void ProgramVk::updateTransformFeedbackDescriptorSetImpl(ContextVk *contextVk)
 {
-    const gl::State &glState = contextVk->getState();
+    const gl::State &glState                 = contextVk->getState();
     gl::TransformFeedback *transformFeedback = glState.getCurrentTransformFeedback();
 
     if (!hasTransformFeedbackOutput())
@@ -1751,6 +1759,11 @@
                                           mDynamicBufferOffsets.data());
     }
 
+    for (vk::BufferHelper *buffer : mDescriptorBuffersCache)
+    {
+        buffer->onGraphAccess(contextVk->getCommandGraph());
+    }
+
     return angle::Result::Continue;
 }
 }  // namespace rx
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ProgramVk.h b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ProgramVk.h
index ed4e29f..3132a38 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ProgramVk.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ProgramVk.h
@@ -141,7 +141,7 @@
         vk::ShaderProgramHelper *shaderProgram;
         ANGLE_TRY(initGraphicsShaders(contextVk, mode, &shaderProgram));
         ASSERT(shaderProgram->isGraphicsProgram());
-        RendererVk *renderer = contextVk->getRenderer();
+        RendererVk *renderer             = contextVk->getRenderer();
         vk::PipelineCache *pipelineCache = nullptr;
         ANGLE_TRY(renderer->getPipelineCache(&pipelineCache));
         return shaderProgram->getGraphicsPipeline(
@@ -282,6 +282,7 @@
     // Descriptor sets for uniform blocks and textures for this program.
     std::vector<VkDescriptorSet> mDescriptorSets;
     vk::DescriptorSetLayoutArray<VkDescriptorSet> mEmptyDescriptorSets;
+    std::vector<vk::BufferHelper *> mDescriptorBuffersCache;
 
     std::unordered_map<vk::TextureDescriptorDesc, VkDescriptorSet> mTextureDescriptorsCache;
 
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/README.md b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/README.md
index 15ce741..9f2435a 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/README.md
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/README.md
@@ -16,11 +16,11 @@
 
 ## Back-end Design
 
-The [RendererVk](RendererVk.cpp) is a singleton. RendererVk owns shared global resources like the
-[VkDevice][VkDevice], [VkQueue][VkQueue], the [Vulkan format tables](vk_format_utils.h) and
-[internal Vulkan shaders](shaders). The back-end creates a new [ContextVk](ContextVk.cpp) instance
-to manage each allocated OpenGL Context. ContextVk processes state changes and handles action
-commands like `glDrawArrays` and `glDrawElements`.
+The [`RendererVk`](RendererVk.cpp) class represents an `EGLDisplay`. `RendererVk` owns shared global
+resources like the [VkDevice][VkDevice], [VkQueue][VkQueue], the [Vulkan format tables](vk_format_utils.h)
+and [internal Vulkan shaders](shaders). The [ContextVk](ContextVk.cpp) class implements the back-end
+of a front-end OpenGL Context. ContextVk processes state changes and handles action commands like
+`glDrawArrays` and `glDrawElements`.
 
 Implementation details can be found in the `doc` directory.
 
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/RenderTargetVk.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/RenderTargetVk.cpp
index 7605e3d..a780bfc 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/RenderTargetVk.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/RenderTargetVk.cpp
@@ -18,11 +18,7 @@
 namespace rx
 {
 RenderTargetVk::RenderTargetVk()
-    : mImage(nullptr),
-      mImageView(nullptr),
-      mCubeImageFetchView(nullptr),
-      mLevelIndex(0),
-      mLayerIndex(0)
+    : mImage(nullptr), mImageView(nullptr), mLevelIndex(0), mLayerIndex(0)
 {}
 
 RenderTargetVk::~RenderTargetVk() {}
@@ -30,31 +26,27 @@
 RenderTargetVk::RenderTargetVk(RenderTargetVk &&other)
     : mImage(other.mImage),
       mImageView(other.mImageView),
-      mCubeImageFetchView(other.mCubeImageFetchView),
       mLevelIndex(other.mLevelIndex),
       mLayerIndex(other.mLayerIndex)
 {}
 
 void RenderTargetVk::init(vk::ImageHelper *image,
                           const vk::ImageView *imageView,
-                          const vk::ImageView *cubeImageFetchView,
                           uint32_t levelIndex,
                           uint32_t layerIndex)
 {
-    mImage              = image;
-    mImageView          = imageView;
-    mCubeImageFetchView = cubeImageFetchView;
-    mLevelIndex         = levelIndex;
-    mLayerIndex         = layerIndex;
+    mImage      = image;
+    mImageView  = imageView;
+    mLevelIndex = levelIndex;
+    mLayerIndex = layerIndex;
 }
 
 void RenderTargetVk::reset()
 {
-    mImage              = nullptr;
-    mImageView          = nullptr;
-    mCubeImageFetchView = nullptr;
-    mLevelIndex         = 0;
-    mLayerIndex         = 0;
+    mImage      = nullptr;
+    mImageView  = nullptr;
+    mLevelIndex = 0;
+    mLayerIndex = 0;
 }
 
 angle::Result RenderTargetVk::onColorDraw(ContextVk *contextVk,
@@ -69,7 +61,7 @@
                          commandBuffer);
 
     // Set up dependencies between the RT resource and the Framebuffer.
-    mImage->addWriteDependency(framebufferVk);
+    mImage->addWriteDependency(contextVk, framebufferVk);
 
     return angle::Result::Continue;
 }
@@ -88,7 +80,7 @@
     mImage->changeLayout(aspectFlags, vk::ImageLayout::DepthStencilAttachment, commandBuffer);
 
     // Set up dependencies between the RT resource and the Framebuffer.
-    mImage->addWriteDependency(framebufferVk);
+    mImage->addWriteDependency(contextVk, framebufferVk);
 
     return angle::Result::Continue;
 }
@@ -116,12 +108,6 @@
     return getDrawImageView();
 }
 
-const vk::ImageView *RenderTargetVk::getFetchImageView() const
-{
-    return mCubeImageFetchView && mCubeImageFetchView->valid() ? mCubeImageFetchView
-                                                               : getReadImageView();
-}
-
 const vk::Format &RenderTargetVk::getImageFormat() const
 {
     ASSERT(mImage && mImage->valid());
@@ -137,12 +123,12 @@
 void RenderTargetVk::updateSwapchainImage(vk::ImageHelper *image, const vk::ImageView *imageView)
 {
     ASSERT(image && image->valid() && imageView && imageView->valid());
-    mImage              = image;
-    mImageView          = imageView;
-    mCubeImageFetchView = nullptr;
+    mImage     = image;
+    mImageView = imageView;
 }
 
-vk::ImageHelper *RenderTargetVk::getImageForRead(vk::CommandGraphResource *readingResource,
+vk::ImageHelper *RenderTargetVk::getImageForRead(ContextVk *contextVk,
+                                                 vk::CommandGraphResource *readingResource,
                                                  vk::ImageLayout layout,
                                                  vk::CommandBuffer *commandBuffer)
 {
@@ -163,17 +149,18 @@
     // I.e. the transition should happen on a node generated from mImage itself.
     // However, this needs context to be available here, or all call sites changed
     // to perform the layout transition and set the dependency.
-    mImage->addWriteDependency(readingResource);
+    mImage->addWriteDependency(contextVk, readingResource);
 
     mImage->changeLayout(mImage->getAspectFlags(), layout, commandBuffer);
 
     return mImage;
 }
 
-vk::ImageHelper *RenderTargetVk::getImageForWrite(vk::CommandGraphResource *writingResource) const
+vk::ImageHelper *RenderTargetVk::getImageForWrite(ContextVk *contextVk,
+                                                  vk::CommandGraphResource *writingResource) const
 {
     ASSERT(mImage && mImage->valid());
-    mImage->addWriteDependency(writingResource);
+    mImage->addWriteDependency(contextVk, writingResource);
     return mImage;
 }
 
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/RenderTargetVk.h b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/RenderTargetVk.h
index 7cb7f34..006614c 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/RenderTargetVk.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/RenderTargetVk.h
@@ -45,7 +45,6 @@
 
     void init(vk::ImageHelper *image,
               const vk::ImageView *imageView,
-              const vk::ImageView *cubeImageFetchView,
               uint32_t levelIndex,
               uint32_t layerIndex);
     void reset();
@@ -62,17 +61,15 @@
     const vk::ImageHelper &getImage() const;
 
     // getImageForRead will also transition the resource to the given layout.
-    vk::ImageHelper *getImageForRead(vk::CommandGraphResource *readingResource,
+    vk::ImageHelper *getImageForRead(ContextVk *contextVk,
+                                     vk::CommandGraphResource *readingResource,
                                      vk::ImageLayout layout,
                                      vk::CommandBuffer *commandBuffer);
-    vk::ImageHelper *getImageForWrite(vk::CommandGraphResource *writingResource) const;
+    vk::ImageHelper *getImageForWrite(ContextVk *contextVk,
+                                      vk::CommandGraphResource *writingResource) const;
 
     const vk::ImageView *getDrawImageView() const;
     const vk::ImageView *getReadImageView() const;
-    // GLSL's texelFetch() needs a 2D array view to read from cube maps.  This function returns the
-    // same view as `getReadImageView()`, except for cubemaps, in which case it returns a 2D array
-    // view of it.
-    const vk::ImageView *getFetchImageView() const;
 
     const vk::Format &getImageFormat() const;
     gl::Extents getExtents() const;
@@ -88,10 +85,8 @@
   private:
     vk::ImageHelper *mImage;
     // Note that the draw and read image views are the same, given the requirements of a render
-    // target.
+    // target. Note that for cube maps we use 2D array views.
     const vk::ImageView *mImageView;
-    // For cubemaps, a 2D-array view is also created to be used with shaders that use texelFetch().
-    const vk::ImageView *mCubeImageFetchView;
     uint32_t mLevelIndex;
     uint32_t mLayerIndex;
 };
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/RenderbufferVk.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/RenderbufferVk.cpp
index 0f89b87..45927ab 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/RenderbufferVk.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/RenderbufferVk.cpp
@@ -73,7 +73,7 @@
 
         VkExtent3D extents = {static_cast<uint32_t>(width), static_cast<uint32_t>(height), 1u};
         ANGLE_TRY(mImage->init(contextVk, gl::TextureType::_2D, extents, vkFormat,
-                               static_cast<uint32_t>(samples), usage, 1, 1));
+                               static_cast<uint32_t>(samples), usage, 0, 0, 1, 1));
 
         VkMemoryPropertyFlags flags = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT;
         ANGLE_TRY(mImage->initMemory(contextVk, renderer->getMemoryProperties(), flags));
@@ -88,7 +88,7 @@
         // Clear the renderbuffer if it has emulated channels.
         mImage->stageClearIfEmulatedFormat(gl::ImageIndex::Make2D(0), vkFormat);
 
-        mRenderTarget.init(mImage, &mImageView, nullptr, 0, 0);
+        mRenderTarget.init(mImage, &mImageView, 0, 0);
     }
 
     return angle::Result::Continue;
@@ -168,22 +168,19 @@
                                      rendererQueueFamilyIndex, commandBuffer);
     }
 
-    ANGLE_TRY(mImage->initLayerImageView(contextVk, imageVk->getImageTextureType(), aspect,
-                                         gl::SwizzleState(), &mImageView, imageVk->getImageLevel(),
-                                         1, imageVk->getImageLayer(), 1));
+    gl::TextureType viewType = imageVk->getImageTextureType();
 
     if (imageVk->getImageTextureType() == gl::TextureType::CubeMap)
     {
-        gl::TextureType arrayType = vk::Get2DTextureType(imageVk->getImage()->getLayerCount(),
-                                                         imageVk->getImage()->getSamples());
-        ANGLE_TRY(mImage->initLayerImageView(contextVk, arrayType, aspect, gl::SwizzleState(),
-                                             &mCubeImageFetchView, imageVk->getImageLevel(), 1,
-                                             imageVk->getImageLayer(), 1));
+        viewType = vk::Get2DTextureType(imageVk->getImage()->getLayerCount(),
+                                        imageVk->getImage()->getSamples());
     }
 
-    mRenderTarget.init(mImage, &mImageView,
-                       mCubeImageFetchView.valid() ? &mCubeImageFetchView : nullptr,
-                       imageVk->getImageLevel(), imageVk->getImageLayer());
+    ANGLE_TRY(mImage->initLayerImageView(contextVk, viewType, aspect, gl::SwizzleState(),
+                                         &mImageView, imageVk->getImageLevel(), 1,
+                                         imageVk->getImageLayer(), 1));
+
+    mRenderTarget.init(mImage, &mImageView, imageVk->getImageLevel(), imageVk->getImageLayer());
 
     return angle::Result::Continue;
 }
@@ -225,16 +222,17 @@
 {
     if (mImage && mOwnsImage)
     {
-        mImage->releaseImage(contextVk);
-        mImage->releaseStagingBuffer(contextVk);
+        RendererVk *renderer = contextVk->getRenderer();
+
+        mImage->releaseImage(renderer);
+        mImage->releaseStagingBuffer(renderer);
     }
     else
     {
         mImage = nullptr;
     }
 
-    contextVk->releaseObject(contextVk->getCurrentQueueSerial(), &mImageView);
-    contextVk->releaseObject(contextVk->getCurrentQueueSerial(), &mCubeImageFetchView);
+    contextVk->addGarbage(&mImageView);
 }
 
 }  // namespace rx
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/RenderbufferVk.h b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/RenderbufferVk.h
index 5dfc2ce..3f1ab3e 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/RenderbufferVk.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/RenderbufferVk.h
@@ -61,7 +61,6 @@
     bool mOwnsImage;
     vk::ImageHelper *mImage;
     vk::ImageView mImageView;
-    vk::ImageView mCubeImageFetchView;
     RenderTargetVk mRenderTarget;
 };
 
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/RendererVk.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/RendererVk.cpp
index 79174e2..bfe0205 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/RendererVk.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/RendererVk.cpp
@@ -39,6 +39,8 @@
 const uint32_t kMockVendorID                              = 0xba5eba11;
 const uint32_t kMockDeviceID                              = 0xf005ba11;
 constexpr char kMockDeviceName[]                          = "Vulkan Mock Device";
+const uint32_t kSwiftShaderDeviceID                       = 0xC0DE;
+constexpr char kSwiftShaderDeviceName[]                   = "SwiftShader Device";
 constexpr VkFormatFeatureFlags kInvalidFormatFeatureFlags = static_cast<VkFormatFeatureFlags>(-1);
 }  // anonymous namespace
 
@@ -49,8 +51,6 @@
 {
 // Update the pipeline cache every this many swaps.
 constexpr uint32_t kPipelineCacheVkUpdatePeriod = 60;
-// Wait a maximum of 10s.  If that times out, we declare it a failure.
-constexpr uint64_t kMaxFenceWaitTimeNs = 10'000'000'000llu;
 // Per the Vulkan specification, as long as Vulkan 1.1+ is returned by vkEnumerateInstanceVersion,
 // ANGLE must indicate the highest version of Vulkan functionality that it uses.  The Vulkan
 // validation layers will issue messages for any core functionality that requires a higher version.
@@ -71,6 +71,8 @@
             break;
         case EGL_PLATFORM_ANGLE_DEVICE_TYPE_NULL_ANGLE:
             return vk::ICD::Mock;
+        case EGL_PLATFORM_ANGLE_DEVICE_TYPE_SWIFTSHADER_ANGLE:
+            return vk::ICD::SwiftShader;
         default:
             UNREACHABLE();
             break;
@@ -117,6 +119,14 @@
     "UNASSIGNED-CoreValidation-Shader-PointSizeMissing",
     // http://anglebug.com/3832
     "VUID-VkPipelineInputAssemblyStateCreateInfo-topology-00428",
+    // http://anglebug.com/3450
+    "VUID-vkDestroySemaphore-semaphore-parameter",
+    // http://anglebug.com/3924
+    "UNASSIGNED-Threading-Info",
+    // http://anglebug.com/3925
+    "VUID-vkDestroyDescriptorPool-descriptorPool-parameter",
+    "VUID-vkDestroyBuffer-buffer-parameter",
+    "VUID-vkDestroyImage-image-parameter",
 };
 
 // Suppress validation errors that are known
@@ -365,6 +375,13 @@
                 ERR() << "Error setting environment for Mock/Null Driver.";
             }
         }
+        else if (icd == vk::ICD::SwiftShader)
+        {
+            if (!setICDEnvironment(ANGLE_VK_SWIFTSHADER_ICD_JSON))
+            {
+                ERR() << "Error setting environment for SwiftShader.";
+            }
+        }
         if (mEnableValidationLayers || icd != vk::ICD::Default)
         {
             const auto &cwd = angle::GetCWD();
@@ -449,59 +466,54 @@
     Optional<std::string> mPreviousICDEnv;
 };
 
+using ICDFilterFunc = std::function<bool(const VkPhysicalDeviceProperties &)>;
+
+ICDFilterFunc GetFilterForICD(vk::ICD preferredICD)
+{
+    switch (preferredICD)
+    {
+        case vk::ICD::Mock:
+            return [](const VkPhysicalDeviceProperties &deviceProperties) {
+                return ((deviceProperties.vendorID == kMockVendorID) &&
+                        (deviceProperties.deviceID == kMockDeviceID) &&
+                        (strcmp(deviceProperties.deviceName, kMockDeviceName) == 0));
+            };
+        case vk::ICD::SwiftShader:
+            return [](const VkPhysicalDeviceProperties &deviceProperties) {
+                return ((deviceProperties.vendorID == VENDOR_ID_GOOGLE) &&
+                        (deviceProperties.deviceID == kSwiftShaderDeviceID) &&
+                        (strcmp(deviceProperties.deviceName, kSwiftShaderDeviceName) == 0));
+            };
+        default:
+            return [](const VkPhysicalDeviceProperties &deviceProperties) { return true; };
+    }
+}
+
 void ChoosePhysicalDevice(const std::vector<VkPhysicalDevice> &physicalDevices,
                           vk::ICD preferredICD,
                           VkPhysicalDevice *physicalDeviceOut,
                           VkPhysicalDeviceProperties *physicalDevicePropertiesOut)
 {
     ASSERT(!physicalDevices.empty());
-    if (preferredICD == vk::ICD::Mock)
+
+    ICDFilterFunc filter = GetFilterForICD(preferredICD);
+
+    for (const VkPhysicalDevice &physicalDevice : physicalDevices)
     {
-        for (const VkPhysicalDevice &physicalDevice : physicalDevices)
+        vkGetPhysicalDeviceProperties(physicalDevice, physicalDevicePropertiesOut);
+        if (filter(*physicalDevicePropertiesOut))
         {
-            vkGetPhysicalDeviceProperties(physicalDevice, physicalDevicePropertiesOut);
-            if ((kMockVendorID == physicalDevicePropertiesOut->vendorID) &&
-                (kMockDeviceID == physicalDevicePropertiesOut->deviceID) &&
-                (strcmp(kMockDeviceName, physicalDevicePropertiesOut->deviceName) == 0))
-            {
-                *physicalDeviceOut = physicalDevice;
-                return;
-            }
+            *physicalDeviceOut = physicalDevice;
+            return;
         }
-        WARN() << "Vulkan Mock Driver was requested but Mock Device was not found. Using default "
-                  "physicalDevice instead.";
     }
+    WARN() << "Preferred device ICD not found. Using default physicalDevice instead.";
 
     // Fall back to first device.
     *physicalDeviceOut = physicalDevices[0];
     vkGetPhysicalDeviceProperties(*physicalDeviceOut, physicalDevicePropertiesOut);
 }
-
-angle::Result WaitFences(vk::Context *context,
-                         std::vector<vk::Shared<vk::Fence>> *fences,
-                         bool block)
-{
-    uint64_t timeout = block ? kMaxFenceWaitTimeNs : 0;
-
-    // Iterate backwards over the fences, removing them from the list in constant time when they are
-    // complete.
-    while (!fences->empty())
-    {
-        VkResult result = fences->back().get().wait(context->getDevice(), timeout);
-        if (result == VK_TIMEOUT)
-        {
-            return angle::Result::Continue;
-        }
-        ANGLE_VK_TRY(context, result);
-
-        context->getRenderer()->resetSharedFence(&fences->back());
-        fences->pop_back();
-    }
-
-    return angle::Result::Continue;
-}
-
-}  // anonymous namespace
+}  // namespace
 
 // RendererVk implementation.
 RendererVk::RendererVk()
@@ -519,6 +531,8 @@
       mCurrentQueueFamilyIndex(std::numeric_limits<uint32_t>::max()),
       mMaxVertexAttribDivisor(1),
       mDevice(VK_NULL_HANDLE),
+      mLastCompletedQueueSerial(mQueueSerialFactory.generate()),
+      mCurrentQueueSerial(mQueueSerialFactory.generate()),
       mDeviceLost(false),
       mPipelineCacheVkUpdateTimeout(kPipelineCacheVkUpdatePeriod),
       mPipelineCacheDirty(false),
@@ -530,12 +544,13 @@
 
 RendererVk::~RendererVk()
 {
-    ASSERT(mFencedGarbage.empty());
+    ASSERT(mSharedGarbage.empty());
 }
 
 void RendererVk::onDestroy(vk::Context *context)
 {
     (void)cleanupGarbage(context, true);
+    ASSERT(mSharedGarbage.empty());
 
     mFenceRecycler.destroy(mDevice);
 
@@ -577,7 +592,8 @@
 
 void RendererVk::notifyDeviceLost()
 {
-    mDeviceLost = true;
+    mLastCompletedQueueSerial = mLastSubmittedQueueSerial;
+    mDeviceLost               = true;
     mDisplay->notifyDeviceLost();
 }
 
@@ -595,8 +611,14 @@
     const egl::AttributeMap &attribs = mDisplay->getAttributeMap();
     ScopedVkLoaderEnvironment scopedEnvironment(ShouldUseDebugLayers(attribs),
                                                 ChooseICDFromAttribs(attribs));
+#if defined(ANGLE_PLATFORM_WINDOWS) && !defined(_WIN64)
+    // TODO: Re-enable validation layers on 32bit Windows
+    // http://anglebug.com/3946, http://anglebug.com/3924
+    mEnableValidationLayers = false;
+#else
     mEnableValidationLayers = scopedEnvironment.canEnableValidationLayers();
-    mEnabledICD             = scopedEnvironment.getEnabledICD();
+#endif
+    mEnabledICD = scopedEnvironment.getEnabledICD();
 
     // Gather global layer properties.
     uint32_t instanceLayerCount = 0;
@@ -663,10 +685,15 @@
     ExtensionNameList enabledInstanceExtensions;
     enabledInstanceExtensions.push_back(VK_KHR_SURFACE_EXTENSION_NAME);
     enabledInstanceExtensions.push_back(wsiExtension);
-
+#if defined(ANGLE_PLATFORM_ANDROID)
+    // TODO: Enable DebugUtils on Android
+    // http://anglebug.com/3852
+    bool enableDebugUtils = false;
+#else
     bool enableDebugUtils =
         mEnableValidationLayers &&
         ExtensionFound(VK_EXT_DEBUG_UTILS_EXTENSION_NAME, instanceExtensionNames);
+#endif
     bool enableDebugReport =
         mEnableValidationLayers && !enableDebugUtils &&
         ExtensionFound(VK_EXT_DEBUG_REPORT_EXTENSION_NAME, instanceExtensionNames);
@@ -732,7 +759,16 @@
         enabledInstanceExtensions.empty() ? nullptr : enabledInstanceExtensions.data();
     instanceInfo.enabledLayerCount   = static_cast<uint32_t>(enabledInstanceLayerNames.size());
     instanceInfo.ppEnabledLayerNames = enabledInstanceLayerNames.data();
-
+#if defined(ANGLE_PLATFORM_ANDROID) && !defined(ANGLE_IS_64_BIT_CPU)
+    // TODO: Re-enable validation layers on 32-bit Android
+    // http://anglebug.com/3924
+    VkValidationFeatureDisableEXT vkValFeaturesDisable = VK_VALIDATION_FEATURE_DISABLE_ALL_EXT;
+    VkValidationFeaturesEXT validationFeatures         = {};
+    validationFeatures.sType                           = VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT;
+    validationFeatures.disabledValidationFeatureCount  = 1;
+    validationFeatures.pDisabledValidationFeatures     = &vkValFeaturesDisable;
+    instanceInfo.pNext                                 = &validationFeatures;
+#endif
     ANGLE_VK_TRY(displayVk, vkCreateInstance(&instanceInfo, nullptr, &mInstance));
 
     if (enableDebugUtils)
@@ -796,6 +832,10 @@
     ChoosePhysicalDevice(physicalDevices, mEnabledICD, &mPhysicalDevice,
                          &mPhysicalDeviceProperties);
 
+    mGarbageCollectionFlushThreshold =
+        static_cast<uint32_t>(mPhysicalDeviceProperties.limits.maxMemoryAllocationCount *
+                              kPercentMaxMemoryAllocationCount);
+
     vkGetPhysicalDeviceFeatures(mPhysicalDevice, &mPhysicalDeviceFeatures);
 
     // Ensure we can find a graphics queue family.
@@ -981,6 +1021,7 @@
         mPhysicalDeviceFeatures.vertexPipelineStoresAndAtomics;
     enabledFeatures.features.fragmentStoresAndAtomics =
         mPhysicalDeviceFeatures.fragmentStoresAndAtomics;
+    enabledFeatures.features.geometryShader = mPhysicalDeviceFeatures.geometryShader;
     if (!vk::CommandBuffer::ExecutesInline())
     {
         enabledFeatures.features.inheritedQueries = mPhysicalDeviceFeatures.inheritedQueries;
@@ -1023,7 +1064,11 @@
         deviceProperties.pNext = &divisorProperties;
 
         vkGetPhysicalDeviceProperties2KHR(mPhysicalDevice, &deviceProperties);
-        mMaxVertexAttribDivisor = divisorProperties.maxVertexAttribDivisor;
+        // We only store 8 bit divisor in GraphicsPipelineDesc so capping value & we emulate if
+        // exceeded
+        mMaxVertexAttribDivisor =
+            std::min(divisorProperties.maxVertexAttribDivisor,
+                     static_cast<uint32_t>(std::numeric_limits<uint8_t>::max()));
 
         createInfo.pNext = &enabledFeatures;
     }
@@ -1204,126 +1249,99 @@
 
 void RendererVk::initFeatures(const ExtensionNameList &deviceExtensionNames)
 {
+    bool isAMD      = IsAMD(mPhysicalDeviceProperties.vendorID);
+    bool isIntel    = IsIntel(mPhysicalDeviceProperties.vendorID);
+    bool isNvidia   = IsNvidia(mPhysicalDeviceProperties.vendorID);
+    bool isQualcomm = IsQualcomm(mPhysicalDeviceProperties.vendorID);
+
     // Use OpenGL line rasterization rules by default.
-    mFeatures.basicGLLineRasterization.enabled = true;
+    // TODO(jmadill): Fix Android support. http://anglebug.com/2830
+    ANGLE_FEATURE_CONDITION((&mFeatures), basicGLLineRasterization, !IsAndroid())
 
-    if ((mPhysicalDeviceProperties.apiVersion >= VK_MAKE_VERSION(1, 1, 0)) ||
-        ExtensionFound(VK_KHR_MAINTENANCE1_EXTENSION_NAME, deviceExtensionNames))
-    {
-        // TODO(lucferron): Currently disabled on Intel only since many tests are failing and need
-        // investigation. http://anglebug.com/2728
-        mFeatures.flipViewportY.enabled = !IsIntel(mPhysicalDeviceProperties.vendorID);
-    }
+    // TODO(lucferron): Currently disabled on Intel only since many tests are failing and need
+    // investigation. http://anglebug.com/2728
+    ANGLE_FEATURE_CONDITION(
+        (&mFeatures), flipViewportY,
+        !IsIntel(mPhysicalDeviceProperties.vendorID) &&
+                (mPhysicalDeviceProperties.apiVersion >= VK_MAKE_VERSION(1, 1, 0)) ||
+            ExtensionFound(VK_KHR_MAINTENANCE1_EXTENSION_NAME, deviceExtensionNames))
 
-#ifdef ANGLE_PLATFORM_WINDOWS
     // http://anglebug.com/2838
-    mFeatures.extraCopyBufferRegion.enabled = IsIntel(mPhysicalDeviceProperties.vendorID);
+    ANGLE_FEATURE_CONDITION((&mFeatures), extraCopyBufferRegion, IsWindows() && isIntel)
 
     // http://anglebug.com/3055
-    mFeatures.forceCPUPathForCubeMapCopy.enabled = IsIntel(mPhysicalDeviceProperties.vendorID);
-#endif
-
-    angle::PlatformMethods *platform = ANGLEPlatformCurrent();
-    platform->overrideFeaturesVk(platform, &mFeatures);
+    ANGLE_FEATURE_CONDITION((&mFeatures), forceCPUPathForCubeMapCopy, IsWindows() && isIntel)
 
     // Work around incorrect NVIDIA point size range clamping.
     // TODO(jmadill): Narrow driver range once fixed. http://anglebug.com/2970
-    if (IsNvidia(mPhysicalDeviceProperties.vendorID))
-    {
-        mFeatures.clampPointSize.enabled = true;
-    }
+    ANGLE_FEATURE_CONDITION((&mFeatures), clampPointSize, isNvidia)
 
-#if defined(ANGLE_PLATFORM_ANDROID)
     // Work around ineffective compute-graphics barriers on Nexus 5X.
     // TODO(syoussefi): Figure out which other vendors and driver versions are affected.
     // http://anglebug.com/3019
-    mFeatures.flushAfterVertexConversion.enabled =
-        IsNexus5X(mPhysicalDeviceProperties.vendorID, mPhysicalDeviceProperties.deviceID);
-#endif
+    ANGLE_FEATURE_CONDITION((&mFeatures), flushAfterVertexConversion,
+                            IsAndroid() && IsNexus5X(mPhysicalDeviceProperties.vendorID,
+                                                     mPhysicalDeviceProperties.deviceID))
 
-    if (ExtensionFound(VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME, deviceExtensionNames))
-    {
-        mFeatures.supportsIncrementalPresent.enabled = true;
-    }
+    ANGLE_FEATURE_CONDITION(
+        (&mFeatures), supportsIncrementalPresent,
+        ExtensionFound(VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME, deviceExtensionNames))
 
 #if defined(ANGLE_PLATFORM_ANDROID)
-    mFeatures.supportsAndroidHardwareBuffer.enabled =
-        ExtensionFound(VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME,
-                       deviceExtensionNames) &&
-        ExtensionFound(VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME, deviceExtensionNames);
+    ANGLE_FEATURE_CONDITION(
+        (&mFeatures), supportsAndroidHardwareBuffer,
+        IsAndroid() &&
+            ExtensionFound(VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME,
+                           deviceExtensionNames) &&
+            ExtensionFound(VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME, deviceExtensionNames))
 #endif
 
-    if (ExtensionFound(VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME, deviceExtensionNames))
-    {
-        mFeatures.supportsExternalMemoryFd.enabled = true;
-    }
+    ANGLE_FEATURE_CONDITION(
+        (&mFeatures), supportsExternalMemoryFd,
+        ExtensionFound(VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME, deviceExtensionNames))
 
-    if (ExtensionFound(VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME, deviceExtensionNames))
-    {
-        mFeatures.supportsExternalSemaphoreFd.enabled = true;
-    }
+    ANGLE_FEATURE_CONDITION(
+        (&mFeatures), supportsExternalSemaphoreFd,
+        ExtensionFound(VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME, deviceExtensionNames))
 
-    if (ExtensionFound(VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME, deviceExtensionNames))
-    {
-        mFeatures.supportsShaderStencilExport.enabled = true;
-    }
+    ANGLE_FEATURE_CONDITION(
+        (&mFeatures), supportsShaderStencilExport,
+        ExtensionFound(VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME, deviceExtensionNames))
 
     // TODO(syoussefi): when the code path using the extension is implemented, this should be
     // conditioned to the extension not being present as well.  http://anglebug.com/3206
-    if (mPhysicalDeviceFeatures.vertexPipelineStoresAndAtomics)
-    {
-        mFeatures.emulateTransformFeedback.enabled = true;
-    }
+    ANGLE_FEATURE_CONDITION((&mFeatures), emulateTransformFeedback,
+                            mPhysicalDeviceFeatures.vertexPipelineStoresAndAtomics == VK_TRUE)
 
-    if (IsLinux() && IsIntel(mPhysicalDeviceProperties.vendorID))
-    {
-        mFeatures.disableFifoPresentMode.enabled = true;
-    }
+    ANGLE_FEATURE_CONDITION((&mFeatures), disableFifoPresentMode, IsLinux() && isIntel)
 
-    if (IsAndroid() && IsQualcomm(mPhysicalDeviceProperties.vendorID))
-    {
-        if (vk::CommandBuffer::ExecutesInline())
-        {
-            mFeatures.restartRenderPassAfterLoadOpClear.enabled = true;
-        }
+    ANGLE_FEATURE_CONDITION((&mFeatures), restartRenderPassAfterLoadOpClear,
+                            IsAndroid() && isQualcomm && vk::CommandBuffer::ExecutesInline())
 
-        mFeatures.bindEmptyForUnusedDescriptorSets.enabled = true;
+    ANGLE_FEATURE_CONDITION((&mFeatures), bindEmptyForUnusedDescriptorSets,
+                            IsAndroid() && isQualcomm)
 
-        mFeatures.forceOldRewriteStructSamplers.enabled = true;
-    }
+    ANGLE_FEATURE_CONDITION((&mFeatures), forceOldRewriteStructSamplers, IsAndroid() && isQualcomm)
 
-    if (IsWindows() && IsIntel(mPhysicalDeviceProperties.vendorID))
-    {
-        mFeatures.forceNonZeroScissor.enabled = true;
-    }
+    ANGLE_FEATURE_CONDITION((&mFeatures), forceNonZeroScissor, IsWindows() && isIntel)
 
-    if (IsIntel(mPhysicalDeviceProperties.vendorID) ||
-        (IsWindows() && IsAMD(mPhysicalDeviceProperties.vendorID)))
-    {
-        mFeatures.perFrameWindowSizeQuery.enabled = true;
-    }
+    ANGLE_FEATURE_CONDITION((&mFeatures), perFrameWindowSizeQuery,
+                            isIntel || (IsWindows() && isAMD))
 
-    if (IsWindows() && IsAMD(mPhysicalDeviceProperties.vendorID))
-    {
-        // Disabled on AMD/windows due to buggy behavior.
-        mFeatures.disallowSeamfulCubeMapEmulation.enabled = true;
-    }
+    // Disabled on AMD/windows due to buggy behavior.
+    ANGLE_FEATURE_CONDITION((&mFeatures), disallowSeamfulCubeMapEmulation, IsWindows() && isAMD)
 
-    if (IsAndroid() && IsQualcomm(mPhysicalDeviceProperties.vendorID))
-    {
-        mFeatures.forceD16TexFilter.enabled = true;
-    }
+    ANGLE_FEATURE_CONDITION((&mFeatures), forceD16TexFilter, IsAndroid() && isQualcomm)
 
-    if (IsAndroid() && IsQualcomm(mPhysicalDeviceProperties.vendorID))
-    {
-        mFeatures.disableFlippingBlitWithCommand.enabled = true;
-    }
+    ANGLE_FEATURE_CONDITION((&mFeatures), disableFlippingBlitWithCommand, IsAndroid() && isQualcomm)
 
-    if (IsPixel2(mPhysicalDeviceProperties.vendorID, mPhysicalDeviceProperties.deviceID) ||
-        IsPixel1XL(mPhysicalDeviceProperties.vendorID, mPhysicalDeviceProperties.deviceID))
-    {
-        mFeatures.transientCommandBuffer.enabled = true;
-    }
+    ANGLE_FEATURE_CONDITION(
+        (&mFeatures), transientCommandBuffer,
+        IsPixel2(mPhysicalDeviceProperties.vendorID, mPhysicalDeviceProperties.deviceID) ||
+            IsPixel1XL(mPhysicalDeviceProperties.vendorID, mPhysicalDeviceProperties.deviceID))
+
+    angle::PlatformMethods *platform = ANGLEPlatformCurrent();
+    platform->overrideFeaturesVk(platform, &mFeatures);
 }
 
 void RendererVk::initPipelineCacheVkKey()
@@ -1518,7 +1536,8 @@
 
 angle::Result RendererVk::queueSubmit(vk::Context *context,
                                       const VkSubmitInfo &submitInfo,
-                                      const vk::Fence &fence)
+                                      const vk::Fence &fence,
+                                      Serial *serialOut)
 {
     {
         std::lock_guard<decltype(mQueueMutex)> lock(mQueueMutex);
@@ -1527,6 +1546,10 @@
 
     ANGLE_TRY(cleanupGarbage(context, false));
 
+    *serialOut                = mCurrentQueueSerial;
+    mLastSubmittedQueueSerial = mCurrentQueueSerial;
+    mCurrentQueueSerial       = mQueueSerialFactory.generate();
+
     return angle::Result::Continue;
 }
 
@@ -1554,11 +1577,6 @@
     }
 }
 
-Serial RendererVk::nextSerial()
-{
-    return mQueueSerialFactory.generate();
-}
-
 angle::Result RendererVk::newSharedFence(vk::Context *context,
                                          vk::Shared<vk::Fence> *sharedFenceOut)
 {
@@ -1579,21 +1597,6 @@
     return angle::Result::Continue;
 }
 
-void RendererVk::addGarbage(vk::Shared<vk::Fence> &&fence,
-                            std::vector<vk::GarbageObjectBase> &&garbage)
-{
-    std::vector<vk::Shared<vk::Fence>> fences;
-    fences.push_back(std::move(fence));
-    addGarbage(std::move(fences), std::move(garbage));
-}
-
-void RendererVk::addGarbage(std::vector<vk::Shared<vk::Fence>> &&fences,
-                            std::vector<vk::GarbageObjectBase> &&garbage)
-{
-    std::lock_guard<decltype(mGarbageMutex)> lock(mGarbageMutex);
-    mFencedGarbage.emplace_back(std::move(fences), std::move(garbage));
-}
-
 template <VkFormatFeatureFlags VkFormatProperties::*features>
 VkFormatFeatureFlags RendererVk::getFormatFeatureBits(VkFormat format,
                                                       const VkFormatFeatureFlags featureBits)
@@ -1634,17 +1637,13 @@
 {
     std::lock_guard<decltype(mGarbageMutex)> lock(mGarbageMutex);
 
-    auto garbageIter = mFencedGarbage.begin();
-    while (garbageIter != mFencedGarbage.end())
+    for (auto garbageIter = mSharedGarbage.begin(); garbageIter != mSharedGarbage.end();)
     {
-        ANGLE_TRY(WaitFences(context, &garbageIter->first, block));
-        if (garbageIter->first.empty())
+        // Possibly 'counter' should be always zero when we add the object to garbage.
+        vk::SharedGarbage &garbage = *garbageIter;
+        if (garbage.destroyIfComplete(mDevice, mLastCompletedQueueSerial))
         {
-            for (vk::GarbageObjectBase &garbageObject : garbageIter->second)
-            {
-                garbageObject.destroy(mDevice);
-            }
-            garbageIter = mFencedGarbage.erase(garbageIter);
+            garbageIter = mSharedGarbage.erase(garbageIter);
         }
         else
         {
@@ -1668,4 +1667,25 @@
 
     return std::move(mLastValidationMessage);
 }
+
+uint64_t RendererVk::getMaxFenceWaitTimeNs() const
+{
+    // Wait a maximum of 10s.  If that times out, we declare it a failure.
+    constexpr uint64_t kMaxFenceWaitTimeNs = 10'000'000'000llu;
+
+#if defined(NDEBUG)
+    return kMaxFenceWaitTimeNs;
+#else
+    // More time in debug builds (e.g. SwiftShader debug needs more time)
+    return kMaxFenceWaitTimeNs * 100;
+#endif
+}
+
+void RendererVk::onCompletedSerial(Serial serial)
+{
+    if (serial > mLastCompletedQueueSerial)
+    {
+        mLastCompletedQueueSerial = serial;
+    }
+}
 }  // namespace rx
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/RendererVk.h b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/RendererVk.h
index 36f7ec2..572b315 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/RendererVk.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/RendererVk.h
@@ -39,12 +39,24 @@
 namespace vk
 {
 struct Format;
-}
+}  // namespace vk
 
 // Supports one semaphore from current surface, and one semaphore passed to
 // glSignalSemaphoreEXT.
 using SignalSemaphoreVector = angle::FixedVector<VkSemaphore, 2>;
 
+inline void CollectGarbage(std::vector<vk::GarbageObject> *garbageOut) {}
+
+template <typename ArgT, typename... ArgsT>
+void CollectGarbage(std::vector<vk::GarbageObject> *garbageOut, ArgT object, ArgsT... objectsIn)
+{
+    if (object->valid())
+    {
+        garbageOut->emplace_back(vk::GarbageObject::Get(object));
+    }
+    CollectGarbage(garbageOut, objectsIn...);
+}
+
 class RendererVk : angle::NonCopyable
 {
   public:
@@ -125,6 +137,7 @@
         ASSERT(mFeaturesInitialized);
         return mFeatures;
     }
+    uint32_t getMaxVertexAttribDivisor() const { return mMaxVertexAttribDivisor; }
 
     bool isMockICDEnabled() const { return mEnabledICD == vk::ICD::Mock; }
 
@@ -139,21 +152,34 @@
 
     angle::Result queueSubmit(vk::Context *context,
                               const VkSubmitInfo &submitInfo,
-                              const vk::Fence &fence);
+                              const vk::Fence &fence,
+                              Serial *serialOut);
     angle::Result queueWaitIdle(vk::Context *context);
     VkResult queuePresent(const VkPresentInfoKHR &presentInfo);
 
-    Serial nextSerial();
-
     angle::Result newSharedFence(vk::Context *context, vk::Shared<vk::Fence> *sharedFenceOut);
     inline void resetSharedFence(vk::Shared<vk::Fence> *sharedFenceIn)
     {
         sharedFenceIn->resetAndRecycle(&mFenceRecycler);
     }
 
-    void addGarbage(vk::Shared<vk::Fence> &&fence, std::vector<vk::GarbageObjectBase> &&garbage);
-    void addGarbage(std::vector<vk::Shared<vk::Fence>> &&fences,
-                    std::vector<vk::GarbageObjectBase> &&garbage);
+    template <typename... ArgsT>
+    void collectGarbageAndReinit(vk::SharedResourceUse *use, ArgsT... garbageIn)
+    {
+        std::vector<vk::GarbageObject> sharedGarbage;
+        CollectGarbage(&sharedGarbage, garbageIn...);
+        if (!sharedGarbage.empty())
+        {
+            mSharedGarbage.emplace_back(std::move(*use), std::move(sharedGarbage));
+        }
+        else
+        {
+            // Force releasing "use" even if no garbage was created.
+            use->release();
+        }
+        // Keep "use" valid.
+        use->init();
+    }
 
     static constexpr size_t kMaxExtensionNames = 200;
     using ExtensionNameList = angle::FixedVector<const char *, kMaxExtensionNames>;
@@ -164,6 +190,18 @@
     void onNewValidationMessage(const std::string &message);
     std::string getAndClearLastValidationMessage(uint32_t *countSinceLastClear);
 
+    uint64_t getMaxFenceWaitTimeNs() const;
+    Serial getCurrentQueueSerial() const { return mCurrentQueueSerial; }
+    Serial getLastSubmittedQueueSerial() const { return mLastSubmittedQueueSerial; }
+    Serial getLastCompletedQueueSerial() const { return mLastCompletedQueueSerial; }
+
+    void onCompletedSerial(Serial serial);
+
+    bool shouldCleanupGarbage()
+    {
+        return (mSharedGarbage.size() > mGarbageCollectionFlushThreshold);
+    }
+
   private:
     angle::Result initializeDevice(DisplayVk *displayVk, uint32_t queueFamilyIndex);
     void ensureCapsInitialized() const;
@@ -210,6 +248,9 @@
     VkDevice mDevice;
     AtomicSerialFactory mQueueSerialFactory;
     AtomicSerialFactory mShaderSerialFactory;
+
+    Serial mLastCompletedQueueSerial;
+    Serial mLastSubmittedQueueSerial;
     Serial mCurrentQueueSerial;
 
     bool mDeviceLost;
@@ -217,9 +258,7 @@
     vk::Recycler<vk::Fence> mFenceRecycler;
 
     std::mutex mGarbageMutex;
-    using FencedGarbage =
-        std::pair<std::vector<vk::Shared<vk::Fence>>, std::vector<vk::GarbageObjectBase>>;
-    std::vector<FencedGarbage> mFencedGarbage;
+    vk::SharedGarbageList mSharedGarbage;
 
     vk::MemoryProperties mMemoryProperties;
     vk::FormatTable mFormatTable;
@@ -246,6 +285,11 @@
     // Latest validation data for debug overlay.
     std::string mLastValidationMessage;
     uint32_t mValidationMessageCount;
+
+    // How close to VkPhysicalDeviceLimits::maxMemoryAllocationCount we allow ourselves to get
+    static constexpr double kPercentMaxMemoryAllocationCount = 0.3;
+    // How many objects to garbage collect before issuing a flush()
+    uint32_t mGarbageCollectionFlushThreshold;
 };
 
 }  // namespace rx
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SamplerVk.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SamplerVk.cpp
index 483437b..74169b7 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SamplerVk.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SamplerVk.cpp
@@ -23,7 +23,7 @@
 void SamplerVk::onDestroy(const gl::Context *context)
 {
     ContextVk *contextVk = vk::GetImpl(context);
-    contextVk->releaseObject(contextVk->getCurrentQueueSerial(), &mSampler);
+    contextVk->addGarbage(&mSampler);
 }
 
 const vk::Sampler &SamplerVk::getSampler() const
@@ -43,7 +43,7 @@
         {
             return angle::Result::Continue;
         }
-        contextVk->releaseObject(contextVk->getCurrentQueueSerial(), &mSampler);
+        contextVk->addGarbage(&mSampler);
     }
 
     const gl::Extensions &extensions = renderer->getNativeExtensions();
@@ -69,6 +69,15 @@
     samplerInfo.borderColor             = VK_BORDER_COLOR_INT_TRANSPARENT_BLACK;
     samplerInfo.unnormalizedCoordinates = VK_FALSE;
 
+    if (!gl::IsMipmapFiltered(mState))
+    {
+        // Per the Vulkan spec, GL_NEAREST and GL_LINEAR do not map directly to Vulkan, so
+        // they must be emulated (See "Mapping of OpenGL to Vulkan filter modes")
+        samplerInfo.mipmapMode = VK_SAMPLER_MIPMAP_MODE_NEAREST;
+        samplerInfo.minLod     = 0.0f;
+        samplerInfo.maxLod     = 0.25f;
+    }
+
     ANGLE_VK_TRY(contextVk, mSampler.init(contextVk->getDevice(), samplerInfo));
     // Regenerate the serial on a sampler change.
     mSerial = contextVk->generateTextureSerial();
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SecondaryCommandBuffer.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SecondaryCommandBuffer.cpp
index 9e19ec0..0ec910e 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SecondaryCommandBuffer.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SecondaryCommandBuffer.cpp
@@ -213,6 +213,20 @@
                               params->firstVertex, params->firstInstance);
                     break;
                 }
+                case CommandID::DrawIndirect:
+                {
+                    const DrawIndirectParams *params =
+                        getParamPtr<DrawIndirectParams>(currentCommand);
+                    vkCmdDrawIndirect(cmdBuffer, params->buffer, params->offset, 1, 0);
+                    break;
+                }
+                case CommandID::DrawIndexedIndirect:
+                {
+                    const DrawIndexedIndirectParams *params =
+                        getParamPtr<DrawIndexedIndirectParams>(currentCommand);
+                    vkCmdDrawIndexedIndirect(cmdBuffer, params->buffer, params->offset, 1, 0);
+                    break;
+                }
                 case CommandID::EndQuery:
                 {
                     const EndQueryParams *params = getParamPtr<EndQueryParams>(currentCommand);
@@ -436,6 +450,9 @@
                 case CommandID::DrawInstanced:
                     result += "DrawInstanced";
                     break;
+                case CommandID::DrawIndexedIndirect:
+                    result += "DrawIndexedIndirect";
+                    break;
                 case CommandID::EndQuery:
                     result += "EndQuery";
                     break;
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SecondaryCommandBuffer.h b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SecondaryCommandBuffer.h
index cc56e76..cc37046 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SecondaryCommandBuffer.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SecondaryCommandBuffer.h
@@ -51,6 +51,8 @@
     DrawIndexedInstancedBaseVertexBaseInstance,
     DrawInstanced,
     DrawInstancedBaseInstance,
+    DrawIndirect,
+    DrawIndexedIndirect,
     EndQuery,
     ExecutionBarrier,
     FillBuffer,
@@ -230,6 +232,13 @@
 };
 VERIFY_4_BYTE_ALIGNMENT(DrawIndexedInstancedBaseVertexBaseInstanceParams)
 
+struct DrawIndexedIndirectParams
+{
+    VkBuffer buffer;
+    VkDeviceSize offset;
+};
+VERIFY_4_BYTE_ALIGNMENT(DrawIndexedIndirectParams)
+
 struct DispatchParams
 {
     uint32_t groupCountX;
@@ -238,6 +247,13 @@
 };
 VERIFY_4_BYTE_ALIGNMENT(DispatchParams)
 
+struct DrawIndirectParams
+{
+    VkBuffer buffer;
+    VkDeviceSize offset;
+};
+VERIFY_4_BYTE_ALIGNMENT(DrawIndirectParams)
+
 struct DispatchIndirectParams
 {
     VkBuffer buffer;
@@ -476,6 +492,15 @@
                                    uint32_t firstVertex,
                                    uint32_t firstInstance);
 
+    void drawIndirect(const Buffer &buffer,
+                      VkDeviceSize offset,
+                      uint32_t drawCount,
+                      uint32_t stride);
+    void drawIndexedIndirect(const Buffer &buffer,
+                             VkDeviceSize offset,
+                             uint32_t drawCount,
+                             uint32_t stride);
+
     void endQuery(VkQueryPool queryPool, uint32_t query);
 
     void executionBarrier(VkPipelineStageFlags stageMask);
@@ -943,6 +968,32 @@
     paramStruct->firstInstance = firstInstance;
 }
 
+ANGLE_INLINE void SecondaryCommandBuffer::drawIndirect(const Buffer &buffer,
+                                                       VkDeviceSize offset,
+                                                       uint32_t drawCount,
+                                                       uint32_t stride)
+{
+    DrawIndirectParams *paramStruct = initCommand<DrawIndirectParams>(CommandID::DrawIndirect);
+    paramStruct->buffer             = buffer.getHandle();
+    paramStruct->offset             = offset;
+
+    // OpenGL ES doesn't have a way to specify a drawCount or stride, throw assert if something
+    // changes.
+    ASSERT(drawCount == 1);
+}
+
+ANGLE_INLINE void SecondaryCommandBuffer::drawIndexedIndirect(const Buffer &buffer,
+                                                              VkDeviceSize offset,
+                                                              uint32_t drawCount,
+                                                              uint32_t stride)
+{
+    DrawIndexedIndirectParams *paramStruct =
+        initCommand<DrawIndexedIndirectParams>(CommandID::DrawIndexedIndirect);
+    paramStruct->buffer = buffer.getHandle();
+    paramStruct->offset = offset;
+    ASSERT(drawCount == 1);
+}
+
 ANGLE_INLINE void SecondaryCommandBuffer::endQuery(VkQueryPool queryPool, uint32_t query)
 {
     EndQueryParams *paramStruct = initCommand<EndQueryParams>(CommandID::EndQuery);
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SemaphoreVk.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SemaphoreVk.cpp
index 46d486e..6f5991c 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SemaphoreVk.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SemaphoreVk.cpp
@@ -22,7 +22,7 @@
 void SemaphoreVk::onDestroy(const gl::Context *context)
 {
     ContextVk *contextVk = vk::GetImpl(context);
-    contextVk->releaseObject(contextVk->getCurrentQueueSerial(), &mSemaphore);
+    contextVk->addGarbage(&mSemaphore);
 }
 
 angle::Result SemaphoreVk::importFd(gl::Context *context, gl::HandleType handleType, GLint fd)
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SurfaceVk.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SurfaceVk.cpp
index 64e1f2e..81befda 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SurfaceVk.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SurfaceVk.cpp
@@ -143,7 +143,8 @@
 
     VkExtent3D extents = {std::max(static_cast<uint32_t>(width), 1u),
                           std::max(static_cast<uint32_t>(height), 1u), 1u};
-    ANGLE_TRY(image.init(displayVk, gl::TextureType::_2D, extents, vkFormat, samples, usage, 1, 1));
+    ANGLE_TRY(
+        image.init(displayVk, gl::TextureType::_2D, extents, vkFormat, samples, usage, 0, 0, 1, 1));
 
     VkMemoryPropertyFlags flags = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT;
     ANGLE_TRY(image.initMemory(displayVk, renderer->getMemoryProperties(), flags));
@@ -162,21 +163,13 @@
 void OffscreenSurfaceVk::AttachmentImage::destroy(const egl::Display *display)
 {
     DisplayVk *displayVk = vk::GetImpl(display);
-
-    std::vector<vk::GarbageObjectBase> garbageObjects;
-    image.releaseImage(displayVk, &garbageObjects);
-    image.releaseStagingBuffer(displayVk, &garbageObjects);
+    VkDevice device      = displayVk->getDevice();
 
     // It should be safe to immediately destroy the backing images of a surface on surface
-    // destruction.
-    // If this assumption is broken, we could track the last submit fence for the last context that
-    // used this surface to garbage collect the surfaces.
-    for (vk::GarbageObjectBase &garbage : garbageObjects)
-    {
-        garbage.destroy(displayVk->getDevice());
-    }
-
-    imageView.destroy(displayVk->getDevice());
+    // destruction. If this assumption is incorrect, we could use the last submit serial
+    // to determine when to destroy the surface.
+    image.destroy(device);
+    imageView.destroy(device);
 }
 
 OffscreenSurfaceVk::OffscreenSurfaceVk(const egl::SurfaceState &surfaceState,
@@ -184,9 +177,9 @@
                                        EGLint height)
     : SurfaceVk(surfaceState), mWidth(width), mHeight(height)
 {
-    mColorRenderTarget.init(&mColorAttachment.image, &mColorAttachment.imageView, nullptr, 0, 0);
+    mColorRenderTarget.init(&mColorAttachment.image, &mColorAttachment.imageView, 0, 0);
     mDepthStencilRenderTarget.init(&mDepthStencilAttachment.image,
-                                   &mDepthStencilAttachment.imageView, nullptr, 0, 0);
+                                   &mDepthStencilAttachment.imageView, 0, 0);
 }
 
 OffscreenSurfaceVk::~OffscreenSurfaceVk() {}
@@ -415,8 +408,8 @@
 {
     // Initialize the color render target with the multisampled targets.  If not multisampled, the
     // render target will be updated to refer to a swapchain image on every acquire.
-    mColorRenderTarget.init(&mColorImageMS, &mColorImageViewMS, nullptr, 0, 0);
-    mDepthStencilRenderTarget.init(&mDepthStencilImage, &mDepthStencilImageView, nullptr, 0, 0);
+    mColorRenderTarget.init(&mColorImageMS, &mColorImageViewMS, 0, 0);
+    mDepthStencilRenderTarget.init(&mDepthStencilImage, &mDepthStencilImageView, 0, 0);
 }
 
 WindowSurfaceVk::~WindowSurfaceVk()
@@ -779,7 +772,7 @@
         const VkImageUsageFlags usage = kSurfaceVKColorImageUsageFlags;
 
         ANGLE_TRY(mColorImageMS.init(context, gl::TextureType::_2D, vkExtents, format, samples,
-                                     usage, 1, 1));
+                                     usage, 0, 0, 1, 1));
         ANGLE_TRY(mColorImageMS.initMemory(context, renderer->getMemoryProperties(),
                                            VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT));
 
@@ -822,7 +815,7 @@
         const VkImageUsageFlags dsUsage = kSurfaceVKDepthStencilImageUsageFlags;
 
         ANGLE_TRY(mDepthStencilImage.init(context, gl::TextureType::_2D, vkExtents, dsFormat,
-                                          samples, dsUsage, 1, 1));
+                                          samples, dsUsage, 0, 0, 1, 1));
         ANGLE_TRY(mDepthStencilImage.initMemory(context, renderer->getMemoryProperties(),
                                                 VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT));
 
@@ -894,38 +887,36 @@
 
 void WindowSurfaceVk::releaseSwapchainImages(ContextVk *contextVk)
 {
+    RendererVk *renderer = contextVk->getRenderer();
+
     if (mDepthStencilImage.valid())
     {
-        Serial depthStencilSerial = mDepthStencilImage.getStoredQueueSerial();
-        mDepthStencilImage.releaseImage(contextVk);
-        mDepthStencilImage.releaseStagingBuffer(contextVk);
+        mDepthStencilImage.releaseImage(renderer);
+        mDepthStencilImage.releaseStagingBuffer(renderer);
 
         if (mDepthStencilImageView.valid())
         {
-            contextVk->releaseObject(depthStencilSerial, &mDepthStencilImageView);
+            contextVk->addGarbage(&mDepthStencilImageView);
         }
     }
 
     if (mColorImageMS.valid())
     {
-        Serial serial = mColorImageMS.getStoredQueueSerial();
-        mColorImageMS.releaseImage(contextVk);
-        mColorImageMS.releaseStagingBuffer(contextVk);
+        mColorImageMS.releaseImage(renderer);
+        mColorImageMS.releaseStagingBuffer(renderer);
 
-        contextVk->releaseObject(serial, &mColorImageViewMS);
-        contextVk->releaseObject(serial, &mFramebufferMS);
+        contextVk->addGarbage(&mColorImageViewMS);
+        contextVk->addGarbage(&mFramebufferMS);
     }
 
     for (SwapchainImage &swapchainImage : mSwapchainImages)
     {
-        Serial imageSerial = swapchainImage.image.getStoredQueueSerial();
-
         // We don't own the swapchain image handles, so we just remove our reference to it.
         swapchainImage.image.resetImageWeakReference();
         swapchainImage.image.destroy(contextVk->getDevice());
 
-        contextVk->releaseObject(imageSerial, &swapchainImage.imageView);
-        contextVk->releaseObject(imageSerial, &swapchainImage.framebuffer);
+        contextVk->addGarbage(&swapchainImage.imageView);
+        contextVk->addGarbage(&swapchainImage.framebuffer);
 
         // present history must have already been taken care of.
         for (ImagePresentHistory &presentHistory : swapchainImage.presentHistory)
@@ -940,49 +931,21 @@
 
 void WindowSurfaceVk::destroySwapChainImages(DisplayVk *displayVk)
 {
-    std::vector<vk::GarbageObjectBase> garbageObjects;
-    if (mDepthStencilImage.valid())
-    {
-        mDepthStencilImage.releaseImage(displayVk, &garbageObjects);
-        mDepthStencilImage.releaseStagingBuffer(displayVk, &garbageObjects);
-
-        if (mDepthStencilImageView.valid())
-        {
-            mDepthStencilImageView.dumpResources(&garbageObjects);
-        }
-    }
-
-    if (mColorImageMS.valid())
-    {
-        mColorImageMS.releaseImage(displayVk, &garbageObjects);
-        mColorImageMS.releaseImage(displayVk, &garbageObjects);
-
-        mColorImageViewMS.dumpResources(&garbageObjects);
-        mFramebufferMS.dumpResources(&garbageObjects);
-    }
-
     VkDevice device = displayVk->getDevice();
 
-    for (vk::GarbageObjectBase &garbage : garbageObjects)
-    {
-        garbage.destroy(device);
-    }
+    mDepthStencilImage.destroy(device);
+    mDepthStencilImageView.destroy(device);
+    mColorImageMS.destroy(device);
+    mColorImageViewMS.destroy(device);
+    mFramebufferMS.destroy(device);
 
     for (SwapchainImage &swapchainImage : mSwapchainImages)
     {
         // We don't own the swapchain image handles, so we just remove our reference to it.
         swapchainImage.image.resetImageWeakReference();
         swapchainImage.image.destroy(device);
-
-        if (swapchainImage.imageView.valid())
-        {
-            swapchainImage.imageView.destroy(device);
-        }
-
-        if (swapchainImage.framebuffer.valid())
-        {
-            swapchainImage.framebuffer.destroy(device);
-        }
+        swapchainImage.imageView.destroy(device);
+        swapchainImage.framebuffer.destroy(device);
 
         for (ImagePresentHistory &presentHistory : swapchainImage.presentHistory)
         {
@@ -1053,7 +1016,7 @@
                                    multisampledTransition);
 
         // Setup graph dependency between the swapchain image and the multisampled one.
-        image.image.addReadDependency(&mColorImageMS);
+        image.image.addReadDependency(contextVk, &mColorImageMS);
 
         VkImageResolve resolveRegion                = {};
         resolveRegion.srcSubresource.aspectMask     = VK_IMAGE_ASPECT_COLOR_BIT;
@@ -1230,17 +1193,6 @@
 
     SwapchainImage &image = mSwapchainImages[mCurrentSwapchainImageIndex];
 
-    // This swap chain image is new, reset any dependency information it has.
-    //
-    // When the Vulkan backend is multithreading, different contexts can have very different current
-    // serials.  If a surface is rendered to by multiple contexts in different frames, the last
-    // context to write a particular swap chain image has no bearing on the current context writing
-    // to that image.
-    //
-    // Clear the image's queue serial because it's possible that it appears to be in the future to
-    // the next context that writes to the image.
-    image.image.resetQueueSerial();
-
     // Update RenderTarget pointers to this swapchain image if not multisampling.  Note: a possible
     // optimization is to defer the |vkAcquireNextImageKHR| call itself to |present()| if
     // multisampling, as the swapchain image is essentially unused until then.
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SyncVk.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SyncVk.cpp
index 3716e79..a872f4b 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SyncVk.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SyncVk.cpp
@@ -17,32 +17,25 @@
 
 namespace rx
 {
-FenceSyncVk::FenceSyncVk() {}
-
-FenceSyncVk::~FenceSyncVk() {}
-
-void FenceSyncVk::onDestroy(ContextVk *contextVk)
+namespace vk
 {
-    if (mEvent.valid())
-    {
-        contextVk->releaseObject(contextVk->getCurrentQueueSerial(), &mEvent);
-    }
-
-    for (vk::Shared<vk::Fence> &fence : mFences)
-    {
-        fence.reset(contextVk->getDevice());
-    }
+SyncHelper::SyncHelper()
+{
+    mUse.init();
 }
 
-void FenceSyncVk::onDestroy(DisplayVk *display)
+SyncHelper::~SyncHelper()
 {
-    std::vector<vk::GarbageObjectBase> garbage;
-    mEvent.dumpResources(&garbage);
-
-    display->getRenderer()->addGarbage(std::move(mFences), std::move(garbage));
+    mUse.release();
 }
 
-angle::Result FenceSyncVk::initialize(ContextVk *contextVk)
+void SyncHelper::releaseToRenderer(RendererVk *renderer)
+{
+    renderer->collectGarbageAndReinit(&mUse, &mEvent);
+    mFence.reset(renderer->getDevice());
+}
+
+angle::Result SyncHelper::initialize(ContextVk *contextVk)
 {
     ASSERT(!mEvent.valid());
 
@@ -53,24 +46,24 @@
     eventCreateInfo.sType             = VK_STRUCTURE_TYPE_EVENT_CREATE_INFO;
     eventCreateInfo.flags             = 0;
 
-    vk::DeviceScoped<vk::Event> event(device);
+    DeviceScoped<Event> event(device);
     ANGLE_VK_TRY(contextVk, event.get().init(device, eventCreateInfo));
-
-    vk::Shared<vk::Fence> fence;
-    ANGLE_TRY(contextVk->getNextSubmitFence(&fence));
+    ANGLE_TRY(contextVk->getNextSubmitFence(&mFence));
 
     mEvent = event.release();
-    mFences.emplace_back(std::move(fence));
 
-    contextVk->getCommandGraph()->setFenceSync(mEvent);
+    CommandGraph *commandGraph = contextVk->getCommandGraph();
+    commandGraph->setFenceSync(mEvent);
+    commandGraph->onResourceUse(mUse);
+
     return angle::Result::Continue;
 }
 
-angle::Result FenceSyncVk::clientWait(vk::Context *context,
-                                      ContextVk *contextVk,
-                                      bool flushCommands,
-                                      uint64_t timeout,
-                                      VkResult *outResult)
+angle::Result SyncHelper::clientWait(Context *context,
+                                     ContextVk *contextVk,
+                                     bool flushCommands,
+                                     uint64_t timeout,
+                                     VkResult *outResult)
 {
     RendererVk *renderer = context->getRenderer();
 
@@ -97,8 +90,8 @@
 
     // Wait on the fence that's expected to be signaled on the first vkQueueSubmit after
     // `initialize` was called. The first fence is the fence created to signal this sync.
-    ASSERT(!mFences.empty());
-    VkResult status = mFences[0].get().wait(renderer->getDevice(), timeout);
+    ASSERT(mFence.get().valid());
+    VkResult status = mFence.get().wait(renderer->getDevice(), timeout);
 
     // Check for errors, but don't consider timeout as such.
     if (status != VK_TIMEOUT)
@@ -110,21 +103,14 @@
     return angle::Result::Continue;
 }
 
-angle::Result FenceSyncVk::serverWait(vk::Context *context, ContextVk *contextVk)
+void SyncHelper::serverWait(ContextVk *contextVk)
 {
-    if (contextVk)
-    {
-        contextVk->getCommandGraph()->waitFenceSync(mEvent);
-
-        // Track fences from Contexts that use this sync for garbage collection.
-        vk::Shared<vk::Fence> nextSubmitFence;
-        ANGLE_TRY(contextVk->getNextSubmitFence(&nextSubmitFence));
-        mFences.emplace_back(std::move(nextSubmitFence));
-    }
-    return angle::Result::Continue;
+    CommandGraph *commandGraph = contextVk->getCommandGraph();
+    commandGraph->waitFenceSync(mEvent);
+    commandGraph->onResourceUse(mUse);
 }
 
-angle::Result FenceSyncVk::getStatus(vk::Context *context, bool *signaled)
+angle::Result SyncHelper::getStatus(Context *context, bool *signaled)
 {
     VkResult result = mEvent.getStatus(context->getDevice());
     if (result != VK_EVENT_SET && result != VK_EVENT_RESET)
@@ -134,6 +120,7 @@
     *signaled = result == VK_EVENT_SET;
     return angle::Result::Continue;
 }
+}  // namespace vk
 
 SyncVk::SyncVk() : SyncImpl() {}
 
@@ -141,7 +128,7 @@
 
 void SyncVk::onDestroy(const gl::Context *context)
 {
-    mFenceSync.onDestroy(vk::GetImpl(context));
+    mFenceSync.releaseToRenderer(vk::GetImpl(context)->getRenderer());
 }
 
 angle::Result SyncVk::set(const gl::Context *context, GLenum condition, GLbitfield flags)
@@ -194,7 +181,8 @@
     ASSERT(timeout == GL_TIMEOUT_IGNORED);
 
     ContextVk *contextVk = vk::GetImpl(context);
-    return mFenceSync.serverWait(contextVk, contextVk);
+    mFenceSync.serverWait(contextVk);
+    return angle::Result::Continue;
 }
 
 angle::Result SyncVk::getStatus(const gl::Context *context, GLint *outResult)
@@ -215,7 +203,7 @@
 
 void EGLSyncVk::onDestroy(const egl::Display *display)
 {
-    mFenceSync.onDestroy(vk::GetImpl(display));
+    mFenceSync.releaseToRenderer(vk::GetImpl(display)->getRenderer());
 }
 
 egl::Error EGLSyncVk::initialize(const egl::Display *display,
@@ -275,12 +263,14 @@
                                  const gl::Context *context,
                                  EGLint flags)
 {
+    // Server wait requires a valid bound context.
+    ASSERT(context);
+
+    // No flags are currently implemented.
     ASSERT(flags == 0);
-    ContextVk *contextVk = context ? vk::GetImpl(context) : nullptr;
-    if (mFenceSync.serverWait(vk::GetImpl(display), contextVk) == angle::Result::Stop)
-    {
-        return egl::Error(EGL_BAD_ALLOC);
-    }
+
+    ContextVk *contextVk = vk::GetImpl(context);
+    mFenceSync.serverWait(contextVk);
     return egl::NoError();
 }
 
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SyncVk.h b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SyncVk.h
index 6cfef2c..0a97c11 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SyncVk.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SyncVk.h
@@ -12,8 +12,7 @@
 
 #include "libANGLE/renderer/EGLSyncImpl.h"
 #include "libANGLE/renderer/SyncImpl.h"
-
-#include "libANGLE/renderer/vulkan/vk_utils.h"
+#include "libANGLE/renderer/vulkan/CommandGraph.h"
 
 namespace egl
 {
@@ -22,34 +21,38 @@
 
 namespace rx
 {
+namespace vk
+{
 // The behaviors of SyncImpl and EGLSyncImpl as fence syncs (only supported type) are currently
 // identical for the Vulkan backend, and this class implements both interfaces.
-class FenceSyncVk
+class SyncHelper
 {
   public:
-    FenceSyncVk();
-    ~FenceSyncVk();
+    SyncHelper();
+    ~SyncHelper();
 
-    void onDestroy(ContextVk *contextVk);
-    void onDestroy(DisplayVk *display);
+    void releaseToRenderer(RendererVk *renderer);
 
     angle::Result initialize(ContextVk *contextVk);
-    angle::Result clientWait(vk::Context *context,
+    angle::Result clientWait(Context *context,
                              ContextVk *contextVk,
                              bool flushCommands,
                              uint64_t timeout,
                              VkResult *outResult);
-    angle::Result serverWait(vk::Context *context, ContextVk *contextVk);
-    angle::Result getStatus(vk::Context *context, bool *signaled);
+    void serverWait(ContextVk *contextVk);
+    angle::Result getStatus(Context *context, bool *signaled);
 
   private:
     // The vkEvent that's signaled on `init` and can be waited on in `serverWait`, or queried with
     // `getStatus`.
-    vk::Event mEvent;
-    // The first fence in the list is signaled once the CB including the `init` signal is executed.
-    // `clientWait` waits on this fence. The other fences are referenced to prevent deletion.
-    std::vector<vk::Shared<vk::Fence>> mFences;
+    Event mEvent;
+    // The fence is signaled once the CB including the `init` signal is executed.
+    // `clientWait` waits on this fence.
+    Shared<Fence> mFence;
+
+    SharedResourceUse mUse;
 };
+}  // namespace vk
 
 class SyncVk final : public SyncImpl
 {
@@ -70,7 +73,7 @@
     angle::Result getStatus(const gl::Context *context, GLint *outResult) override;
 
   private:
-    FenceSyncVk mFenceSync;
+    vk::SyncHelper mFenceSync;
 };
 
 class EGLSyncVk final : public EGLSyncImpl
@@ -97,7 +100,7 @@
     egl::Error dupNativeFenceFD(const egl::Display *display, EGLint *result) const override;
 
   private:
-    FenceSyncVk mFenceSync;
+    vk::SyncHelper mFenceSync;
 };
 }  // namespace rx
 
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/TextureVk.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/TextureVk.cpp
index df8d376..4dc09ce 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/TextureVk.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/TextureVk.cpp
@@ -72,6 +72,33 @@
     return image.getExtents().depth > 1 ? image.getExtents().depth : image.getLayerCount();
 }
 
+void GetRenderTargetLayerCountAndIndex(vk::ImageHelper *image,
+                                       const gl::ImageIndex &index,
+                                       GLuint *layerCount,
+                                       GLuint *layerIndex)
+{
+    switch (index.getType())
+    {
+        case gl::TextureType::CubeMap:
+            *layerIndex = index.cubeMapFaceIndex();
+            *layerCount = gl::kCubeFaceCount;
+            return;
+
+        case gl::TextureType::_3D:
+            *layerIndex = index.hasLayer() ? index.getLayerIndex() : 0;
+            *layerCount = image->getExtents().depth;
+            return;
+
+        case gl::TextureType::_2DArray:
+            *layerIndex = index.hasLayer() ? index.getLayerIndex() : 0;
+            *layerCount = image->getLayerCount();
+            return;
+
+        default:
+            UNREACHABLE();
+    }
+}
+
 bool HasBothDepthAndStencilAspects(VkImageAspectFlags aspectFlags)
 {
     constexpr VkImageAspectFlags kDepthStencilAspects =
@@ -80,67 +107,6 @@
 }
 }  // anonymous namespace
 
-TextureVk::TextureVkViews::TextureVkViews() {}
-TextureVk::TextureVkViews::~TextureVkViews() {}
-
-void TextureVk::TextureVkViews::release(ContextVk *contextVk, Serial currentSerial)
-{
-    contextVk->releaseObject(currentSerial, &mDrawBaseLevelImageView);
-    contextVk->releaseObject(currentSerial, &mReadBaseLevelImageView);
-    contextVk->releaseObject(currentSerial, &mReadMipmapImageView);
-    contextVk->releaseObject(currentSerial, &mFetchBaseLevelImageView);
-    contextVk->releaseObject(currentSerial, &mFetchMipmapImageView);
-}
-
-angle::Result TextureVk::generateMipmapLevelsWithCPU(ContextVk *contextVk,
-                                                     const angle::Format &sourceFormat,
-                                                     GLuint layer,
-                                                     GLuint firstMipLevel,
-                                                     GLuint maxMipLevel,
-                                                     const size_t sourceWidth,
-                                                     const size_t sourceHeight,
-                                                     const size_t sourceRowPitch,
-                                                     uint8_t *sourceData)
-{
-    size_t previousLevelWidth    = sourceWidth;
-    size_t previousLevelHeight   = sourceHeight;
-    uint8_t *previousLevelData   = sourceData;
-    size_t previousLevelRowPitch = sourceRowPitch;
-
-    for (GLuint currentMipLevel = firstMipLevel; currentMipLevel <= maxMipLevel; currentMipLevel++)
-    {
-        // Compute next level width and height.
-        size_t mipWidth  = std::max<size_t>(1, previousLevelWidth >> 1);
-        size_t mipHeight = std::max<size_t>(1, previousLevelHeight >> 1);
-
-        // With the width and height of the next mip, we can allocate the next buffer we need.
-        uint8_t *destData   = nullptr;
-        size_t destRowPitch = mipWidth * sourceFormat.pixelBytes;
-
-        size_t mipAllocationSize = destRowPitch * mipHeight;
-        gl::Extents mipLevelExtents(static_cast<int>(mipWidth), static_cast<int>(mipHeight), 1);
-
-        ANGLE_TRY(mImage->stageSubresourceUpdateAndGetData(
-            contextVk, mipAllocationSize,
-            gl::ImageIndex::MakeFromType(mState.getType(), currentMipLevel, layer), mipLevelExtents,
-            gl::Offset(), &destData));
-        onStagingBufferChange();
-
-        // Generate the mipmap into that new buffer
-        sourceFormat.mipGenerationFunction(previousLevelWidth, previousLevelHeight, 1,
-                                           previousLevelData, previousLevelRowPitch, 0, destData,
-                                           destRowPitch, 0);
-
-        // Swap for the next iteration
-        previousLevelWidth    = mipWidth;
-        previousLevelHeight   = mipHeight;
-        previousLevelData     = destData;
-        previousLevelRowPitch = destRowPitch;
-    }
-
-    return angle::Result::Continue;
-}
-
 // TextureVk implementation.
 TextureVk::TextureVk(const gl::TextureState &state, RendererVk *renderer)
     : TextureImpl(state),
@@ -159,7 +125,7 @@
     ContextVk *contextVk = vk::GetImpl(context);
 
     releaseAndDeleteImage(contextVk);
-    contextVk->releaseObject(contextVk->getCurrentQueueSerial(), &mSampler);
+    contextVk->addGarbage(&mSampler);
 }
 
 angle::Result TextureVk::setImage(const gl::Context *context,
@@ -445,7 +411,7 @@
 
         return copySubImageImplWithDraw(contextVk, offsetImageIndex, modifiedDestOffset, destFormat,
                                         0, clippedSourceArea, isViewportFlipY, false, false, false,
-                                        &colorReadRT->getImage(), colorReadRT->getFetchImageView());
+                                        &colorReadRT->getImage(), colorReadRT->getReadImageView());
     }
 
     // Do a CPU readback that does the conversion, and then stage the change to the pixel buffer.
@@ -505,7 +471,8 @@
 
     // Read back the requested region of the source texture
     uint8_t *sourceData = nullptr;
-    ANGLE_TRY(source->copyImageDataToBuffer(contextVk, sourceLevel, 1, sourceArea, &sourceData));
+    ANGLE_TRY(source->copyImageDataToBufferAndGetData(contextVk, sourceLevel, 1, sourceArea,
+                                                      &sourceData));
 
     const angle::Format &sourceTextureFormat = sourceVkFormat.imageFormat();
     const angle::Format &destTextureFormat   = destVkFormat.imageFormat();
@@ -593,7 +560,7 @@
                              commandBuffer);
 
         // Source's layout change should happen before the copy
-        srcImage->addReadDependency(mImage);
+        srcImage->addReadDependency(contextVk, mImage);
 
         VkImageSubresourceLayers destSubresource = srcSubresource;
         destSubresource.mipLevel                 = level;
@@ -628,7 +595,7 @@
                                    commandBuffer);
 
         // Source's layout change should happen before the copy
-        srcImage->addReadDependency(stagingImage.get());
+        srcImage->addReadDependency(contextVk, stagingImage.get());
 
         VkImageSubresourceLayers destSubresource = srcSubresource;
         destSubresource.mipLevel                 = 0;
@@ -660,9 +627,8 @@
                                                   vk::ImageHelper *srcImage,
                                                   const vk::ImageView *srcView)
 {
-    RendererVk *renderer      = contextVk->getRenderer();
-    UtilsVk &utilsVk          = contextVk->getUtils();
-    Serial currentQueueSerial = contextVk->getCurrentQueueSerial();
+    RendererVk *renderer = contextVk->getRenderer();
+    UtilsVk &utilsVk     = contextVk->getUtils();
 
     UtilsVk::CopyImageParameters params;
     params.srcOffset[0]        = sourceArea.x;
@@ -731,7 +697,7 @@
 
             // Queue the resource for cleanup as soon as the copy above is finished.  There's no
             // need to keep it around.
-            contextVk->releaseObject(currentQueueSerial, &stagingView);
+            contextVk->addGarbage(&stagingView);
         }
 
         // Stage the copy for when the image storage is actually created.
@@ -789,7 +755,7 @@
 
     const vk::Format &format = renderer->getFormat(internalFormat);
 
-    setImageHelper(contextVk, new vk::ImageHelper(), mState.getType(), format, 0, 0, true);
+    setImageHelper(contextVk, new vk::ImageHelper(), mState.getType(), format, 0, 0, 0, true);
 
     ANGLE_TRY(
         memoryObjectVk->createImage(context, type, levels, internalFormat, size, offset, mImage));
@@ -826,7 +792,8 @@
 
     ImageVk *imageVk = vk::GetImpl(image);
     setImageHelper(contextVk, imageVk->getImage(), imageVk->getImageTextureType(), format,
-                   imageVk->getImageLevel(), imageVk->getImageLayer(), false);
+                   imageVk->getImageLevel(), imageVk->getImageLayer(),
+                   mState.getEffectiveBaseLevel(), false);
 
     ASSERT(type != gl::TextureType::CubeMap);
     ANGLE_TRY(initImageViews(contextVk, format, image->getFormat().info->sized, 1, 1));
@@ -898,7 +865,7 @@
 {
     if (mImage == nullptr)
     {
-        setImageHelper(contextVk, new vk::ImageHelper(), mState.getType(), format, 0, 0, true);
+        setImageHelper(contextVk, new vk::ImageHelper(), mState.getType(), format, 0, 0, 0, true);
     }
     else
     {
@@ -914,6 +881,7 @@
                                const vk::Format &format,
                                uint32_t imageLevelOffset,
                                uint32_t imageLayerOffset,
+                               uint32_t imageBaseLevel,
                                bool selfOwned)
 {
     ASSERT(mImage == nullptr);
@@ -926,13 +894,10 @@
     mImage->initStagingBuffer(contextVk->getRenderer(), format, vk::kStagingBufferFlags,
                               mStagingBufferInitialSize);
 
-    mRenderTarget.init(mImage, &mDefaultViews.mDrawBaseLevelImageView,
-                       &mDefaultViews.mFetchBaseLevelImageView, getNativeImageLevel(0),
-                       getNativeImageLayer(0));
+    mRenderTarget.init(mImage, &mDrawImageView, getNativeImageLevel(0), getNativeImageLayer(0));
 
     // Force re-creation of layered render targets next time they are needed
-    mCubeMapRenderTargets.clear();
-    m3DRenderTargets.clear();
+    mLayerRenderTargets.clear();
 
     mSerial = contextVk->generateTextureSerial();
 }
@@ -982,53 +947,73 @@
     return angle::Result::Continue;
 }
 
-angle::Result TextureVk::copyImageDataToBuffer(ContextVk *contextVk,
-                                               size_t sourceLevel,
-                                               uint32_t layerCount,
-                                               const gl::Rectangle &sourceArea,
-                                               uint8_t **outDataPtr)
+angle::Result TextureVk::copyImageDataToBufferAndGetData(ContextVk *contextVk,
+                                                         size_t sourceLevel,
+                                                         uint32_t layerCount,
+                                                         const gl::Rectangle &sourceArea,
+                                                         uint8_t **outDataPtr)
 {
-    ANGLE_TRACE_EVENT0("gpu.angle", "TextureVk::copyImageDataToBuffer");
+    ANGLE_TRACE_EVENT0("gpu.angle", "TextureVk::copyImageDataToBufferAndGetData");
+
     // Make sure the source is initialized and it's images are flushed.
     ANGLE_TRY(ensureImageInitialized(contextVk));
 
+    gl::Box area(0, 0, 0, sourceArea.width, sourceArea.height, 1);
+
+    vk::BufferHelper *copyBuffer  = nullptr;
+    VkDeviceSize sourceCopyOffset = 0;
+
+    ANGLE_TRY(copyImageDataToBuffer(contextVk, sourceLevel, layerCount, 0, area, &copyBuffer,
+                                    &sourceCopyOffset, outDataPtr));
+
+    // Explicitly finish. If new use cases arise where we don't want to block we can change this.
+    ANGLE_TRY(contextVk->finishImpl());
+
+    return angle::Result::Continue;
+}
+
+angle::Result TextureVk::copyImageDataToBuffer(ContextVk *contextVk,
+                                               size_t sourceLevel,
+                                               uint32_t layerCount,
+                                               uint32_t baseLayer,
+                                               const gl::Box &sourceArea,
+                                               vk::BufferHelper **bufferOut,
+                                               VkDeviceSize *bufferOffsetOut,
+                                               uint8_t **outDataPtr)
+{
+    ANGLE_TRACE_EVENT0("gpu.angle", "TextureVk::copyImageDataToBuffer");
+
     const angle::Format &imageFormat = getImage().getFormat().imageFormat();
-    size_t sourceCopyAllocationSize =
-        sourceArea.width * sourceArea.height * imageFormat.pixelBytes * layerCount;
+    size_t sourceCopyAllocationSize  = sourceArea.width * sourceArea.height * sourceArea.depth *
+                                      imageFormat.pixelBytes * layerCount;
 
     vk::CommandBuffer *commandBuffer = nullptr;
     ANGLE_TRY(mImage->recordCommands(contextVk, &commandBuffer));
 
-    // Requirement of the copyImageToBuffer, the source image must be in SRC_OPTIMAL layout.
+    // Transition the image to readable layout
     mImage->changeLayout(VK_IMAGE_ASPECT_COLOR_BIT, vk::ImageLayout::TransferSrc, commandBuffer);
 
-    // Allocate enough memory to copy the sourceArea region of the source texture into its pixel
-    // buffer.
-    VkBuffer copyBufferHandle     = VK_NULL_HANDLE;
-    VkDeviceSize sourceCopyOffset = 0;
+    // Allocate staging buffer data
     ANGLE_TRY(mImage->allocateStagingMemory(contextVk, sourceCopyAllocationSize, outDataPtr,
-                                            &copyBufferHandle, &sourceCopyOffset, nullptr));
+                                            bufferOut, bufferOffsetOut, nullptr));
 
     VkBufferImageCopy region               = {};
-    region.bufferOffset                    = sourceCopyOffset;
+    region.bufferOffset                    = *bufferOffsetOut;
     region.bufferRowLength                 = 0;
     region.bufferImageHeight               = 0;
     region.imageExtent.width               = sourceArea.width;
     region.imageExtent.height              = sourceArea.height;
-    region.imageExtent.depth               = 1;
+    region.imageExtent.depth               = sourceArea.depth;
     region.imageOffset.x                   = sourceArea.x;
     region.imageOffset.y                   = sourceArea.y;
-    region.imageOffset.z                   = 0;
+    region.imageOffset.z                   = sourceArea.z;
     region.imageSubresource.aspectMask     = VK_IMAGE_ASPECT_COLOR_BIT;
-    region.imageSubresource.baseArrayLayer = 0;
+    region.imageSubresource.baseArrayLayer = baseLayer;
     region.imageSubresource.layerCount     = layerCount;
     region.imageSubresource.mipLevel       = static_cast<uint32_t>(sourceLevel);
 
     commandBuffer->copyImageToBuffer(mImage->getImage(), mImage->getCurrentLayout(),
-                                     copyBufferHandle, 1, &region);
-
-    // Explicitly finish. If new use cases arise where we don't want to block we can change this.
-    ANGLE_TRY(contextVk->finishImpl());
+                                     (*bufferOut)->getBuffer().getHandle(), 1, &region);
 
     return angle::Result::Continue;
 }
@@ -1042,8 +1027,9 @@
 
     uint8_t *imageData = nullptr;
     gl::Rectangle imageArea(0, 0, baseLevelExtents.width, baseLevelExtents.height);
-    ANGLE_TRY(copyImageDataToBuffer(contextVk, mState.getEffectiveBaseLevel(), imageLayerCount,
-                                    imageArea, &imageData));
+
+    ANGLE_TRY(copyImageDataToBufferAndGetData(contextVk, mState.getEffectiveBaseLevel(),
+                                              imageLayerCount, imageArea, &imageData));
 
     const angle::Format &angleFormat = mImage->getFormat().imageFormat();
     GLuint sourceRowPitch            = baseLevelExtents.width * angleFormat.pixelBytes;
@@ -1096,7 +1082,8 @@
     if (renderer->hasImageFormatFeatureBits(mImage->getFormat().vkImageFormat, kBlitFeatureFlags))
     {
         ANGLE_TRY(ensureImageInitialized(contextVk));
-        ANGLE_TRY(mImage->generateMipmapsWithBlit(contextVk, mState.getMipmapMaxLevel()));
+        ANGLE_TRY(mImage->generateMipmapsWithBlit(
+            contextVk, mState.getMipmapMaxLevel() - mState.getEffectiveBaseLevel()));
     }
     else
     {
@@ -1108,8 +1095,118 @@
 
 angle::Result TextureVk::setBaseLevel(const gl::Context *context, GLuint baseLevel)
 {
-    ANGLE_VK_UNREACHABLE(vk::GetImpl(context));
-    return angle::Result::Stop;
+    return angle::Result::Continue;
+}
+
+angle::Result TextureVk::changeLevels(ContextVk *contextVk, GLuint baseLevel, GLuint maxLevel)
+{
+    if (!mImage)
+    {
+        return angle::Result::Continue;
+    }
+
+    // Track the previous levels for use in update loop below
+    uint32_t previousBaseLevel = mImage->getBaseLevel();
+
+    bool baseLevelChanged = baseLevel != previousBaseLevel;
+    bool maxLevelChanged  = (mImage->getLevelCount() + previousBaseLevel) != (maxLevel + 1);
+
+    if (!(baseLevelChanged || maxLevelChanged))
+    {
+        // This scenario is a noop, most likely maxLevel has been lowered to a level that already
+        // reflects the current state of the image
+        return angle::Result::Continue;
+    }
+
+    if (!mImage->valid())
+    {
+        // Track the levels in our ImageHelper
+        mImage->setBaseAndMaxLevels(baseLevel, maxLevel);
+
+        // No further work to do, let staged updates handle the new levels
+        return angle::Result::Continue;
+    }
+
+    // If we get here, we already have a valid image and it needs to be recreated
+    // to reflect new base or max levels.
+
+    // First, flush any pending updates so we have good data in the existing vkImage
+    vk::CommandBuffer *commandBuffer = nullptr;
+    ANGLE_TRY(mImage->recordCommands(contextVk, &commandBuffer));
+    ANGLE_TRY(mImage->flushStagedUpdates(contextVk, getNativeImageLevel(0), mImage->getLevelCount(),
+                                         getNativeImageLayer(0), mImage->getLayerCount(),
+                                         commandBuffer));
+
+    // After flushing, track the new levels (they are used in the flush, hence the wait)
+    mImage->setBaseAndMaxLevels(baseLevel, maxLevel);
+
+    // Next, back up any data we need to preserve by staging it as updates to the new image.
+
+    // Stage updates for all levels in the GL texture, while preserving the data in the vkImage.
+    // This ensures we propagate all the current image data, even as max level moves around.
+    uint32_t updateCount =
+        std::max<GLuint>(mState.getMipmapMaxLevel() + 1, mImage->getLevelCount());
+
+    // The staged updates won't be applied until the image has the requisite mip levels
+    for (uint32_t layer = 0; layer < mImage->getLayerCount(); layer++)
+    {
+        for (uint32_t level = 0; level < updateCount; level++)
+        {
+            if (mImage->isUpdateStaged(level, layer))
+            {
+                // If there is still an update staged for the surface at the designated
+                // layer/level, we don't need to propagate any data from this image.
+                // This can happen for original texture levels that have never fit into
+                // the vkImage due to base/max level, and for vkImage data that has been
+                // staged by previous calls to changeLevels that didn't fit into the
+                // new vkImage.
+                continue;
+            }
+
+            // Pull data from the current image and stage it as an update for the new image
+
+            // First we populate the staging buffer with current level data
+            const gl::ImageDesc &desc =
+                mState.getImageDesc(gl::TextureTypeToTarget(mState.getType(), layer), level);
+            const gl::Extents &extents     = desc.size;
+            const gl::InternalFormat &info = *desc.format.info;
+
+            // We need to adjust the source Vulkan level to reflect the previous base level.
+            // vk level 0 previously aligned with whatever the base level was.
+            uint32_t srcLevelVK = baseLevelChanged ? level - previousBaseLevel : level;
+            ASSERT(srcLevelVK <= mImage->getLevelCount());
+
+            // Adjust offset and depth based on our knowledge of image type here
+            gl::Box area(0, 0, 0, extents.width, extents.height, extents.depth);
+            if (gl::IsArrayTextureType(mState.getType()))
+            {
+                area.z     = 0;
+                area.depth = 1;
+            }
+
+            // Now copy from the image to the staging buffer
+            vk::BufferHelper *stagingBuffer  = nullptr;
+            VkDeviceSize stagingBufferOffset = 0;
+            ANGLE_TRY(copyImageDataToBuffer(contextVk, srcLevelVK, 1, layer, area, &stagingBuffer,
+                                            &stagingBufferOffset, nullptr));
+
+            // Stage an update to the new image that we will populate with existing mip levels
+            // We're providing the buffer handle and offset to use, since we *just* populated it
+            size_t bufferSize = extents.width * extents.height * extents.depth * info.pixelBytes;
+            ANGLE_TRY(mImage->stageSubresourceUpdateFromBuffer(contextVk, bufferSize, level, layer,
+                                                               1, extents, gl::Offset(),
+                                                               stagingBuffer, stagingBufferOffset));
+        }
+    }
+
+    // Inform the front end that we've updated the staging buffer
+    onStagingBufferChange();
+
+    // Now that we've staged all the updates, release the current image so that it will be
+    // recreated with the correct number of mip levels, base level, and max level.
+    releaseImage(contextVk);
+
+    return angle::Result::Continue;
 }
 
 angle::Result TextureVk::bindTexImage(const gl::Context *context, egl::Surface *surface)
@@ -1125,7 +1222,7 @@
     // eglBindTexImage can only be called with pbuffer (offscreen) surfaces
     OffscreenSurfaceVk *offscreenSurface = GetImplAs<OffscreenSurfaceVk>(surface);
     setImageHelper(contextVk, offscreenSurface->getColorAttachmentImage(), mState.getType(), format,
-                   surface->getMipmapLevel(), 0, false);
+                   surface->getMipmapLevel(), 0, mState.getEffectiveBaseLevel(), false);
 
     ASSERT(mImage->getLayerCount() == 1);
     gl::Format glFormat(internalFormat);
@@ -1153,19 +1250,21 @@
     ContextVk *contextVk = vk::GetImpl(context);
     ANGLE_TRY(ensureImageInitialized(contextVk));
 
+    GLuint layerIndex = 0, layerCount = 0;
+
     switch (imageIndex.getType())
     {
         case gl::TextureType::_2D:
             *rtOut = &mRenderTarget;
             break;
+        case gl::TextureType::CubeMap:
         case gl::TextureType::_2DArray:
         case gl::TextureType::_3D:
-            ANGLE_TRY(init3DRenderTargets(contextVk));
-            *rtOut = &m3DRenderTargets[imageIndex.getLayerIndex()];
-            break;
-        case gl::TextureType::CubeMap:
-            ANGLE_TRY(initCubeMapRenderTargets(contextVk));
-            *rtOut = &mCubeMapRenderTargets[imageIndex.cubeMapFaceIndex()];
+            // Special handling required for different types, grab the count and index
+            GetRenderTargetLayerCountAndIndex(mImage, imageIndex, &layerCount, &layerIndex);
+
+            ANGLE_TRY(initLayerRenderTargets(contextVk, layerCount));
+            *rtOut = &mLayerRenderTargets[layerIndex];
             break;
         default:
             UNREACHABLE();
@@ -1178,7 +1277,7 @@
 {
     const gl::ImageDesc &baseLevelDesc  = mState.getBaseLevelDesc();
     const gl::Extents &baseLevelExtents = baseLevelDesc.size;
-    const uint32_t levelCount           = getLevelCount();
+    const uint32_t levelCount           = getLevelCount() - mState.getEffectiveBaseLevel();
 
     const vk::Format &format =
         contextVk->getRenderer()->getFormat(baseLevelDesc.format.info->sizedInternalFormat);
@@ -1211,69 +1310,20 @@
                                       commandBuffer);
 }
 
-angle::Result TextureVk::init3DRenderTargets(ContextVk *contextVk)
+angle::Result TextureVk::initLayerRenderTargets(ContextVk *contextVk, GLuint layerCount)
 {
     // Lazy init. Check if already initialized.
-    if (!m3DRenderTargets.empty())
+    if (!mLayerRenderTargets.empty())
         return angle::Result::Continue;
 
-    uint32_t layerCount = GetImageLayerCountForView(*mImage);
-    const gl::ImageDesc &baseLevelDesc = mState.getBaseLevelDesc();
-
-    mLayerFetchImageView.resize(layerCount);
-    m3DRenderTargets.resize(layerCount);
+    mLayerRenderTargets.resize(layerCount);
 
     for (uint32_t layerIndex = 0; layerIndex < layerCount; ++layerIndex)
     {
         const vk::ImageView *drawView;
         ANGLE_TRY(getLayerLevelDrawImageView(contextVk, layerIndex, 0, &drawView));
-
-        // Users of the render target expect the views to directly view the desired layer, so we
-        // need create a fetch view for each layer as well.
-        gl::SwizzleState mappedSwizzle;
-        MapSwizzleState(contextVk, mImage->getFormat(), baseLevelDesc.format.info->sized,
-                        mState.getSwizzleState(), &mappedSwizzle);
-        gl::TextureType arrayType = vk::Get2DTextureType(layerCount, mImage->getSamples());
-        ANGLE_TRY(mImage->initLayerImageView(contextVk, arrayType, mImage->getAspectFlags(),
-                                             mappedSwizzle, &mLayerFetchImageView[layerIndex],
-                                             getNativeImageLevel(0), 1,
-                                             getNativeImageLayer(layerIndex), 1));
-
-        m3DRenderTargets[layerIndex].init(mImage, drawView, &mLayerFetchImageView[layerIndex],
-                                          getNativeImageLevel(0), getNativeImageLayer(layerIndex));
-    }
-    return angle::Result::Continue;
-}
-
-angle::Result TextureVk::initCubeMapRenderTargets(ContextVk *contextVk)
-{
-    // Lazy init. Check if already initialized.
-    if (!mCubeMapRenderTargets.empty())
-        return angle::Result::Continue;
-
-    const gl::ImageDesc &baseLevelDesc = mState.getBaseLevelDesc();
-
-    mLayerFetchImageView.resize(gl::kCubeFaceCount);
-    mCubeMapRenderTargets.resize(gl::kCubeFaceCount);
-    for (uint32_t cubeMapFaceIndex = 0; cubeMapFaceIndex < gl::kCubeFaceCount; ++cubeMapFaceIndex)
-    {
-        const vk::ImageView *drawView;
-        ANGLE_TRY(getLayerLevelDrawImageView(contextVk, cubeMapFaceIndex, 0, &drawView));
-
-        // Users of the render target expect the views to directly view the desired layer, so we
-        // need create a fetch view for each layer as well.
-        gl::SwizzleState mappedSwizzle;
-        MapSwizzleState(contextVk, mImage->getFormat(), baseLevelDesc.format.info->sized,
-                        mState.getSwizzleState(), &mappedSwizzle);
-        gl::TextureType arrayType = vk::Get2DTextureType(gl::kCubeFaceCount, mImage->getSamples());
-        ANGLE_TRY(mImage->initLayerImageView(contextVk, arrayType, mImage->getAspectFlags(),
-                                             mappedSwizzle, &mLayerFetchImageView[cubeMapFaceIndex],
-                                             getNativeImageLevel(0), 1,
-                                             getNativeImageLayer(cubeMapFaceIndex), 1));
-
-        mCubeMapRenderTargets[cubeMapFaceIndex].init(
-            mImage, drawView, &mLayerFetchImageView[cubeMapFaceIndex], getNativeImageLevel(0),
-            getNativeImageLayer(cubeMapFaceIndex));
+        mLayerRenderTargets[layerIndex].init(mImage, drawView, getNativeImageLevel(0),
+                                             getNativeImageLayer(layerIndex));
     }
     return angle::Result::Continue;
 }
@@ -1283,6 +1333,14 @@
 {
     ContextVk *contextVk = vk::GetImpl(context);
 
+    // Set base and max level before initializing the image
+    if (dirtyBits.test(gl::Texture::DIRTY_BIT_MAX_LEVEL) ||
+        dirtyBits.test(gl::Texture::DIRTY_BIT_BASE_LEVEL))
+    {
+        ANGLE_TRY(
+            changeLevels(contextVk, mState.getEffectiveBaseLevel(), mState.getEffectiveMaxLevel()));
+    }
+
     // Initialize the image storage and flush the pixel buffer.
     ANGLE_TRY(ensureImageInitialized(contextVk));
 
@@ -1294,7 +1352,7 @@
     RendererVk *renderer = contextVk->getRenderer();
     if (mSampler.valid())
     {
-        contextVk->releaseObject(contextVk->getCurrentQueueSerial(), &mSampler);
+        contextVk->addGarbage(&mSampler);
     }
 
     if (dirtyBits.test(gl::Texture::DIRTY_BIT_SWIZZLE_RED) ||
@@ -1354,6 +1412,15 @@
     samplerInfo.borderColor             = VK_BORDER_COLOR_INT_TRANSPARENT_BLACK;
     samplerInfo.unnormalizedCoordinates = VK_FALSE;
 
+    if (!gl::IsMipmapFiltered(samplerState))
+    {
+        // Per the Vulkan spec, GL_NEAREST and GL_LINEAR do not map directly to Vulkan, so
+        // they must be emulated (See "Mapping of OpenGL to Vulkan filter modes")
+        samplerInfo.mipmapMode = VK_SAMPLER_MIPMAP_MODE_NEAREST;
+        samplerInfo.minLod     = 0.0f;
+        samplerInfo.maxLod     = 0.25f;
+    }
+
     ANGLE_VK_TRY(contextVk, mSampler.init(contextVk->getDevice(), samplerInfo));
 
     // Regenerate the serial on a sampler change.
@@ -1395,46 +1462,25 @@
     releaseAndDeleteImage(contextVk);
 }
 
-const TextureVk::TextureVkViews *TextureVk::getTextureViews() const
-{
-    VkImageAspectFlags aspectFlags = mImage->getAspectFlags();
-    if (HasBothDepthAndStencilAspects(aspectFlags) && mState.isStencilMode())
-    {
-        return &mStencilViews;
-    }
-    return &mDefaultViews;
-}
-
 const vk::ImageView &TextureVk::getReadImageView() const
 {
     ASSERT(mImage->valid());
-    const TextureVkViews *activeView = getTextureViews();
 
-    if (!gl::IsMipmapFiltered(mState.getSamplerState()))
+    if (mState.isStencilMode() && mStencilReadImageView.valid())
     {
-        return activeView->mReadBaseLevelImageView;
+        return mStencilReadImageView;
     }
 
-    return activeView->mReadMipmapImageView;
+    return mReadImageView;
 }
 
 const vk::ImageView &TextureVk::getFetchImageView() const
 {
-
-    if (!mDefaultViews.mFetchBaseLevelImageView.valid())
-    {
-        return getReadImageView();
-    }
-
     ASSERT(mImage->valid());
-    const TextureVkViews *activeView = getTextureViews();
 
-    if (!gl::IsMipmapFiltered(mState.getSamplerState()))
-    {
-        return activeView->mFetchBaseLevelImageView;
-    }
-
-    return activeView->mFetchMipmapImageView;
+    // We don't currently support fetch for depth/stencil cube map textures.
+    ASSERT(!mStencilReadImageView.valid() || !mFetchImageView.valid());
+    return (mFetchImageView.valid() ? mFetchImageView : mReadImageView);
 }
 
 vk::ImageView *TextureVk::getLayerLevelImageViewImpl(vk::LayerLevelImageViewVector *imageViews,
@@ -1480,12 +1526,10 @@
         return angle::Result::Continue;
     }
 
-    uint32_t layerCount = GetImageLayerCountForView(*mImage);
-
     // Lazily allocate the image view itself.
     // Note that these views are specifically made to be used as color attachments, and therefore
     // don't have swizzle.
-    gl::TextureType viewType = vk::Get2DTextureType(layerCount, mImage->getSamples());
+    gl::TextureType viewType = vk::Get2DTextureType(1, mImage->getSamples());
     return mImage->initLayerImageView(context, viewType, mImage->getAspectFlags(),
                                       gl::SwizzleState(), imageView,
                                       getNativeImageLevel(static_cast<uint32_t>(level)), 1,
@@ -1516,12 +1560,7 @@
     }
     else
     {
-        // Create a view of the selected layer.
-        imageView = getLayerLevelImageViewImpl(&mLayerLevelStorageImageViews, singleLayer, level);
-
-        // If viewing a single layer, the image is always 2D.  Note that GLES doesn't support
-        // multisampled storage images.
-        viewType = gl::TextureType::_2D;
+        return getLayerLevelDrawImageView(contextVk, singleLayer, level, imageViewOut);
     }
 
     *imageViewOut = imageView;
@@ -1578,6 +1617,7 @@
     gl_vk::GetExtentsAndLayerCount(mState.getType(), extents, &vkExtent, &layerCount);
 
     ANGLE_TRY(mImage->init(contextVk, mState.getType(), vkExtent, format, 1, imageUsageFlags,
+                           mState.getEffectiveBaseLevel(), mState.getEffectiveMaxLevel(),
                            levelCount, layerCount));
 
     const VkMemoryPropertyFlags flags = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT;
@@ -1605,25 +1645,35 @@
     return angle::Result::Continue;
 }
 
-angle::Result TextureVk::initImageViewImpl(ContextVk *contextVk,
-                                           const vk::Format &format,
-                                           uint32_t levelCount,
-                                           uint32_t layerCount,
-                                           TextureVkViews *view,
-                                           VkImageAspectFlags aspectFlags,
-                                           gl::SwizzleState mappedSwizzle)
+angle::Result TextureVk::initImageViews(ContextVk *contextVk,
+                                        const vk::Format &format,
+                                        const bool sized,
+                                        uint32_t levelCount,
+                                        uint32_t layerCount)
 {
-    // TODO: Support non-zero base level for ES 3.0 by passing it to getNativeImageLevel.
-    // http://anglebug.com/3148
     uint32_t baseLevel = getNativeImageLevel(0);
     uint32_t baseLayer = getNativeImageLayer(0);
 
-    ANGLE_TRY(mImage->initLayerImageView(contextVk, mState.getType(), aspectFlags, mappedSwizzle,
-                                         &view->mReadMipmapImageView, baseLevel, levelCount,
-                                         baseLayer, layerCount));
-    ANGLE_TRY(mImage->initLayerImageView(contextVk, mState.getType(), aspectFlags, mappedSwizzle,
-                                         &view->mReadBaseLevelImageView, baseLevel, 1, baseLayer,
-                                         layerCount));
+    gl::SwizzleState mappedSwizzle;
+    MapSwizzleState(contextVk, format, sized, mState.getSwizzleState(), &mappedSwizzle);
+
+    const VkImageAspectFlags aspectFlags = vk::GetFormatAspectFlags(format.angleFormat());
+    if (HasBothDepthAndStencilAspects(aspectFlags))
+    {
+        ANGLE_TRY(mImage->initLayerImageView(contextVk, mState.getType(), VK_IMAGE_ASPECT_DEPTH_BIT,
+                                             mappedSwizzle, &mReadImageView, baseLevel, levelCount,
+                                             baseLayer, layerCount));
+        ANGLE_TRY(mImage->initLayerImageView(
+            contextVk, mState.getType(), VK_IMAGE_ASPECT_STENCIL_BIT, mappedSwizzle,
+            &mStencilReadImageView, baseLevel, levelCount, baseLayer, layerCount));
+    }
+    else
+    {
+        ANGLE_TRY(mImage->initLayerImageView(contextVk, mState.getType(), aspectFlags,
+                                             mappedSwizzle, &mReadImageView, baseLevel, levelCount,
+                                             baseLayer, layerCount));
+    }
+
     if (mState.getType() == gl::TextureType::CubeMap ||
         mState.getType() == gl::TextureType::_2DArray ||
         mState.getType() == gl::TextureType::_2DMultisampleArray)
@@ -1631,53 +1681,27 @@
         gl::TextureType arrayType = vk::Get2DTextureType(layerCount, mImage->getSamples());
 
         ANGLE_TRY(mImage->initLayerImageView(contextVk, arrayType, aspectFlags, mappedSwizzle,
-                                             &view->mFetchMipmapImageView, baseLevel, levelCount,
-                                             baseLayer, layerCount));
-        ANGLE_TRY(mImage->initLayerImageView(contextVk, arrayType, aspectFlags, mappedSwizzle,
-                                             &view->mFetchBaseLevelImageView, baseLevel, 1,
-                                             baseLayer, layerCount));
+                                             &mFetchImageView, baseLevel, levelCount, baseLayer,
+                                             layerCount));
     }
+
     if (!format.imageFormat().isBlock)
     {
         ANGLE_TRY(mImage->initLayerImageView(contextVk, mState.getType(), aspectFlags,
-                                             gl::SwizzleState(), &view->mDrawBaseLevelImageView,
-                                             baseLevel, 1, baseLayer, layerCount));
+                                             gl::SwizzleState(), &mDrawImageView, baseLevel, 1,
+                                             baseLayer, layerCount));
     }
 
     return angle::Result::Continue;
 }
 
-angle::Result TextureVk::initImageViews(ContextVk *contextVk,
-                                        const vk::Format &format,
-                                        const bool sized,
-                                        uint32_t levelCount,
-                                        uint32_t layerCount)
-{
-    ASSERT(mImage != nullptr);
-
-    gl::SwizzleState mappedSwizzle;
-    MapSwizzleState(contextVk, format, sized, mState.getSwizzleState(), &mappedSwizzle);
-
-    VkImageAspectFlags aspectFlags = vk::GetFormatAspectFlags(format.angleFormat());
-    if (HasBothDepthAndStencilAspects(aspectFlags))
-    {
-        ANGLE_TRY(initImageViewImpl(contextVk, format, levelCount, layerCount, &mStencilViews,
-                                    VK_IMAGE_ASPECT_STENCIL_BIT, mappedSwizzle));
-        aspectFlags = VK_IMAGE_ASPECT_DEPTH_BIT;
-    }
-    ANGLE_TRY(initImageViewImpl(contextVk, format, levelCount, layerCount, &mDefaultViews,
-                                aspectFlags, mappedSwizzle));
-
-    return angle::Result::Continue;
-}
-
 void TextureVk::releaseImage(ContextVk *contextVk)
 {
     if (mImage)
     {
         if (mOwnsImage)
         {
-            mImage->releaseImage(contextVk);
+            mImage->releaseImage(contextVk->getRenderer());
         }
         else
         {
@@ -1687,61 +1711,93 @@
 
     releaseImageViews(contextVk);
 
-    mCubeMapRenderTargets.clear();
-    m3DRenderTargets.clear();
+    mLayerRenderTargets.clear();
 
     onStagingBufferChange();
 }
 
 void TextureVk::releaseImageViews(ContextVk *contextVk)
 {
-    Serial currentSerial = contextVk->getCurrentQueueSerial();
-
-    mDefaultViews.release(contextVk, currentSerial);
-
-    mStencilViews.release(contextVk, currentSerial);
+    contextVk->addGarbage(&mReadImageView);
+    contextVk->addGarbage(&mFetchImageView);
+    contextVk->addGarbage(&mStencilReadImageView);
+    contextVk->addGarbage(&mDrawImageView);
 
     for (vk::ImageViewVector &layerViews : mLayerLevelDrawImageViews)
     {
         for (vk::ImageView &imageView : layerViews)
         {
-            contextVk->releaseObject(currentSerial, &imageView);
+            contextVk->addGarbage(&imageView);
         }
     }
     mLayerLevelDrawImageViews.clear();
-    for (vk::ImageView &imageView : mLayerFetchImageView)
-    {
-        contextVk->releaseObject(currentSerial, &imageView);
-    }
-    mLayerFetchImageView.clear();
     for (vk::ImageView &imageView : mLevelStorageImageViews)
     {
-        contextVk->releaseObject(currentSerial, &imageView);
+        contextVk->addGarbage(&imageView);
     }
     mLevelStorageImageViews.clear();
-    for (vk::ImageViewVector &layerViews : mLayerLevelStorageImageViews)
-    {
-        for (vk::ImageView &imageView : layerViews)
-        {
-            contextVk->releaseObject(currentSerial, &imageView);
-        }
-    }
-    mLayerLevelStorageImageViews.clear();
 }
 
 void TextureVk::releaseStagingBuffer(ContextVk *contextVk)
 {
     if (mImage)
     {
-        mImage->releaseStagingBuffer(contextVk);
+        mImage->releaseStagingBuffer(contextVk->getRenderer());
     }
 }
 
 uint32_t TextureVk::getLevelCount() const
 {
-    ASSERT(mState.getEffectiveBaseLevel() == 0);
-
     // getMipmapMaxLevel will be 0 here if mipmaps are not used, so the levelCount is always +1.
     return mState.getMipmapMaxLevel() + 1;
 }
+
+angle::Result TextureVk::generateMipmapLevelsWithCPU(ContextVk *contextVk,
+                                                     const angle::Format &sourceFormat,
+                                                     GLuint layer,
+                                                     GLuint firstMipLevel,
+                                                     GLuint maxMipLevel,
+                                                     const size_t sourceWidth,
+                                                     const size_t sourceHeight,
+                                                     const size_t sourceRowPitch,
+                                                     uint8_t *sourceData)
+{
+    size_t previousLevelWidth    = sourceWidth;
+    size_t previousLevelHeight   = sourceHeight;
+    uint8_t *previousLevelData   = sourceData;
+    size_t previousLevelRowPitch = sourceRowPitch;
+
+    for (GLuint currentMipLevel = firstMipLevel; currentMipLevel <= maxMipLevel; currentMipLevel++)
+    {
+        // Compute next level width and height.
+        size_t mipWidth  = std::max<size_t>(1, previousLevelWidth >> 1);
+        size_t mipHeight = std::max<size_t>(1, previousLevelHeight >> 1);
+
+        // With the width and height of the next mip, we can allocate the next buffer we need.
+        uint8_t *destData   = nullptr;
+        size_t destRowPitch = mipWidth * sourceFormat.pixelBytes;
+
+        size_t mipAllocationSize = destRowPitch * mipHeight;
+        gl::Extents mipLevelExtents(static_cast<int>(mipWidth), static_cast<int>(mipHeight), 1);
+
+        ANGLE_TRY(mImage->stageSubresourceUpdateAndGetData(
+            contextVk, mipAllocationSize,
+            gl::ImageIndex::MakeFromType(mState.getType(), currentMipLevel, layer), mipLevelExtents,
+            gl::Offset(), &destData));
+        onStagingBufferChange();
+
+        // Generate the mipmap into that new buffer
+        sourceFormat.mipGenerationFunction(previousLevelWidth, previousLevelHeight, 1,
+                                           previousLevelData, previousLevelRowPitch, 0, destData,
+                                           destRowPitch, 0);
+
+        // Swap for the next iteration
+        previousLevelWidth    = mipWidth;
+        previousLevelHeight   = mipHeight;
+        previousLevelData     = destData;
+        previousLevelRowPitch = destRowPitch;
+    }
+
+    return angle::Result::Continue;
+}
 }  // namespace rx
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/TextureVk.h b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/TextureVk.h
index 6158d23..dc48211 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/TextureVk.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/TextureVk.h
@@ -179,19 +179,6 @@
     }
 
   private:
-    struct TextureVkViews final : angle::NonCopyable
-    {
-        TextureVkViews();
-        ~TextureVkViews();
-
-        void release(ContextVk *contextVk, Serial currentSerial);
-        vk::ImageView mDrawBaseLevelImageView;
-        vk::ImageView mReadBaseLevelImageView;
-        vk::ImageView mReadMipmapImageView;
-        vk::ImageView mFetchBaseLevelImageView;
-        vk::ImageView mFetchMipmapImageView;
-    };
-
     // Transform an image index from the frontend into one that can be used on the backing
     // ImageHelper, taking into account mipmap or cube face offsets
     gl::ImageIndex getNativeImageIndex(const gl::ImageIndex &inputImageIndex) const;
@@ -206,6 +193,7 @@
                         const vk::Format &format,
                         uint32_t imageLevelOffset,
                         uint32_t imageLayerOffset,
+                        uint32_t imageBaseLevel,
                         bool selfOwned);
     void updateImageHelper(ContextVk *contextVk, const vk::Format &internalFormat);
 
@@ -230,10 +218,19 @@
                                   const uint8_t *pixels,
                                   const vk::Format &vkFormat);
 
+    angle::Result copyImageDataToBufferAndGetData(ContextVk *contextVk,
+                                                  size_t sourceLevel,
+                                                  uint32_t layerCount,
+                                                  const gl::Rectangle &sourceArea,
+                                                  uint8_t **outDataPtr);
+
     angle::Result copyImageDataToBuffer(ContextVk *contextVk,
                                         size_t sourceLevel,
                                         uint32_t layerCount,
-                                        const gl::Rectangle &sourceArea,
+                                        uint32_t baseLayer,
+                                        const gl::Box &sourceArea,
+                                        vk::BufferHelper **bufferOut,
+                                        VkDeviceSize *bufferOffsetOut,
                                         uint8_t **outDataPtr);
 
     angle::Result generateMipmapsWithCPU(const gl::Context *context);
@@ -302,19 +299,11 @@
                                  const bool sized,
                                  uint32_t levelCount,
                                  uint32_t layerCount);
-    angle::Result init3DRenderTargets(ContextVk *contextVk);
-    angle::Result initImageViewImpl(ContextVk *contextVk,
-                                    const vk::Format &format,
-                                    uint32_t levelCount,
-                                    uint32_t layerCount,
-                                    TextureVkViews *views,
-                                    VkImageAspectFlags aspectFlags,
-                                    gl::SwizzleState mappedSwizzle);
+    angle::Result initLayerRenderTargets(ContextVk *contextVk, GLuint layerCount);
     vk::ImageView *getLevelImageViewImpl(vk::ImageViewVector *imageViews, size_t level);
     vk::ImageView *getLayerLevelImageViewImpl(vk::LayerLevelImageViewVector *imageViews,
                                               size_t layer,
                                               size_t level);
-    angle::Result initCubeMapRenderTargets(ContextVk *contextVk);
 
     angle::Result ensureImageInitializedImpl(ContextVk *contextVk,
                                              const gl::Extents &baseLevelExtents,
@@ -323,7 +312,7 @@
 
     void onStagingBufferChange() { onStateChange(angle::SubjectMessage::SubjectChanged); }
 
-    const TextureVkViews *getTextureViews() const;
+    angle::Result changeLevels(ContextVk *contextVk, GLuint baseLevel, GLuint maxLevel);
 
     bool mOwnsImage;
 
@@ -340,20 +329,20 @@
     vk::ImageHelper *mImage;
 
     // Read views.
-    TextureVkViews mDefaultViews;
-    TextureVkViews mStencilViews;
+    vk::ImageView mReadImageView;
+    vk::ImageView mFetchImageView;
+    vk::ImageView mStencilReadImageView;
+
     // Draw views.
+    vk::ImageView mDrawImageView;
     vk::LayerLevelImageViewVector mLayerLevelDrawImageViews;
-    // Fetch views.
-    vk::ImageViewVector mLayerFetchImageView;
+
     // Storage image views.
     vk::ImageViewVector mLevelStorageImageViews;
-    vk::LayerLevelImageViewVector mLayerLevelStorageImageViews;
 
     vk::Sampler mSampler;
     RenderTargetVk mRenderTarget;
-    std::vector<RenderTargetVk> m3DRenderTargets;
-    std::vector<RenderTargetVk> mCubeMapRenderTargets;
+    std::vector<RenderTargetVk> mLayerRenderTargets;
 
     // The serial is used for cache indexing.
     Serial mSerial;
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/TransformFeedbackVk.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/TransformFeedbackVk.cpp
index fa53f4c..6676bba 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/TransformFeedbackVk.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/TransformFeedbackVk.cpp
@@ -237,7 +237,7 @@
     FramebufferVk *framebufferVk       = vk::GetImpl(context->getState().getDrawFramebuffer());
     vk::FramebufferHelper *framebuffer = framebufferVk->getFramebuffer();
 
-    framebuffer->updateQueueSerial(contextVk->getCurrentQueueSerial());
+    framebuffer->updateCurrentAccessNodes();
     if (framebuffer->hasStartedRenderPass())
     {
         framebuffer->finishCurrentCommands(contextVk);
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/UtilsVk.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/UtilsVk.cpp
index 488d5fe..a50b143 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/UtilsVk.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/UtilsVk.cpp
@@ -82,16 +82,28 @@
     bool srcIsA2BGR10 =
         ((params.srcFormat->vertexAttribType == gl::VertexAttribType::UnsignedInt2101010) ||
          (params.srcFormat->vertexAttribType == gl::VertexAttribType::Int2101010));
+    bool srcIsRGB10A2 =
+        ((params.srcFormat->vertexAttribType == gl::VertexAttribType::UnsignedInt1010102) ||
+         params.srcFormat->vertexAttribType == gl::VertexAttribType::Int1010102) &&
+        params.srcFormat->alphaBits;
+    bool srcIsRGB10X2 =
+        ((params.srcFormat->vertexAttribType == gl::VertexAttribType::UnsignedInt1010102) ||
+         params.srcFormat->vertexAttribType == gl::VertexAttribType::Int1010102) &&
+        !params.srcFormat->alphaBits;
+    bool srcIsHalfFloat = params.srcFormat->isVertexTypeHalfFloat();
 
-    bool destIsSint  = params.destFormat->isSint();
-    bool destIsUint  = params.destFormat->isUint();
-    bool destIsFloat = params.destFormat->isFloat();
+    bool destIsSint      = params.destFormat->isSint();
+    bool destIsUint      = params.destFormat->isUint();
+    bool destIsFloat     = params.destFormat->isFloat();
+    bool destIsHalfFloat = params.destFormat->isVertexTypeHalfFloat();
 
     // Assert on the types to make sure the shader supports its.  These are based on
     // ConvertVertex_comp::Conversion values.
-    ASSERT(!destIsSint || srcIsSint);    // If destination is sint, src must be sint too
-    ASSERT(!destIsUint || srcIsUint);    // If destination is uint, src must be uint too
-    ASSERT(!srcIsFixed || destIsFloat);  // If source is fixed, dest must be float
+    ASSERT(!destIsSint || srcIsSint);           // If destination is sint, src must be sint too
+    ASSERT(!destIsUint || srcIsUint);           // If destination is uint, src must be uint too
+    ASSERT(!srcIsFixed || destIsFloat);         // If source is fixed, dest must be float
+    ASSERT(srcIsHalfFloat == destIsHalfFloat);  // Both src and dest are half float or neither
+
     // One of each bool set must be true
     ASSERT(srcIsSint || srcIsUint || srcIsSnorm || srcIsUnorm || srcIsFixed || srcIsFloat);
     ASSERT(destIsSint || destIsUint || destIsFloat);
@@ -134,6 +146,56 @@
             UNREACHABLE();
         }
     }
+    else if (srcIsRGB10A2)
+    {
+        if (srcIsSint)
+        {
+            flags |= ConvertVertex_comp::kRGB10A2SintToFloat;
+        }
+        else if (srcIsUint)
+        {
+            flags |= ConvertVertex_comp::kRGB10A2UintToFloat;
+        }
+        else if (srcIsSnorm)
+        {
+            flags |= ConvertVertex_comp::kRGB10A2SnormToFloat;
+        }
+        else if (srcIsUnorm)
+        {
+            flags |= ConvertVertex_comp::kRGB10A2UnormToFloat;
+        }
+        else
+        {
+            UNREACHABLE();
+        }
+    }
+    else if (srcIsRGB10X2)
+    {
+        if (srcIsSint)
+        {
+            flags |= ConvertVertex_comp::kRGB10X2SintToFloat;
+        }
+        else if (srcIsUint)
+        {
+            flags |= ConvertVertex_comp::kRGB10X2UintToFloat;
+        }
+        else if (srcIsSnorm)
+        {
+            flags |= ConvertVertex_comp::kRGB10X2SnormToFloat;
+        }
+        else if (srcIsUnorm)
+        {
+            flags |= ConvertVertex_comp::kRGB10X2UnormToFloat;
+        }
+        else
+        {
+            UNREACHABLE();
+        }
+    }
+    else if (srcIsHalfFloat && destIsHalfFloat)
+    {
+        flags |= ConvertVertex_comp::kHalfFloatToHalfFloat;
+    }
     else if (srcIsSint && destIsSint)
     {
         flags |= ConvertVertex_comp::kSintToSint;
@@ -446,6 +508,43 @@
                                       ArraySize(setSizes), sizeof(ConvertIndexShaderParams));
 }
 
+angle::Result UtilsVk::ensureConvertIndexIndirectResourcesInitialized(ContextVk *contextVk)
+{
+    if (mPipelineLayouts[Function::ConvertIndexIndirectBuffer].valid())
+    {
+        return angle::Result::Continue;
+    }
+
+    VkDescriptorPoolSize setSizes[3] = {
+        {VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 1},  // source index buffer
+        {VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 1},  // dest index buffer
+        {VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 1},  // cmd buffer
+    };
+
+    return ensureResourcesInitialized(contextVk, Function::ConvertIndexIndirectBuffer, setSizes,
+                                      ArraySize(setSizes),
+                                      sizeof(ConvertIndexIndirectShaderParams));
+}
+
+angle::Result UtilsVk::ensureConvertIndexIndirectLineLoopResourcesInitialized(ContextVk *contextVk)
+{
+    if (mPipelineLayouts[Function::ConvertIndexIndirectLineLoopBuffer].valid())
+    {
+        return angle::Result::Continue;
+    }
+
+    VkDescriptorPoolSize setSizes[4] = {
+        {VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 1},  // cmd buffer
+        {VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 1},  // dest cmd buffer
+        {VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 1},  // source index buffer
+        {VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 1},  // dest index buffer
+    };
+
+    return ensureResourcesInitialized(contextVk, Function::ConvertIndexIndirectLineLoopBuffer,
+                                      setSizes, ArraySize(setSizes),
+                                      sizeof(ConvertIndexIndirectLineLoopShaderParams));
+}
+
 angle::Result UtilsVk::ensureConvertVertexResourcesInitialized(ContextVk *contextVk)
 {
     if (mPipelineLayouts[Function::ConvertVertexBuffer].valid())
@@ -777,6 +876,142 @@
     return angle::Result::Continue;
 }
 
+angle::Result UtilsVk::convertIndexIndirectBuffer(ContextVk *contextVk,
+                                                  vk::BufferHelper *cmdBuffer,
+                                                  vk::BufferHelper *dest,
+                                                  vk::BufferHelper *src,
+                                                  const ConvertIndexIndirectParameters &params)
+{
+    ANGLE_TRY(ensureConvertIndexIndirectResourcesInitialized(contextVk));
+
+    vk::CommandBuffer *commandBuffer;
+    ANGLE_TRY(dest->recordCommands(contextVk, &commandBuffer));
+
+    // Tell src we are going to read from it and dest it's being written to.
+    src->onReadByBuffer(contextVk, dest, VK_ACCESS_SHADER_READ_BIT, VK_ACCESS_SHADER_WRITE_BIT);
+    cmdBuffer->onReadByBuffer(contextVk, dest, VK_ACCESS_SHADER_READ_BIT,
+                              VK_ACCESS_SHADER_WRITE_BIT);
+
+    VkDescriptorSet descriptorSet;
+    vk::RefCountedDescriptorPoolBinding descriptorPoolBinding;
+    ANGLE_TRY(allocateDescriptorSet(contextVk, Function::ConvertIndexIndirectBuffer,
+                                    &descriptorPoolBinding, &descriptorSet));
+
+    std::array<VkDescriptorBufferInfo, 3> buffers = {{
+        {dest->getBuffer().getHandle(), 0, VK_WHOLE_SIZE},
+        {src->getBuffer().getHandle(), 0, VK_WHOLE_SIZE},
+        {cmdBuffer->getBuffer().getHandle(), 0, VK_WHOLE_SIZE},
+    }};
+
+    VkWriteDescriptorSet writeInfo = {};
+    writeInfo.sType                = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET;
+    writeInfo.dstSet               = descriptorSet;
+    writeInfo.dstBinding           = kConvertIndexDestinationBinding;
+    writeInfo.descriptorCount      = 3;
+    writeInfo.descriptorType       = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER;
+    writeInfo.pBufferInfo          = buffers.data();
+
+    vkUpdateDescriptorSets(contextVk->getDevice(), 1, &writeInfo, 0, nullptr);
+
+    ConvertIndexIndirectShaderParams shaderParams = {params.indirectBufferOffset >> 2,
+                                                     params.dstOffset >> 2, params.maxIndex, 0};
+
+    uint32_t flags = vk::InternalShader::ConvertIndex_comp::kIsIndirect;
+    if (contextVk->getState().isPrimitiveRestartEnabled())
+    {
+        flags |= vk::InternalShader::ConvertIndex_comp::kIsPrimitiveRestartEnabled;
+    }
+
+    vk::RefCounted<vk::ShaderAndSerial> *shader = nullptr;
+    ANGLE_TRY(contextVk->getShaderLibrary().getConvertIndex_comp(contextVk, flags, &shader));
+
+    ANGLE_TRY(setupProgram(contextVk, Function::ConvertIndexIndirectBuffer, shader, nullptr,
+                           &mConvertIndexPrograms[flags], nullptr, descriptorSet, &shaderParams,
+                           sizeof(ConvertIndexIndirectShaderParams), commandBuffer));
+
+    constexpr uint32_t kInvocationsPerGroup = 64;
+    constexpr uint32_t kInvocationsPerIndex = 2;
+    const uint32_t kIndexCount              = params.maxIndex;
+    const uint32_t kGroupCount =
+        UnsignedCeilDivide(kIndexCount * kInvocationsPerIndex, kInvocationsPerGroup);
+    commandBuffer->dispatch(kGroupCount, 1, 1);
+
+    descriptorPoolBinding.reset();
+
+    return angle::Result::Continue;
+}
+
+angle::Result UtilsVk::convertLineLoopIndexIndirectBuffer(
+    ContextVk *contextVk,
+    vk::BufferHelper *srcIndirectBuffer,
+    vk::BufferHelper *destIndirectBuffer,
+    vk::BufferHelper *destIndexBuffer,
+    vk::BufferHelper *srcIndexBuffer,
+    const ConvertLineLoopIndexIndirectParameters &params)
+{
+    ANGLE_TRY(ensureConvertIndexIndirectLineLoopResourcesInitialized(contextVk));
+
+    vk::CommandBuffer *commandBuffer;
+    ANGLE_TRY(destIndexBuffer->recordCommands(contextVk, &commandBuffer));
+
+    // Tell src we are going to read from it and dest it's being written to.
+    srcIndexBuffer->onReadByBuffer(contextVk, destIndexBuffer, VK_ACCESS_SHADER_READ_BIT,
+                                   VK_ACCESS_SHADER_WRITE_BIT);
+    srcIndirectBuffer->onReadByBuffer(contextVk, destIndexBuffer, VK_ACCESS_SHADER_READ_BIT,
+                                      VK_ACCESS_SHADER_WRITE_BIT);
+
+    ANGLE_TRY(destIndirectBuffer->recordCommands(contextVk, &commandBuffer));
+
+    srcIndirectBuffer->onReadByBuffer(contextVk, destIndirectBuffer, VK_ACCESS_SHADER_READ_BIT,
+                                      VK_ACCESS_SHADER_WRITE_BIT);
+
+    VkDescriptorSet descriptorSet;
+    vk::RefCountedDescriptorPoolBinding descriptorPoolBinding;
+    ANGLE_TRY(allocateDescriptorSet(contextVk, Function::ConvertIndexIndirectLineLoopBuffer,
+                                    &descriptorPoolBinding, &descriptorSet));
+
+    std::array<VkDescriptorBufferInfo, 4> buffers = {{
+        {srcIndirectBuffer->getBuffer().getHandle(), 0, VK_WHOLE_SIZE},
+        {destIndirectBuffer->getBuffer().getHandle(), 0, VK_WHOLE_SIZE},
+        {destIndexBuffer->getBuffer().getHandle(), 0, VK_WHOLE_SIZE},
+        {srcIndexBuffer->getBuffer().getHandle(), 0, VK_WHOLE_SIZE},
+    }};
+
+    VkWriteDescriptorSet writeInfo = {};
+    writeInfo.sType                = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET;
+    writeInfo.dstSet               = descriptorSet;
+    writeInfo.dstBinding           = kConvertIndexDestinationBinding;
+    writeInfo.descriptorCount      = 4;
+    writeInfo.descriptorType       = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER;
+    writeInfo.pBufferInfo          = buffers.data();
+
+    vkUpdateDescriptorSets(contextVk->getDevice(), 1, &writeInfo, 0, nullptr);
+
+    ConvertIndexIndirectLineLoopShaderParams shaderParams = {
+        params.indirectBufferOffset >> 2, params.dstIndirectBufferOffset >> 2,
+        params.dstIndexBufferOffset >> 2, contextVk->getState().isPrimitiveRestartEnabled()};
+
+    uint32_t flags = 0;
+    if (params.is32Bit)
+    {
+        flags |= vk::InternalShader::ConvertIndexIndirectLineLoop_comp::kIs32Bit;
+    }
+
+    vk::RefCounted<vk::ShaderAndSerial> *shader = nullptr;
+    ANGLE_TRY(contextVk->getShaderLibrary().getConvertIndexIndirectLineLoop_comp(contextVk, flags,
+                                                                                 &shader));
+
+    ANGLE_TRY(setupProgram(contextVk, Function::ConvertIndexIndirectLineLoopBuffer, shader, nullptr,
+                           &mConvertIndexPrograms[flags], nullptr, descriptorSet, &shaderParams,
+                           sizeof(ConvertIndexIndirectLineLoopShaderParams), commandBuffer));
+
+    commandBuffer->dispatch(1, 1, 1);
+
+    descriptorPoolBinding.reset();
+
+    return angle::Result::Continue;
+}
+
 angle::Result UtilsVk::convertVertexBuffer(ContextVk *contextVk,
                                            vk::BufferHelper *dest,
                                            vk::BufferHelper *src,
@@ -888,7 +1123,7 @@
     ANGLE_TRY(image->beginRenderPass(contextVk, framebuffer, renderArea, renderPassDesc,
                                      renderPassAttachmentOps, clearValues, commandBufferOut));
 
-    contextVk->releaseObject(contextVk->getCurrentQueueSerial(), &framebuffer);
+    contextVk->addGarbage(&framebuffer);
 
     return angle::Result::Continue;
 }
@@ -902,8 +1137,8 @@
     const gl::Rectangle &scissoredRenderArea = params.clearArea;
 
     vk::CommandBuffer *commandBuffer;
-    if (!framebuffer->appendToStartedRenderPass(contextVk->getCurrentQueueSerial(),
-                                                scissoredRenderArea, &commandBuffer))
+    if (!framebuffer->appendToStartedRenderPass(contextVk->getCommandGraph(), scissoredRenderArea,
+                                                &commandBuffer))
     {
         ANGLE_TRY(framebuffer->startNewRenderPass(contextVk, scissoredRenderArea, &commandBuffer));
     }
@@ -1131,14 +1366,14 @@
     }
 
     vk::CommandBuffer *commandBuffer;
-    if (!framebuffer->appendToStartedRenderPass(contextVk->getCurrentQueueSerial(), params.blitArea,
+    if (!framebuffer->appendToStartedRenderPass(contextVk->getCommandGraph(), params.blitArea,
                                                 &commandBuffer))
     {
         ANGLE_TRY(framebuffer->startNewRenderPass(contextVk, params.blitArea, &commandBuffer));
     }
 
     // Source's layout change should happen before rendering
-    src->addReadDependency(framebuffer->getFramebuffer());
+    src->addReadDependency(contextVk, framebuffer->getFramebuffer());
 
     VkDescriptorImageInfo imageInfos[2] = {};
 
@@ -1226,7 +1461,7 @@
                                     &descriptorPoolBinding, &descriptorSet));
 
     // Create a temporary buffer to blit/resolve stencil into.
-    vk::ContextScoped<vk::BufferHelper> blitBuffer(contextVk);
+    vk::RendererScoped<vk::BufferHelper> blitBuffer(contextVk->getRenderer());
 
     uint32_t bufferRowLengthInUints = UnsignedCeilDivide(params.blitArea.width, sizeof(uint32_t));
     VkDeviceSize bufferSize = bufferRowLengthInUints * sizeof(uint32_t) * params.blitArea.height;
@@ -1242,7 +1477,7 @@
 
     ANGLE_TRY(
         blitBuffer.get().init(contextVk, blitBufferInfo, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT));
-    blitBuffer.get().updateQueueSerial(contextVk->getCurrentQueueSerial());
+    blitBuffer.get().onGraphAccess(contextVk->getCommandGraph());
 
     BlitResolveStencilNoExportShaderParams shaderParams;
     if (isResolve)
@@ -1285,7 +1520,7 @@
     vk::CommandBuffer *commandBuffer;
     ANGLE_TRY(framebuffer->getFramebuffer()->recordCommands(contextVk, &commandBuffer));
 
-    src->addReadDependency(framebuffer->getFramebuffer());
+    src->addReadDependency(contextVk, framebuffer->getFramebuffer());
 
     // Blit/resolve stencil into the buffer.
     VkDescriptorImageInfo imageInfo = {};
@@ -1471,7 +1706,7 @@
         startRenderPass(contextVk, dest, destView, renderPassDesc, renderArea, &commandBuffer));
 
     // Source's layout change should happen before rendering
-    src->addReadDependency(dest);
+    src->addReadDependency(contextVk, dest);
 
     VkDescriptorImageInfo imageInfo = {};
     imageInfo.imageView             = srcView->getHandle();
@@ -1537,7 +1772,7 @@
     dest->changeLayout(VK_IMAGE_ASPECT_COLOR_BIT, vk::ImageLayout::ComputeShaderWrite,
                        commandBuffer);
 
-    enabledWidgetsBuffer->onRead(dest, VK_ACCESS_SHADER_READ_BIT);
+    enabledWidgetsBuffer->onRead(contextVk, dest, VK_ACCESS_SHADER_READ_BIT);
 
     VkDescriptorImageInfo imageInfo = {};
     imageInfo.imageView             = destView->getHandle();
@@ -1612,10 +1847,10 @@
     dest->changeLayout(VK_IMAGE_ASPECT_COLOR_BIT, vk::ImageLayout::ComputeShaderWrite,
                        commandBuffer);
 
-    culledWidgets->addReadDependency(dest);
-    font->addReadDependency(dest);
-    textWidgetsBuffer->onRead(dest, VK_ACCESS_SHADER_READ_BIT);
-    graphWidgetsBuffer->onRead(dest, VK_ACCESS_SHADER_READ_BIT);
+    culledWidgets->addReadDependency(contextVk, dest);
+    font->addReadDependency(contextVk, dest);
+    textWidgetsBuffer->onRead(contextVk, dest, VK_ACCESS_SHADER_READ_BIT);
+    graphWidgetsBuffer->onRead(contextVk, dest, VK_ACCESS_SHADER_READ_BIT);
 
     VkDescriptorImageInfo imageInfos[3] = {};
     imageInfos[0].imageView             = destView->getHandle();
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/UtilsVk.h b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/UtilsVk.h
index 3f07ed1..27cd2d1 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/UtilsVk.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/UtilsVk.h
@@ -54,6 +54,21 @@
         uint32_t maxIndex  = 0;
     };
 
+    struct ConvertIndexIndirectParameters
+    {
+        uint32_t indirectBufferOffset = 0;
+        uint32_t dstOffset            = 0;
+        uint32_t maxIndex             = 0;
+    };
+
+    struct ConvertLineLoopIndexIndirectParameters
+    {
+        uint32_t indirectBufferOffset    = 0;
+        uint32_t dstIndirectBufferOffset = 0;
+        uint32_t dstIndexBufferOffset    = 0;
+        uint32_t is32Bit                 = 0;
+    };
+
     struct ConvertVertexParameters
     {
         size_t vertexCount;
@@ -87,7 +102,8 @@
 
     struct BlitResolveParameters
     {
-        // |srcOffset| and |dstOffset| define the original blit/resolve offsets, possibly flipped.
+        // |srcOffset| and |dstIndexBufferOffset| define the original blit/resolve offsets, possibly
+        // flipped.
         int srcOffset[2];
         int destOffset[2];
         // |stretch| is SourceDimension / DestDimension used to transfer dest coordinates to source.
@@ -137,6 +153,20 @@
                                      vk::BufferHelper *dest,
                                      vk::BufferHelper *src,
                                      const ConvertIndexParameters &params);
+    angle::Result convertIndexIndirectBuffer(ContextVk *contextVk,
+                                             vk::BufferHelper *cmdBufferVk,
+                                             vk::BufferHelper *dest,
+                                             vk::BufferHelper *src,
+                                             const ConvertIndexIndirectParameters &params);
+
+    angle::Result convertLineLoopIndexIndirectBuffer(
+        ContextVk *contextVk,
+        vk::BufferHelper *cmdBufferVk,
+        vk::BufferHelper *destCmdBufferVk,
+        vk::BufferHelper *dest,
+        vk::BufferHelper *src,
+        const ConvertLineLoopIndexIndirectParameters &params);
+
     angle::Result convertVertexBuffer(ContextVk *contextVk,
                                       vk::BufferHelper *dest,
                                       vk::BufferHelper *src,
@@ -210,6 +240,22 @@
         uint32_t _padding      = 0;
     };
 
+    struct ConvertIndexIndirectShaderParams
+    {
+        uint32_t cmdOffsetDiv4 = 0;
+        uint32_t dstOffsetDiv4 = 0;
+        uint32_t maxIndex      = 0;
+        uint32_t _padding      = 0;
+    };
+
+    struct ConvertIndexIndirectLineLoopShaderParams
+    {
+        uint32_t cmdOffsetDiv4    = 0;
+        uint32_t dstCmdOffsetDiv4 = 0;
+        uint32_t dstOffsetDiv4    = 0;
+        uint32_t isRestartEnabled = 0;
+    };
+
     struct ConvertVertexShaderParams
     {
         ConvertVertexShaderParams();
@@ -310,9 +356,11 @@
         BlitResolveStencilNoExport = 6,
         OverlayCull                = 7,
         OverlayDraw                = 8,
+        ConvertIndexIndirectBuffer = 9,
+        ConvertIndexIndirectLineLoopBuffer = 10,
 
-        InvalidEnum = 9,
-        EnumCount   = 9,
+        InvalidEnum = 11,
+        EnumCount   = 11,
     };
 
     // Common function that creates the pipeline for the specified function, binds it and prepares
@@ -346,6 +394,8 @@
     // appropriate parameters.
     angle::Result ensureBufferClearResourcesInitialized(ContextVk *contextVk);
     angle::Result ensureConvertIndexResourcesInitialized(ContextVk *contextVk);
+    angle::Result ensureConvertIndexIndirectResourcesInitialized(ContextVk *contextVk);
+    angle::Result ensureConvertIndexIndirectLineLoopResourcesInitialized(ContextVk *contextVk);
     angle::Result ensureConvertVertexResourcesInitialized(ContextVk *contextVk);
     angle::Result ensureImageClearResourcesInitialized(ContextVk *contextVk);
     angle::Result ensureImageCopyResourcesInitialized(ContextVk *contextVk);
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp
index 4acd04e..bc75f57 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp
@@ -54,17 +54,37 @@
                                size_t bytesToAllocate,
                                size_t destOffset,
                                size_t vertexCount,
-                               size_t stride,
+                               size_t sourceStride,
+                               size_t destStride,
                                VertexCopyFunction vertexLoadFunction,
                                vk::BufferHelper **bufferOut,
-                               VkDeviceSize *bufferOffsetOut)
+                               VkDeviceSize *bufferOffsetOut,
+                               uint32_t replicateCount)
 {
     uint8_t *dst = nullptr;
     ANGLE_TRY(dynamicBuffer->allocate(contextVk, bytesToAllocate, &dst, nullptr, bufferOffsetOut,
                                       nullptr));
     *bufferOut = dynamicBuffer->getCurrentBuffer();
     dst += destOffset;
-    vertexLoadFunction(sourceData, stride, vertexCount, dst);
+    if (replicateCount == 1)
+    {
+        vertexLoadFunction(sourceData, sourceStride, vertexCount, dst);
+    }
+    else
+    {
+        ASSERT(replicateCount > 1);
+        uint32_t sourceRemainingCount = replicateCount - 1;
+        for (size_t dataCopied = 0; dataCopied < bytesToAllocate;
+             dataCopied += destStride, dst += destStride, sourceRemainingCount--)
+        {
+            vertexLoadFunction(sourceData, sourceStride, 1, dst);
+            if (sourceRemainingCount == 0)
+            {
+                sourceData += sourceStride;
+                sourceRemainingCount = replicateCount;
+            }
+        }
+    }
 
     ANGLE_TRY(dynamicBuffer->flush(contextVk));
     return angle::Result::Continue;
@@ -128,11 +148,13 @@
 {
     ContextVk *contextVk = vk::GetImpl(context);
 
-    mTheNullBuffer.release(contextVk);
+    RendererVk *renderer = contextVk->getRenderer();
 
-    mDynamicVertexData.release(contextVk);
-    mDynamicIndexData.release(contextVk);
-    mTranslatedByteIndexData.release(contextVk);
+    mTheNullBuffer.release(renderer);
+
+    mDynamicVertexData.release(renderer);
+    mDynamicIndexData.release(renderer);
+    mTranslatedByteIndexData.release(renderer);
     mLineLoopHelper.release(contextVk);
 }
 
@@ -163,6 +185,50 @@
     return contextVk->getUtils().convertIndexBuffer(contextVk, dest, src, params);
 }
 
+angle::Result VertexArrayVk::convertIndexBufferIndirectGPU(ContextVk *contextVk,
+                                                           BufferVk *cmdBufferVk,
+                                                           BufferVk *indexBufferVk,
+                                                           const void *offset)
+{
+    intptr_t indirectBufferOffset = reinterpret_cast<intptr_t>(offset);
+    size_t srcDataSize            = static_cast<size_t>(indexBufferVk->getSize());
+
+    mTranslatedByteIndexData.releaseInFlightBuffers(contextVk);
+
+    ANGLE_TRY(mTranslatedByteIndexData.allocate(contextVk, sizeof(GLushort) * srcDataSize, nullptr,
+                                                nullptr, &mCurrentElementArrayBufferOffset,
+                                                nullptr));
+    mCurrentElementArrayBuffer = mTranslatedByteIndexData.getCurrentBuffer();
+
+    vk::BufferHelper *dest = mTranslatedByteIndexData.getCurrentBuffer();
+    vk::BufferHelper *src  = &indexBufferVk->getBuffer();
+
+    // Copy relevant section of the source into destination at allocated offset.  Note that the
+    // offset returned by allocate() above is in bytes. As is the indices offset pointer.
+    UtilsVk::ConvertIndexIndirectParameters params = {};
+    params.indirectBufferOffset                    = static_cast<uint32_t>(indirectBufferOffset);
+    params.dstOffset = static_cast<uint32_t>(mCurrentElementArrayBufferOffset);
+    params.maxIndex  = static_cast<uint32_t>(indexBufferVk->getSize());
+
+    return contextVk->getUtils().convertIndexIndirectBuffer(contextVk, &cmdBufferVk->getBuffer(),
+                                                            dest, src, params);
+}
+
+angle::Result VertexArrayVk::handleLineLoopIndirect(ContextVk *contextVk,
+                                                    BufferVk *indirectBufferVk,
+                                                    gl::DrawElementsType glIndexType,
+                                                    VkDeviceSize indirectBufferOffset,
+                                                    vk::BufferHelper **indirectBufferOut,
+                                                    VkDeviceSize *indirectBufferOffsetOut)
+{
+    ANGLE_TRY(mLineLoopHelper.streamIndicesIndirect(
+        contextVk, glIndexType, mCurrentElementArrayBuffer, &indirectBufferVk->getBuffer(),
+        indirectBufferOffset, &mCurrentElementArrayBuffer, &mCurrentElementArrayBufferOffset,
+        indirectBufferOut, indirectBufferOffsetOut));
+
+    return angle::Result::Continue;
+}
+
 angle::Result VertexArrayVk::convertIndexBufferCPU(ContextVk *contextVk,
                                                    gl::DrawElementsType indexType,
                                                    size_t indexCount,
@@ -305,9 +371,9 @@
     srcBytes += binding.getOffset() + relativeOffset;
     ASSERT(GetVertexInputAlignment(vertexFormat) <= vk::kVertexBufferAlignment);
     ANGLE_TRY(StreamVertexData(contextVk, &conversion->data, srcBytes, numVertices * dstFormatSize,
-                               0, numVertices, binding.getStride(), vertexFormat.vertexLoadFunction,
-                               &mCurrentArrayBuffers[attribIndex],
-                               &conversion->lastAllocationOffset));
+                               0, numVertices, binding.getStride(), srcFormatSize,
+                               vertexFormat.vertexLoadFunction, &mCurrentArrayBuffers[attribIndex],
+                               &conversion->lastAllocationOffset, 1));
     srcBuffer->unmapImpl(contextVk);
 
     ASSERT(conversion->dirty);
@@ -431,6 +497,11 @@
         GLuint stride;
         bool anyVertexBufferConvertedOnGpu = false;
         gl::Buffer *bufferGL               = binding.getBuffer().get();
+        // Emulated and/or client-side attribs will be streamed
+        bool isStreamingVertexAttrib =
+            (binding.getDivisor() > renderer->getMaxVertexAttribDivisor()) || (bufferGL == nullptr);
+        mStreamingVertexAttribsMask.set(attribIndex, isStreamingVertexAttrib);
+
         if (bufferGL)
         {
             BufferVk *bufferVk               = vk::GetImpl(bufferGL);
@@ -486,7 +557,7 @@
                 }
                 else
                 {
-                    vk::BufferHelper &bufferHelper = bufferVk->getBuffer();
+                    vk::BufferHelper &bufferHelper          = bufferVk->getBuffer();
                     mCurrentArrayBuffers[attribIndex]       = &bufferHelper;
                     mCurrentArrayBufferHandles[attribIndex] = bufferHelper.getBuffer().getHandle();
                     mCurrentArrayBufferOffsets[attribIndex] = binding.getOffset();
@@ -534,17 +605,24 @@
     return angle::Result::Continue;
 }
 
-angle::Result VertexArrayVk::updateClientAttribs(const gl::Context *context,
-                                                 GLint firstVertex,
-                                                 GLsizei vertexOrIndexCount,
-                                                 GLsizei instanceCount,
-                                                 gl::DrawElementsType indexTypeOrInvalid,
-                                                 const void *indices)
+// Handle copying client attribs and/or expanding attrib buffer in case where attribute
+//  divisor value has to be emulated.
+angle::Result VertexArrayVk::updateStreamedAttribs(const gl::Context *context,
+                                                   GLint firstVertex,
+                                                   GLsizei vertexOrIndexCount,
+                                                   GLsizei instanceCount,
+                                                   gl::DrawElementsType indexTypeOrInvalid,
+                                                   const void *indices)
 {
-    ContextVk *contextVk                    = vk::GetImpl(context);
-    const gl::AttributesMask &clientAttribs = context->getStateCache().getActiveClientAttribsMask();
+    ContextVk *contextVk = vk::GetImpl(context);
+    const gl::AttributesMask activeAttribs =
+        context->getStateCache().getActiveClientAttribsMask() |
+        context->getStateCache().getActiveBufferedAttribsMask();
+    const gl::AttributesMask activeStreamedAttribs = mStreamingVertexAttribsMask & activeAttribs;
 
-    ASSERT(clientAttribs.any());
+    // Early return for corner case where emulated buffered attribs are not active
+    if (!activeStreamedAttribs.any())
+        return angle::Result::Continue;
 
     GLint startVertex;
     size_t vertexCount;
@@ -557,33 +635,65 @@
     const auto &attribs  = mState.getVertexAttributes();
     const auto &bindings = mState.getVertexBindings();
 
-    // TODO(fjhenigman): When we have a bunch of interleaved attributes, they end up
+    // TODO: When we have a bunch of interleaved attributes, they end up
     // un-interleaved, wasting space and copying time.  Consider improving on that.
-    for (size_t attribIndex : clientAttribs)
+    for (size_t attribIndex : activeStreamedAttribs)
     {
         const gl::VertexAttribute &attrib = attribs[attribIndex];
-        const gl::VertexBinding &binding  = bindings[attrib.bindingIndex];
-        ASSERT(attrib.enabled && binding.getBuffer().get() == nullptr);
+        ASSERT(attrib.enabled);
+        const gl::VertexBinding &binding = bindings[attrib.bindingIndex];
 
         const vk::Format &vertexFormat = renderer->getFormat(attrib.format->id);
         GLuint stride                  = vertexFormat.bufferFormat().pixelBytes;
 
         ASSERT(GetVertexInputAlignment(vertexFormat) <= vk::kVertexBufferAlignment);
 
-        const uint8_t *src = static_cast<const uint8_t *>(attrib.pointer);
-        if (binding.getDivisor() > 0)
+        const uint8_t *src     = static_cast<const uint8_t *>(attrib.pointer);
+        const uint32_t divisor = binding.getDivisor();
+        if (divisor > 0)
         {
-            // instanced attrib
-            size_t count           = UnsignedCeilDivide(instanceCount, binding.getDivisor());
-            size_t bytesToAllocate = count * stride;
+            // Instanced attrib
+            if (divisor > renderer->getMaxVertexAttribDivisor())
+            {
+                // Emulated attrib
+                BufferVk *bufferVk = nullptr;
+                if (binding.getBuffer().get() != nullptr)
+                {
+                    // Map buffer to expand attribs for divisor emulation
+                    bufferVk      = vk::GetImpl(binding.getBuffer().get());
+                    void *buffSrc = nullptr;
+                    ANGLE_TRY(bufferVk->mapImpl(contextVk, &buffSrc));
+                    src = reinterpret_cast<const uint8_t *>(buffSrc);
+                }
+                // Divisor will be set to 1 & so update buffer to have 1 attrib per instance
+                size_t bytesToAllocate = instanceCount * stride;
 
-            ANGLE_TRY(StreamVertexData(contextVk, &mDynamicVertexData, src, bytesToAllocate, 0,
-                                       count, binding.getStride(), vertexFormat.vertexLoadFunction,
-                                       &mCurrentArrayBuffers[attribIndex],
-                                       &mCurrentArrayBufferOffsets[attribIndex]));
+                ANGLE_TRY(StreamVertexData(contextVk, &mDynamicVertexData, src, bytesToAllocate, 0,
+                                           instanceCount, binding.getStride(), stride,
+                                           vertexFormat.vertexLoadFunction,
+                                           &mCurrentArrayBuffers[attribIndex],
+                                           &mCurrentArrayBufferOffsets[attribIndex], divisor));
+                if (bufferVk)
+                {
+                    bufferVk->unmapImpl(contextVk);
+                }
+            }
+            else
+            {
+                ASSERT(binding.getBuffer().get() == nullptr);
+                size_t count           = UnsignedCeilDivide(instanceCount, divisor);
+                size_t bytesToAllocate = count * stride;
+
+                ANGLE_TRY(StreamVertexData(contextVk, &mDynamicVertexData, src, bytesToAllocate, 0,
+                                           count, binding.getStride(), stride,
+                                           vertexFormat.vertexLoadFunction,
+                                           &mCurrentArrayBuffers[attribIndex],
+                                           &mCurrentArrayBufferOffsets[attribIndex], 1));
+            }
         }
         else
         {
+            ASSERT(binding.getBuffer().get() == nullptr);
             // Allocate space for startVertex + vertexCount so indexing will work.  If we don't
             // start at zero all the indices will be off.
             // Only vertexCount vertices will be used by the upcoming draw so that is all we copy.
@@ -593,8 +703,8 @@
 
             ANGLE_TRY(StreamVertexData(
                 contextVk, &mDynamicVertexData, src, bytesToAllocate, destOffset, vertexCount,
-                binding.getStride(), vertexFormat.vertexLoadFunction,
-                &mCurrentArrayBuffers[attribIndex], &mCurrentArrayBufferOffsets[attribIndex]));
+                binding.getStride(), stride, vertexFormat.vertexLoadFunction,
+                &mCurrentArrayBuffers[attribIndex], &mCurrentArrayBufferOffsets[attribIndex], 1));
         }
 
         mCurrentArrayBufferHandles[attribIndex] =
@@ -667,13 +777,14 @@
 void VertexArrayVk::updateDefaultAttrib(ContextVk *contextVk,
                                         size_t attribIndex,
                                         VkBuffer bufferHandle,
+                                        vk::BufferHelper *buffer,
                                         uint32_t offset)
 {
     if (!mState.getEnabledAttributesMask().test(attribIndex))
     {
         mCurrentArrayBufferHandles[attribIndex] = bufferHandle;
         mCurrentArrayBufferOffsets[attribIndex] = offset;
-        mCurrentArrayBuffers[attribIndex]       = nullptr;
+        mCurrentArrayBuffers[attribIndex]       = buffer;
 
         setDefaultPackedInput(contextVk, attribIndex);
     }
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/VertexArrayVk.h b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/VertexArrayVk.h
index f41ec80..a5af18e 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/VertexArrayVk.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/VertexArrayVk.h
@@ -35,14 +35,15 @@
     void updateDefaultAttrib(ContextVk *contextVk,
                              size_t attribIndex,
                              VkBuffer bufferHandle,
+                             vk::BufferHelper *buffer,
                              uint32_t offset);
 
-    angle::Result updateClientAttribs(const gl::Context *context,
-                                      GLint firstVertex,
-                                      GLsizei vertexOrIndexCount,
-                                      GLsizei instanceCount,
-                                      gl::DrawElementsType indexTypeOrInvalid,
-                                      const void *indices);
+    angle::Result updateStreamedAttribs(const gl::Context *context,
+                                        GLint firstVertex,
+                                        GLsizei vertexOrIndexCount,
+                                        GLsizei instanceCount,
+                                        gl::DrawElementsType indexTypeOrInvalid,
+                                        const void *indices);
 
     angle::Result handleLineLoop(ContextVk *contextVk,
                                  GLint firstVertex,
@@ -51,6 +52,13 @@
                                  const void *indices,
                                  uint32_t *indexCountOut);
 
+    angle::Result handleLineLoopIndirect(ContextVk *contextVk,
+                                         BufferVk *indirectBufferVk,
+                                         gl::DrawElementsType glIndexType,
+                                         VkDeviceSize indirectBufferOffset,
+                                         vk::BufferHelper **indirectBufferOut,
+                                         VkDeviceSize *indirectBufferOffsetOut);
+
     const gl::AttribArray<VkBuffer> &getCurrentArrayBufferHandles() const
     {
         return mCurrentArrayBufferHandles;
@@ -82,11 +90,21 @@
                                         BufferVk *bufferVk,
                                         const void *indices);
 
+    angle::Result convertIndexBufferIndirectGPU(ContextVk *contextVk,
+                                                BufferVk *cmdBufferVk,
+                                                BufferVk *indexBufferVk,
+                                                const void *indices);
+
     angle::Result convertIndexBufferCPU(ContextVk *contextVk,
                                         gl::DrawElementsType indexType,
                                         size_t indexCount,
                                         const void *sourcePointer);
 
+    const gl::AttributesMask &getStreamingVertexAttribsMask() const
+    {
+        return mStreamingVertexAttribsMask;
+    }
+
   private:
     void setDefaultPackedInput(ContextVk *contextVk, size_t attribIndex);
 
@@ -128,6 +146,9 @@
 
     // Vulkan does not allow binding a null vertex buffer. We use a dummy as a placeholder.
     vk::BufferHelper mTheNullBuffer;
+
+    // Track client and/or emulated attribs that we have to stream their buffer contents
+    gl::AttributesMask mStreamingVertexAttribsMask;
 };
 }  // namespace rx
 
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/android/HardwareBufferImageSiblingVkAndroid.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/android/HardwareBufferImageSiblingVkAndroid.cpp
index a2f2e96..be216c9 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/android/HardwareBufferImageSiblingVkAndroid.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/android/HardwareBufferImageSiblingVkAndroid.cpp
@@ -128,7 +128,7 @@
     mImage = new vk::ImageHelper();
     ANGLE_TRY(mImage->initExternal(displayVk, gl::TextureType::_2D, vkExtents, vkFormat, 1, usage,
                                    vk::ImageLayout::ExternalPreInitialized,
-                                   &externalMemoryImageCreateInfo, 1, 1));
+                                   &externalMemoryImageCreateInfo, 0, 0, 1, 1));
 
     VkImportAndroidHardwareBufferInfoANDROID importHardwareBufferInfo = {};
     importHardwareBufferInfo.sType  = VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID;
@@ -201,13 +201,12 @@
     return mImage;
 }
 
-void HardwareBufferImageSiblingVkAndroid::release(DisplayVk *display,
-                                                  std::vector<vk::GarbageObjectBase> *garbageQueue)
+void HardwareBufferImageSiblingVkAndroid::release(RendererVk *renderer)
 {
     if (mImage != nullptr)
     {
-        mImage->releaseImage(display, garbageQueue);
-        mImage->releaseStagingBuffer(display, garbageQueue);
+        mImage->releaseImage(renderer);
+        mImage->releaseStagingBuffer(renderer);
         SafeDelete(mImage);
     }
 }
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/android/HardwareBufferImageSiblingVkAndroid.h b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/android/HardwareBufferImageSiblingVkAndroid.h
index 029e294..0c9025f 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/android/HardwareBufferImageSiblingVkAndroid.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/android/HardwareBufferImageSiblingVkAndroid.h
@@ -36,7 +36,7 @@
     // ExternalImageSiblingVk interface
     vk::ImageHelper *getImage() const override;
 
-    void release(DisplayVk *display, std::vector<vk::GarbageObjectBase> *garbageQueue) override;
+    void release(RendererVk *renderer) override;
 
   private:
     angle::Result initImpl(DisplayVk *displayVk);
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/doc/FastOpenGLStateTransitions.md b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/doc/FastOpenGLStateTransitions.md
index afa2f07..e7a0c42 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/doc/FastOpenGLStateTransitions.md
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/doc/FastOpenGLStateTransitions.md
@@ -13,7 +13,7 @@
 pipeline recompilations are orders of manitude slower than OpenGL state changes.
 
 The second level cache is an ANGLE-owned hash map from OpenGL state vectors to compiled pipelines.
-See [GraphicsPipelineCache][GraphicsPipelineCache] in [vk_cache_utils.h](vk_cache_utils.h). ANGLE's
+See [GraphicsPipelineCache][GraphicsPipelineCache] in [vk_cache_utils.h](../vk_cache_utils.h). ANGLE's
 [GraphicsPipelineDesc][GraphicsPipelineDesc] class is a tightly packed 256-byte description of the
 current OpenGL rendering state. We also use a [xxHash](https://github.com/Cyan4973/xxHash) for the
 fastest possible hash computation. The hash map speeds up state changes considerably. But it is
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/doc/FormatTablesAndEmulation.md b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/doc/FormatTablesAndEmulation.md
index 7b0bdc6..624078c 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/doc/FormatTablesAndEmulation.md
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/doc/FormatTablesAndEmulation.md
@@ -18,14 +18,14 @@
 ## The Vulkan Format Table
 
 Overrides and fallbacks are implemented in ANGLE's [Vulkan format
-table][vk_format_table_autogen.cpp]. The table is auto-generated by
-[`gen_vk_format_table.py`](gen_vk_format_table.py). We store the mapping from
-[`angle::Format::ID`](../FormatID_autogen.h) to [VkFormat][VkFormat] in
-[`vk_format_map.json`](vk_format_map.json). The format map also lists the overrides and fallbacks.
+table][../vk_format_table_autogen.cpp]. The table is auto-generated by
+[`gen_vk_format_table.py`](../gen_vk_format_table.py). We store the mapping from
+[`angle::Format::ID`](../../FormatID_autogen.h) to [VkFormat][VkFormat] in
+[`vk_format_map.json`](../vk_format_map.json). The format map also lists the overrides and fallbacks.
 To update the tables please modify the format map JSON and then run
 [`scripts/run_code_generation.py`][RunCodeGeneration].
 
-The [`vk::Format`](vk_format_utils.h) class describes the information ANGLE needs for a particular
+The [`vk::Format`](../vk_format_utils.h) class describes the information ANGLE needs for a particular
 `VkFormat`. The 'ANGLE' format ID is a reference to the front-end format. The 'Image' or 'Buffer'
 format are the native Vulkan formats that implement a particular front-end format for `VkImages` and
 `VkBuffers`. For the above example of `R8_UNORM` overriding `L8_UNORM`, `L8_UNORM` is the ANGLE
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/doc/OpenGLLineSegmentRasterization.md b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/doc/OpenGLLineSegmentRasterization.md
index dc2bd60..cfa0a05 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/doc/OpenGLLineSegmentRasterization.md
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/doc/OpenGLLineSegmentRasterization.md
@@ -18,7 +18,7 @@
 spec section 3.4.1 "Basic Line Segment Rasterization" spec for more details. To implement this rule
 we inject a small computation to test if a pixel falls within the diamond in the start of the pixel
 shader. If the pixel fails the diamond test we discard the fragment. Note that we only perform this
-test when drawing lines. See the section on [Shader Compilation](#shader-module-compilation) for
+test when drawing lines. See the section on [Shader Compilation](ShaderModuleCompilation.md) for
 more info. See the below diagram for an illustration of the diamond rule:
 
 ![OpenGL Diamond Rule Example][DiamondRule]
@@ -46,7 +46,8 @@
 code please see [TranslatorVulkan.cpp][TranslatorVulkan.cpp] under
 `AddLineSegmentRasterizationEmulation`.
 
-[VulkanLineRaster]: https://www.khronos.org/registry/vulkan/specs/1.1/html/chap24.html#primsrast-lines-basic
 [Bresenham]: https://en.wikipedia.org/wiki/Bresenham%27s_line_algorithm
-[VulkanVsGLLineRaster]: img/LineRasterComparison.gif
 [DiamondRule]: img/LineRasterPixelExample.png
+[TranslatorVulkan.cpp]: https://chromium.googlesource.com/angle/angle/+/refs/heads/master/src/compiler/translator/TranslatorVulkan.cpp
+[VulkanLineRaster]: https://www.khronos.org/registry/vulkan/specs/1.1/html/chap24.html#primsrast-lines-basic
+[VulkanVsGLLineRaster]: img/LineRasterComparison.gif
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/doc/ShaderModuleCompilation.md b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/doc/ShaderModuleCompilation.md
index d149ab1..b718180 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/doc/ShaderModuleCompilation.md
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/doc/ShaderModuleCompilation.md
@@ -8,7 +8,7 @@
 GLSL. Vulkan-compatible GLSL matches the [GL_KHR_vulkan_glsl][GL_KHR_vulkan_glsl] extension spec
 with some additional workarounds and emulation. We emulate OpenGL's different depth range, viewport
 y flipping, default uniforms, and OpenGL [line segment
-rasterization](#opengl-line-segment-rasterization). For more info see
+rasterization](OpenGLLineSegmentRasterization.md). For more info see
 [TranslatorVulkan.cpp][TranslatorVulkan.cpp]. After initial compilation the shaders are not
 complete. They are templated with markers that are filled in later at link time.
 
@@ -16,7 +16,7 @@
 necessary locations and properties to write to connect the shader stage interfaces. We get the
 completed shader source using ANGLE's [GlslangWrapper][GlslangWrapper.cpp] helper class. We still
 cannot generate `VkShaderModules` since some ANGLE features like [OpenGL line
-rasterization](#opengl-line-segment-rasterization) emulation depend on draw-time information.
+rasterization](OpenGLLineSegmentRasterization.md) emulation depend on draw-time information.
 
 1. **Draw-time SPIR-V Generation**: Once the application records a draw call we use Khronos'
 [glslang][glslang] to convert the Vulkan-compatible GLSL into SPIR-V with the correct draw-time
@@ -74,10 +74,10 @@
 
 ![Vulkan Shader Translation Flow](https://raw.githubusercontent.com/google/angle/master/src/libANGLE/renderer/vulkan/doc/img/VulkanShaderTranslation.svg?sanitize=true)
 
-[VkShaderModule]: https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkShaderModule.html
-[translator]: https://chromium.googlesource.com/angle/angle/+/refs/heads/master/src/compiler/translator/
 [GL_KHR_vulkan_glsl]: https://github.com/KhronosGroup/GLSL/blob/master/extensions/khr/GL_KHR_vulkan_glsl.txt
-[TranslatorVulkan.cpp]: https://chromium.googlesource.com/angle/angle/+/refs/heads/master/src/compiler/translator/TranslatorVulkan.cpp
 [glslang]: https://github.com/KhronosGroup/glslang
 [GlslangWrapper.cpp]: https://chromium.googlesource.com/angle/angle/+/refs/heads/master/src/libANGLE/renderer/vulkan/GlslangWrapper.cpp
 [SPIRV-Tools]: https://github.com/KhronosGroup/SPIRV-Tools
+[translator]: https://chromium.googlesource.com/angle/angle/+/refs/heads/master/src/compiler/translator/
+[TranslatorVulkan.cpp]: https://chromium.googlesource.com/angle/angle/+/refs/heads/master/src/compiler/translator/TranslatorVulkan.cpp
+[VkShaderModule]: https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkShaderModule.html
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/gen_vk_internal_shaders.py b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/gen_vk_internal_shaders.py
index bd971f3..6f411a6 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/gen_vk_internal_shaders.py
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/gen_vk_internal_shaders.py
@@ -596,7 +596,7 @@
 
 
 def shader_path(shader):
-    return '"src/libANGLE/renderer/vulkan/%s"' % slash(shader)
+    return '"%s"' % slash(shader)
 
 
 def main():
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000000.inc b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000000.inc
index 9e49172..5a8d5fe 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000000.inc
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000000.inc
@@ -1,9 +1,9 @@
 	// 7.12.3226
 	 #pragma once
 const uint32_t kConvertIndex_comp_00000000[] = {
-	0x07230203,0x00010000,0x00080007,0x0000007d,0x00000000,0x00020011,0x00000001,0x0006000b,
+	0x07230203,0x00010000,0x00080007,0x00000089,0x00000000,0x00020011,0x00000001,0x0006000b,
 	0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,
-	0x0006000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x00000041,0x00060010,0x00000004,
+	0x0006000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x00000048,0x00060010,0x00000004,
 	0x00000011,0x00000040,0x00000001,0x00000001,0x00030003,0x00000002,0x000001c2,0x00040005,
 	0x00000004,0x6e69616d,0x00000000,0x00060005,0x0000000a,0x6c6c7550,0x65646e49,0x31752878,
 	0x0000003b,0x00040005,0x00000009,0x65646e69,0x00000078,0x00090005,0x00000010,0x6b636150,
@@ -17,77 +17,86 @@
 	0x00000000,0x00030005,0x00000016,0x00000000,0x00050005,0x0000001d,0x42637273,0x6b636f6c,
 	0x00000000,0x00030005,0x0000001f,0x00637273,0x00050006,0x0000001f,0x00000000,0x44637273,
 	0x00617461,0x00030005,0x00000021,0x00000000,0x00060005,0x00000028,0x43637273,0x6f706d6f,
-	0x746e656e,0x00000000,0x00040005,0x0000002c,0x756c6176,0x00000065,0x00040005,0x0000003e,
-	0x65646e69,0x00000078,0x00080005,0x00000041,0x475f6c67,0x61626f6c,0x766e496c,0x7461636f,
-	0x496e6f69,0x00000044,0x00050005,0x00000050,0x56747364,0x65756c61,0x00000000,0x00050005,
-	0x00000051,0x56637273,0x65756c61,0x00000000,0x00040005,0x00000052,0x61726170,0x0000006d,
-	0x00040005,0x00000055,0x61726170,0x0000006d,0x00040005,0x00000057,0x61726170,0x0000006d,
-	0x00040005,0x00000058,0x61726170,0x0000006d,0x00050005,0x00000064,0x56637273,0x65756c61,
-	0x00000000,0x00040005,0x00000067,0x61726170,0x0000006d,0x00040005,0x00000069,0x61726170,
-	0x0000006d,0x00040005,0x0000006b,0x61726170,0x0000006d,0x00040005,0x0000006c,0x61726170,
-	0x0000006d,0x00030005,0x00000071,0x00747364,0x00050006,0x00000071,0x00000000,0x44747364,
-	0x00617461,0x00030005,0x00000073,0x00000000,0x00050048,0x00000014,0x00000000,0x00000023,
-	0x00000000,0x00050048,0x00000014,0x00000001,0x00000023,0x00000004,0x00050048,0x00000014,
-	0x00000002,0x00000023,0x00000008,0x00050048,0x00000014,0x00000003,0x00000023,0x0000000c,
-	0x00030047,0x00000014,0x00000002,0x00040047,0x0000001e,0x00000006,0x00000004,0x00040048,
-	0x0000001f,0x00000000,0x00000018,0x00050048,0x0000001f,0x00000000,0x00000023,0x00000000,
-	0x00030047,0x0000001f,0x00000003,0x00040047,0x00000021,0x00000022,0x00000000,0x00040047,
-	0x00000021,0x00000021,0x00000001,0x00040047,0x00000041,0x0000000b,0x0000001c,0x00040047,
-	0x00000070,0x00000006,0x00000004,0x00050048,0x00000071,0x00000000,0x00000023,0x00000000,
-	0x00030047,0x00000071,0x00000003,0x00040047,0x00000073,0x00000022,0x00000000,0x00040047,
-	0x00000073,0x00000021,0x00000000,0x00040047,0x0000007c,0x0000000b,0x00000019,0x00020013,
-	0x00000002,0x00030021,0x00000003,0x00000002,0x00040015,0x00000006,0x00000020,0x00000000,
-	0x00040020,0x00000007,0x00000007,0x00000006,0x00040021,0x00000008,0x00000006,0x00000007,
-	0x00060021,0x0000000c,0x00000002,0x00000007,0x00000007,0x00000007,0x0006001e,0x00000014,
-	0x00000006,0x00000006,0x00000006,0x00000006,0x00040020,0x00000015,0x00000009,0x00000014,
-	0x0004003b,0x00000015,0x00000016,0x00000009,0x00040015,0x00000017,0x00000020,0x00000001,
-	0x0004002b,0x00000017,0x00000018,0x00000000,0x00040020,0x00000019,0x00000009,0x00000006,
-	0x0003001d,0x0000001e,0x00000006,0x0003001e,0x0000001f,0x0000001e,0x00040020,0x00000020,
-	0x00000002,0x0000001f,0x0004003b,0x00000020,0x00000021,0x00000002,0x0004002b,0x00000017,
-	0x00000023,0x00000002,0x00040020,0x00000025,0x00000002,0x00000006,0x0004002b,0x00000006,
-	0x0000002a,0x00000003,0x0004002b,0x00000017,0x0000002f,0x00000003,0x0004002b,0x00000006,
-	0x00000032,0x000000ff,0x0004002b,0x00000017,0x00000039,0x00000004,0x00040017,0x0000003f,
-	0x00000006,0x00000003,0x00040020,0x00000040,0x00000001,0x0000003f,0x0004003b,0x00000040,
-	0x00000041,0x00000001,0x0004002b,0x00000006,0x00000042,0x00000000,0x00040020,0x00000043,
-	0x00000001,0x00000006,0x0004002b,0x00000017,0x00000046,0x00000001,0x00020014,0x0000004b,
-	0x0004002b,0x00000006,0x0000005d,0x00000001,0x0003001d,0x00000070,0x00000006,0x0003001e,
-	0x00000071,0x00000070,0x00040020,0x00000072,0x00000002,0x00000071,0x0004003b,0x00000072,
-	0x00000073,0x00000002,0x0004002b,0x00000006,0x0000007b,0x00000040,0x0006002c,0x0000003f,
-	0x0000007c,0x0000007b,0x0000005d,0x0000005d,0x00050036,0x00000002,0x00000004,0x00000000,
-	0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000007,0x0000003e,0x00000007,0x0004003b,
-	0x00000007,0x00000050,0x00000007,0x0004003b,0x00000007,0x00000051,0x00000007,0x0004003b,
-	0x00000007,0x00000052,0x00000007,0x0004003b,0x00000007,0x00000055,0x00000007,0x0004003b,
-	0x00000007,0x00000057,0x00000007,0x0004003b,0x00000007,0x00000058,0x00000007,0x0004003b,
-	0x00000007,0x00000064,0x00000007,0x0004003b,0x00000007,0x00000067,0x00000007,0x0004003b,
-	0x00000007,0x00000069,0x00000007,0x0004003b,0x00000007,0x0000006b,0x00000007,0x0004003b,
-	0x00000007,0x0000006c,0x00000007,0x00050041,0x00000043,0x00000044,0x00000041,0x00000042,
-	0x0004003d,0x00000006,0x00000045,0x00000044,0x000500c4,0x00000006,0x00000047,0x00000045,
-	0x00000046,0x0003003e,0x0000003e,0x00000047,0x0004003d,0x00000006,0x00000048,0x0000003e,
-	0x00050041,0x00000019,0x00000049,0x00000016,0x00000023,0x0004003d,0x00000006,0x0000004a,
-	0x00000049,0x000500ae,0x0000004b,0x0000004c,0x00000048,0x0000004a,0x000300f7,0x0000004e,
-	0x00000000,0x000400fa,0x0000004c,0x0000004d,0x0000004e,0x000200f8,0x0000004d,0x000100fd,
-	0x000200f8,0x0000004e,0x0003003e,0x00000050,0x00000042,0x0004003d,0x00000006,0x00000053,
-	0x0000003e,0x0003003e,0x00000052,0x00000053,0x00050039,0x00000006,0x00000054,0x0000000a,
-	0x00000052,0x0003003e,0x00000051,0x00000054,0x0004003d,0x00000006,0x00000056,0x00000051,
-	0x0003003e,0x00000055,0x00000056,0x0003003e,0x00000057,0x00000042,0x0004003d,0x00000006,
-	0x00000059,0x00000050,0x0003003e,0x00000058,0x00000059,0x00070039,0x00000002,0x0000005a,
-	0x00000010,0x00000055,0x00000057,0x00000058,0x0004003d,0x00000006,0x0000005b,0x00000058,
-	0x0003003e,0x00000050,0x0000005b,0x0004003d,0x00000006,0x0000005c,0x0000003e,0x00050080,
-	0x00000006,0x0000005e,0x0000005c,0x0000005d,0x00050041,0x00000019,0x0000005f,0x00000016,
-	0x00000023,0x0004003d,0x00000006,0x00000060,0x0000005f,0x000500b0,0x0000004b,0x00000061,
-	0x0000005e,0x00000060,0x000300f7,0x00000063,0x00000000,0x000400fa,0x00000061,0x00000062,
-	0x00000063,0x000200f8,0x00000062,0x0004003d,0x00000006,0x00000065,0x0000003e,0x00050080,
-	0x00000006,0x00000066,0x00000065,0x0000005d,0x0003003e,0x00000067,0x00000066,0x00050039,
-	0x00000006,0x00000068,0x0000000a,0x00000067,0x0003003e,0x00000064,0x00000068,0x0004003d,
-	0x00000006,0x0000006a,0x00000064,0x0003003e,0x00000069,0x0000006a,0x0003003e,0x0000006b,
-	0x0000005d,0x0004003d,0x00000006,0x0000006d,0x00000050,0x0003003e,0x0000006c,0x0000006d,
-	0x00070039,0x00000002,0x0000006e,0x00000010,0x00000069,0x0000006b,0x0000006c,0x0004003d,
-	0x00000006,0x0000006f,0x0000006c,0x0003003e,0x00000050,0x0000006f,0x000200f9,0x00000063,
-	0x000200f8,0x00000063,0x00050041,0x00000019,0x00000074,0x00000016,0x00000046,0x0004003d,
-	0x00000006,0x00000075,0x00000074,0x00050041,0x00000043,0x00000076,0x00000041,0x00000042,
-	0x0004003d,0x00000006,0x00000077,0x00000076,0x00050080,0x00000006,0x00000078,0x00000075,
-	0x00000077,0x0004003d,0x00000006,0x00000079,0x00000050,0x00060041,0x00000025,0x0000007a,
-	0x00000073,0x00000018,0x00000078,0x0003003e,0x0000007a,0x00000079,0x000100fd,0x00010038,
+	0x746e656e,0x00000000,0x00040005,0x0000002c,0x756c6176,0x00000065,0x00050005,0x0000003e,
+	0x73726966,0x646e4974,0x00007865,0x00050005,0x00000040,0x49646e65,0x7865646e,0x00000000,
+	0x00040005,0x00000045,0x65646e69,0x00000078,0x00080005,0x00000048,0x475f6c67,0x61626f6c,
+	0x766e496c,0x7461636f,0x496e6f69,0x00000044,0x00050005,0x00000058,0x56747364,0x65756c61,
+	0x00000000,0x00050005,0x0000005e,0x56637273,0x65756c61,0x00000000,0x00040005,0x0000005f,
+	0x61726170,0x0000006d,0x00040005,0x00000062,0x61726170,0x0000006d,0x00040005,0x00000064,
+	0x61726170,0x0000006d,0x00040005,0x00000065,0x61726170,0x0000006d,0x00050005,0x00000070,
+	0x56637273,0x65756c61,0x00000000,0x00040005,0x00000073,0x61726170,0x0000006d,0x00040005,
+	0x00000075,0x61726170,0x0000006d,0x00040005,0x00000077,0x61726170,0x0000006d,0x00040005,
+	0x00000078,0x61726170,0x0000006d,0x00030005,0x0000007d,0x00747364,0x00050006,0x0000007d,
+	0x00000000,0x44747364,0x00617461,0x00030005,0x0000007f,0x00000000,0x00050048,0x00000014,
+	0x00000000,0x00000023,0x00000000,0x00050048,0x00000014,0x00000001,0x00000023,0x00000004,
+	0x00050048,0x00000014,0x00000002,0x00000023,0x00000008,0x00050048,0x00000014,0x00000003,
+	0x00000023,0x0000000c,0x00030047,0x00000014,0x00000002,0x00040047,0x0000001e,0x00000006,
+	0x00000004,0x00040048,0x0000001f,0x00000000,0x00000018,0x00050048,0x0000001f,0x00000000,
+	0x00000023,0x00000000,0x00030047,0x0000001f,0x00000003,0x00040047,0x00000021,0x00000022,
+	0x00000000,0x00040047,0x00000021,0x00000021,0x00000001,0x00040047,0x00000048,0x0000000b,
+	0x0000001c,0x00040047,0x0000007c,0x00000006,0x00000004,0x00050048,0x0000007d,0x00000000,
+	0x00000023,0x00000000,0x00030047,0x0000007d,0x00000003,0x00040047,0x0000007f,0x00000022,
+	0x00000000,0x00040047,0x0000007f,0x00000021,0x00000000,0x00040047,0x00000088,0x0000000b,
+	0x00000019,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00040015,0x00000006,
+	0x00000020,0x00000000,0x00040020,0x00000007,0x00000007,0x00000006,0x00040021,0x00000008,
+	0x00000006,0x00000007,0x00060021,0x0000000c,0x00000002,0x00000007,0x00000007,0x00000007,
+	0x0006001e,0x00000014,0x00000006,0x00000006,0x00000006,0x00000006,0x00040020,0x00000015,
+	0x00000009,0x00000014,0x0004003b,0x00000015,0x00000016,0x00000009,0x00040015,0x00000017,
+	0x00000020,0x00000001,0x0004002b,0x00000017,0x00000018,0x00000000,0x00040020,0x00000019,
+	0x00000009,0x00000006,0x0003001d,0x0000001e,0x00000006,0x0003001e,0x0000001f,0x0000001e,
+	0x00040020,0x00000020,0x00000002,0x0000001f,0x0004003b,0x00000020,0x00000021,0x00000002,
+	0x0004002b,0x00000017,0x00000023,0x00000002,0x00040020,0x00000025,0x00000002,0x00000006,
+	0x0004002b,0x00000006,0x0000002a,0x00000003,0x0004002b,0x00000017,0x0000002f,0x00000003,
+	0x0004002b,0x00000006,0x00000032,0x000000ff,0x0004002b,0x00000017,0x00000039,0x00000004,
+	0x0004002b,0x00000006,0x0000003f,0x00000000,0x00040017,0x00000046,0x00000006,0x00000003,
+	0x00040020,0x00000047,0x00000001,0x00000046,0x0004003b,0x00000047,0x00000048,0x00000001,
+	0x00040020,0x00000049,0x00000001,0x00000006,0x0004002b,0x00000017,0x0000004d,0x00000001,
+	0x00020014,0x00000053,0x0004002b,0x00000006,0x0000006a,0x00000001,0x0003001d,0x0000007c,
+	0x00000006,0x0003001e,0x0000007d,0x0000007c,0x00040020,0x0000007e,0x00000002,0x0000007d,
+	0x0004003b,0x0000007e,0x0000007f,0x00000002,0x0004002b,0x00000006,0x00000087,0x00000040,
+	0x0006002c,0x00000046,0x00000088,0x00000087,0x0000006a,0x0000006a,0x00050036,0x00000002,
+	0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000007,0x0000003e,
+	0x00000007,0x0004003b,0x00000007,0x00000040,0x00000007,0x0004003b,0x00000007,0x00000045,
+	0x00000007,0x0004003b,0x00000007,0x00000058,0x00000007,0x0004003b,0x00000007,0x0000005e,
+	0x00000007,0x0004003b,0x00000007,0x0000005f,0x00000007,0x0004003b,0x00000007,0x00000062,
+	0x00000007,0x0004003b,0x00000007,0x00000064,0x00000007,0x0004003b,0x00000007,0x00000065,
+	0x00000007,0x0004003b,0x00000007,0x00000070,0x00000007,0x0004003b,0x00000007,0x00000073,
+	0x00000007,0x0004003b,0x00000007,0x00000075,0x00000007,0x0004003b,0x00000007,0x00000077,
+	0x00000007,0x0004003b,0x00000007,0x00000078,0x00000007,0x0003003e,0x0000003e,0x0000003f,
+	0x0004003d,0x00000006,0x00000041,0x0000003e,0x00050041,0x00000019,0x00000042,0x00000016,
+	0x00000023,0x0004003d,0x00000006,0x00000043,0x00000042,0x00050080,0x00000006,0x00000044,
+	0x00000041,0x00000043,0x0003003e,0x00000040,0x00000044,0x00050041,0x00000049,0x0000004a,
+	0x00000048,0x0000003f,0x0004003d,0x00000006,0x0000004b,0x0000004a,0x0004003d,0x00000006,
+	0x0000004c,0x0000003e,0x000500c2,0x00000006,0x0000004e,0x0000004c,0x0000004d,0x00050080,
+	0x00000006,0x0000004f,0x0000004b,0x0000004e,0x000500c4,0x00000006,0x00000050,0x0000004f,
+	0x0000004d,0x0003003e,0x00000045,0x00000050,0x0004003d,0x00000006,0x00000051,0x00000045,
+	0x0004003d,0x00000006,0x00000052,0x00000040,0x000500ae,0x00000053,0x00000054,0x00000051,
+	0x00000052,0x000300f7,0x00000056,0x00000000,0x000400fa,0x00000054,0x00000055,0x00000056,
+	0x000200f8,0x00000055,0x000100fd,0x000200f8,0x00000056,0x0003003e,0x00000058,0x0000003f,
+	0x0004003d,0x00000006,0x00000059,0x00000045,0x0004003d,0x00000006,0x0000005a,0x0000003e,
+	0x000500ae,0x00000053,0x0000005b,0x00000059,0x0000005a,0x000300f7,0x0000005d,0x00000000,
+	0x000400fa,0x0000005b,0x0000005c,0x0000005d,0x000200f8,0x0000005c,0x0004003d,0x00000006,
+	0x00000060,0x00000045,0x0003003e,0x0000005f,0x00000060,0x00050039,0x00000006,0x00000061,
+	0x0000000a,0x0000005f,0x0003003e,0x0000005e,0x00000061,0x0004003d,0x00000006,0x00000063,
+	0x0000005e,0x0003003e,0x00000062,0x00000063,0x0003003e,0x00000064,0x0000003f,0x0004003d,
+	0x00000006,0x00000066,0x00000058,0x0003003e,0x00000065,0x00000066,0x00070039,0x00000002,
+	0x00000067,0x00000010,0x00000062,0x00000064,0x00000065,0x0004003d,0x00000006,0x00000068,
+	0x00000065,0x0003003e,0x00000058,0x00000068,0x000200f9,0x0000005d,0x000200f8,0x0000005d,
+	0x0004003d,0x00000006,0x00000069,0x00000045,0x00050080,0x00000006,0x0000006b,0x00000069,
+	0x0000006a,0x0004003d,0x00000006,0x0000006c,0x00000040,0x000500b0,0x00000053,0x0000006d,
+	0x0000006b,0x0000006c,0x000300f7,0x0000006f,0x00000000,0x000400fa,0x0000006d,0x0000006e,
+	0x0000006f,0x000200f8,0x0000006e,0x0004003d,0x00000006,0x00000071,0x00000045,0x00050080,
+	0x00000006,0x00000072,0x00000071,0x0000006a,0x0003003e,0x00000073,0x00000072,0x00050039,
+	0x00000006,0x00000074,0x0000000a,0x00000073,0x0003003e,0x00000070,0x00000074,0x0004003d,
+	0x00000006,0x00000076,0x00000070,0x0003003e,0x00000075,0x00000076,0x0003003e,0x00000077,
+	0x0000006a,0x0004003d,0x00000006,0x00000079,0x00000058,0x0003003e,0x00000078,0x00000079,
+	0x00070039,0x00000002,0x0000007a,0x00000010,0x00000075,0x00000077,0x00000078,0x0004003d,
+	0x00000006,0x0000007b,0x00000078,0x0003003e,0x00000058,0x0000007b,0x000200f9,0x0000006f,
+	0x000200f8,0x0000006f,0x00050041,0x00000019,0x00000080,0x00000016,0x0000004d,0x0004003d,
+	0x00000006,0x00000081,0x00000080,0x00050041,0x00000049,0x00000082,0x00000048,0x0000003f,
+	0x0004003d,0x00000006,0x00000083,0x00000082,0x00050080,0x00000006,0x00000084,0x00000081,
+	0x00000083,0x0004003d,0x00000006,0x00000085,0x00000058,0x00060041,0x00000025,0x00000086,
+	0x0000007f,0x00000018,0x00000084,0x0003003e,0x00000086,0x00000085,0x000100fd,0x00010038,
 	0x00050036,0x00000006,0x0000000a,0x00000000,0x00000008,0x00030037,0x00000007,0x00000009,
 	0x000200f8,0x0000000b,0x0004003b,0x00000007,0x00000012,0x00000007,0x0004003b,0x00000007,
 	0x0000001d,0x00000007,0x0004003b,0x00000007,0x00000028,0x00000007,0x0004003b,0x00000007,
@@ -143,7 +152,9 @@
 //
 // uint PullIndex(uint index)
 // {
+//
 //     uint srcIndex = index + srcOffset;
+//
 //     uint srcBlock = srcData[srcIndex >> 2];
 //     uint srcComponent =(srcIndex & 3);
 //
@@ -161,17 +172,23 @@
 // void main()
 // {
 //
-//     uint index =(gl_GlobalInvocationID . x << 1);
+//     uint firstIndex = 0;
+//     uint endIndex = firstIndex + maxIndex;
 //
-//     if(index >= maxIndex)
+//     uint index =((gl_GlobalInvocationID . x +(firstIndex >> 1))<< 1);
+//
+//     if(index >= endIndex)
 //         return;
 //
 //     uint dstValue = 0;
 //
-//     uint srcValue = PullIndex(index);
-//     PackIndexValue(srcValue, 0, dstValue);
+//     if(index >= firstIndex)
+//     {
+//         uint srcValue = PullIndex(index);
+//         PackIndexValue(srcValue, 0, dstValue);
+//     }
 //
-//     if(index + 1 < maxIndex)
+//     if(index + 1 < endIndex)
 //     {
 //         uint srcValue = PullIndex(index + 1);
 //         PackIndexValue(srcValue, 1, dstValue);
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000001.inc b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000001.inc
index 64e264b..6303275 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000001.inc
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000001.inc
@@ -1,9 +1,9 @@
 	// 7.12.3226
 	 #pragma once
 const uint32_t kConvertIndex_comp_00000001[] = {
-	0x07230203,0x00010000,0x00080007,0x00000082,0x00000000,0x00020011,0x00000001,0x0006000b,
+	0x07230203,0x00010000,0x00080007,0x0000008e,0x00000000,0x00020011,0x00000001,0x0006000b,
 	0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,
-	0x0006000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x00000047,0x00060010,0x00000004,
+	0x0006000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x0000004e,0x00060010,0x00000004,
 	0x00000011,0x00000040,0x00000001,0x00000001,0x00030003,0x00000002,0x000001c2,0x00040005,
 	0x00000004,0x6e69616d,0x00000000,0x00060005,0x0000000a,0x6c6c7550,0x65646e49,0x31752878,
 	0x0000003b,0x00040005,0x00000009,0x65646e69,0x00000078,0x00090005,0x00000010,0x6b636150,
@@ -17,78 +17,87 @@
 	0x00000000,0x00030005,0x00000016,0x00000000,0x00050005,0x0000001d,0x42637273,0x6b636f6c,
 	0x00000000,0x00030005,0x0000001f,0x00637273,0x00050006,0x0000001f,0x00000000,0x44637273,
 	0x00617461,0x00030005,0x00000021,0x00000000,0x00060005,0x00000028,0x43637273,0x6f706d6f,
-	0x746e656e,0x00000000,0x00040005,0x0000002c,0x756c6176,0x00000065,0x00040005,0x00000044,
-	0x65646e69,0x00000078,0x00080005,0x00000047,0x475f6c67,0x61626f6c,0x766e496c,0x7461636f,
-	0x496e6f69,0x00000044,0x00050005,0x00000055,0x56747364,0x65756c61,0x00000000,0x00050005,
-	0x00000056,0x56637273,0x65756c61,0x00000000,0x00040005,0x00000057,0x61726170,0x0000006d,
-	0x00040005,0x0000005a,0x61726170,0x0000006d,0x00040005,0x0000005c,0x61726170,0x0000006d,
-	0x00040005,0x0000005d,0x61726170,0x0000006d,0x00050005,0x00000069,0x56637273,0x65756c61,
-	0x00000000,0x00040005,0x0000006c,0x61726170,0x0000006d,0x00040005,0x0000006e,0x61726170,
-	0x0000006d,0x00040005,0x00000070,0x61726170,0x0000006d,0x00040005,0x00000071,0x61726170,
-	0x0000006d,0x00030005,0x00000076,0x00747364,0x00050006,0x00000076,0x00000000,0x44747364,
-	0x00617461,0x00030005,0x00000078,0x00000000,0x00050048,0x00000014,0x00000000,0x00000023,
-	0x00000000,0x00050048,0x00000014,0x00000001,0x00000023,0x00000004,0x00050048,0x00000014,
-	0x00000002,0x00000023,0x00000008,0x00050048,0x00000014,0x00000003,0x00000023,0x0000000c,
-	0x00030047,0x00000014,0x00000002,0x00040047,0x0000001e,0x00000006,0x00000004,0x00040048,
-	0x0000001f,0x00000000,0x00000018,0x00050048,0x0000001f,0x00000000,0x00000023,0x00000000,
-	0x00030047,0x0000001f,0x00000003,0x00040047,0x00000021,0x00000022,0x00000000,0x00040047,
-	0x00000021,0x00000021,0x00000001,0x00040047,0x00000047,0x0000000b,0x0000001c,0x00040047,
-	0x00000075,0x00000006,0x00000004,0x00050048,0x00000076,0x00000000,0x00000023,0x00000000,
-	0x00030047,0x00000076,0x00000003,0x00040047,0x00000078,0x00000022,0x00000000,0x00040047,
-	0x00000078,0x00000021,0x00000000,0x00040047,0x00000081,0x0000000b,0x00000019,0x00020013,
-	0x00000002,0x00030021,0x00000003,0x00000002,0x00040015,0x00000006,0x00000020,0x00000000,
-	0x00040020,0x00000007,0x00000007,0x00000006,0x00040021,0x00000008,0x00000006,0x00000007,
-	0x00060021,0x0000000c,0x00000002,0x00000007,0x00000007,0x00000007,0x0006001e,0x00000014,
-	0x00000006,0x00000006,0x00000006,0x00000006,0x00040020,0x00000015,0x00000009,0x00000014,
-	0x0004003b,0x00000015,0x00000016,0x00000009,0x00040015,0x00000017,0x00000020,0x00000001,
-	0x0004002b,0x00000017,0x00000018,0x00000000,0x00040020,0x00000019,0x00000009,0x00000006,
-	0x0003001d,0x0000001e,0x00000006,0x0003001e,0x0000001f,0x0000001e,0x00040020,0x00000020,
-	0x00000002,0x0000001f,0x0004003b,0x00000020,0x00000021,0x00000002,0x0004002b,0x00000017,
-	0x00000023,0x00000002,0x00040020,0x00000025,0x00000002,0x00000006,0x0004002b,0x00000006,
-	0x0000002a,0x00000003,0x0004002b,0x00000017,0x0000002f,0x00000003,0x0004002b,0x00000006,
-	0x00000032,0x000000ff,0x00020014,0x00000035,0x0004002b,0x00000006,0x00000039,0x0000ffff,
-	0x0004002b,0x00000017,0x0000003f,0x00000004,0x00040017,0x00000045,0x00000006,0x00000003,
-	0x00040020,0x00000046,0x00000001,0x00000045,0x0004003b,0x00000046,0x00000047,0x00000001,
-	0x0004002b,0x00000006,0x00000048,0x00000000,0x00040020,0x00000049,0x00000001,0x00000006,
-	0x0004002b,0x00000017,0x0000004c,0x00000001,0x0004002b,0x00000006,0x00000062,0x00000001,
-	0x0003001d,0x00000075,0x00000006,0x0003001e,0x00000076,0x00000075,0x00040020,0x00000077,
-	0x00000002,0x00000076,0x0004003b,0x00000077,0x00000078,0x00000002,0x0004002b,0x00000006,
-	0x00000080,0x00000040,0x0006002c,0x00000045,0x00000081,0x00000080,0x00000062,0x00000062,
-	0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,
-	0x00000007,0x00000044,0x00000007,0x0004003b,0x00000007,0x00000055,0x00000007,0x0004003b,
-	0x00000007,0x00000056,0x00000007,0x0004003b,0x00000007,0x00000057,0x00000007,0x0004003b,
-	0x00000007,0x0000005a,0x00000007,0x0004003b,0x00000007,0x0000005c,0x00000007,0x0004003b,
-	0x00000007,0x0000005d,0x00000007,0x0004003b,0x00000007,0x00000069,0x00000007,0x0004003b,
-	0x00000007,0x0000006c,0x00000007,0x0004003b,0x00000007,0x0000006e,0x00000007,0x0004003b,
-	0x00000007,0x00000070,0x00000007,0x0004003b,0x00000007,0x00000071,0x00000007,0x00050041,
-	0x00000049,0x0000004a,0x00000047,0x00000048,0x0004003d,0x00000006,0x0000004b,0x0000004a,
-	0x000500c4,0x00000006,0x0000004d,0x0000004b,0x0000004c,0x0003003e,0x00000044,0x0000004d,
-	0x0004003d,0x00000006,0x0000004e,0x00000044,0x00050041,0x00000019,0x0000004f,0x00000016,
-	0x00000023,0x0004003d,0x00000006,0x00000050,0x0000004f,0x000500ae,0x00000035,0x00000051,
-	0x0000004e,0x00000050,0x000300f7,0x00000053,0x00000000,0x000400fa,0x00000051,0x00000052,
-	0x00000053,0x000200f8,0x00000052,0x000100fd,0x000200f8,0x00000053,0x0003003e,0x00000055,
-	0x00000048,0x0004003d,0x00000006,0x00000058,0x00000044,0x0003003e,0x00000057,0x00000058,
-	0x00050039,0x00000006,0x00000059,0x0000000a,0x00000057,0x0003003e,0x00000056,0x00000059,
-	0x0004003d,0x00000006,0x0000005b,0x00000056,0x0003003e,0x0000005a,0x0000005b,0x0003003e,
-	0x0000005c,0x00000048,0x0004003d,0x00000006,0x0000005e,0x00000055,0x0003003e,0x0000005d,
-	0x0000005e,0x00070039,0x00000002,0x0000005f,0x00000010,0x0000005a,0x0000005c,0x0000005d,
-	0x0004003d,0x00000006,0x00000060,0x0000005d,0x0003003e,0x00000055,0x00000060,0x0004003d,
-	0x00000006,0x00000061,0x00000044,0x00050080,0x00000006,0x00000063,0x00000061,0x00000062,
-	0x00050041,0x00000019,0x00000064,0x00000016,0x00000023,0x0004003d,0x00000006,0x00000065,
-	0x00000064,0x000500b0,0x00000035,0x00000066,0x00000063,0x00000065,0x000300f7,0x00000068,
-	0x00000000,0x000400fa,0x00000066,0x00000067,0x00000068,0x000200f8,0x00000067,0x0004003d,
-	0x00000006,0x0000006a,0x00000044,0x00050080,0x00000006,0x0000006b,0x0000006a,0x00000062,
-	0x0003003e,0x0000006c,0x0000006b,0x00050039,0x00000006,0x0000006d,0x0000000a,0x0000006c,
-	0x0003003e,0x00000069,0x0000006d,0x0004003d,0x00000006,0x0000006f,0x00000069,0x0003003e,
-	0x0000006e,0x0000006f,0x0003003e,0x00000070,0x00000062,0x0004003d,0x00000006,0x00000072,
-	0x00000055,0x0003003e,0x00000071,0x00000072,0x00070039,0x00000002,0x00000073,0x00000010,
-	0x0000006e,0x00000070,0x00000071,0x0004003d,0x00000006,0x00000074,0x00000071,0x0003003e,
-	0x00000055,0x00000074,0x000200f9,0x00000068,0x000200f8,0x00000068,0x00050041,0x00000019,
-	0x00000079,0x00000016,0x0000004c,0x0004003d,0x00000006,0x0000007a,0x00000079,0x00050041,
-	0x00000049,0x0000007b,0x00000047,0x00000048,0x0004003d,0x00000006,0x0000007c,0x0000007b,
-	0x00050080,0x00000006,0x0000007d,0x0000007a,0x0000007c,0x0004003d,0x00000006,0x0000007e,
-	0x00000055,0x00060041,0x00000025,0x0000007f,0x00000078,0x00000018,0x0000007d,0x0003003e,
-	0x0000007f,0x0000007e,0x000100fd,0x00010038,0x00050036,0x00000006,0x0000000a,0x00000000,
+	0x746e656e,0x00000000,0x00040005,0x0000002c,0x756c6176,0x00000065,0x00050005,0x00000044,
+	0x73726966,0x646e4974,0x00007865,0x00050005,0x00000046,0x49646e65,0x7865646e,0x00000000,
+	0x00040005,0x0000004b,0x65646e69,0x00000078,0x00080005,0x0000004e,0x475f6c67,0x61626f6c,
+	0x766e496c,0x7461636f,0x496e6f69,0x00000044,0x00050005,0x0000005d,0x56747364,0x65756c61,
+	0x00000000,0x00050005,0x00000063,0x56637273,0x65756c61,0x00000000,0x00040005,0x00000064,
+	0x61726170,0x0000006d,0x00040005,0x00000067,0x61726170,0x0000006d,0x00040005,0x00000069,
+	0x61726170,0x0000006d,0x00040005,0x0000006a,0x61726170,0x0000006d,0x00050005,0x00000075,
+	0x56637273,0x65756c61,0x00000000,0x00040005,0x00000078,0x61726170,0x0000006d,0x00040005,
+	0x0000007a,0x61726170,0x0000006d,0x00040005,0x0000007c,0x61726170,0x0000006d,0x00040005,
+	0x0000007d,0x61726170,0x0000006d,0x00030005,0x00000082,0x00747364,0x00050006,0x00000082,
+	0x00000000,0x44747364,0x00617461,0x00030005,0x00000084,0x00000000,0x00050048,0x00000014,
+	0x00000000,0x00000023,0x00000000,0x00050048,0x00000014,0x00000001,0x00000023,0x00000004,
+	0x00050048,0x00000014,0x00000002,0x00000023,0x00000008,0x00050048,0x00000014,0x00000003,
+	0x00000023,0x0000000c,0x00030047,0x00000014,0x00000002,0x00040047,0x0000001e,0x00000006,
+	0x00000004,0x00040048,0x0000001f,0x00000000,0x00000018,0x00050048,0x0000001f,0x00000000,
+	0x00000023,0x00000000,0x00030047,0x0000001f,0x00000003,0x00040047,0x00000021,0x00000022,
+	0x00000000,0x00040047,0x00000021,0x00000021,0x00000001,0x00040047,0x0000004e,0x0000000b,
+	0x0000001c,0x00040047,0x00000081,0x00000006,0x00000004,0x00050048,0x00000082,0x00000000,
+	0x00000023,0x00000000,0x00030047,0x00000082,0x00000003,0x00040047,0x00000084,0x00000022,
+	0x00000000,0x00040047,0x00000084,0x00000021,0x00000000,0x00040047,0x0000008d,0x0000000b,
+	0x00000019,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00040015,0x00000006,
+	0x00000020,0x00000000,0x00040020,0x00000007,0x00000007,0x00000006,0x00040021,0x00000008,
+	0x00000006,0x00000007,0x00060021,0x0000000c,0x00000002,0x00000007,0x00000007,0x00000007,
+	0x0006001e,0x00000014,0x00000006,0x00000006,0x00000006,0x00000006,0x00040020,0x00000015,
+	0x00000009,0x00000014,0x0004003b,0x00000015,0x00000016,0x00000009,0x00040015,0x00000017,
+	0x00000020,0x00000001,0x0004002b,0x00000017,0x00000018,0x00000000,0x00040020,0x00000019,
+	0x00000009,0x00000006,0x0003001d,0x0000001e,0x00000006,0x0003001e,0x0000001f,0x0000001e,
+	0x00040020,0x00000020,0x00000002,0x0000001f,0x0004003b,0x00000020,0x00000021,0x00000002,
+	0x0004002b,0x00000017,0x00000023,0x00000002,0x00040020,0x00000025,0x00000002,0x00000006,
+	0x0004002b,0x00000006,0x0000002a,0x00000003,0x0004002b,0x00000017,0x0000002f,0x00000003,
+	0x0004002b,0x00000006,0x00000032,0x000000ff,0x00020014,0x00000035,0x0004002b,0x00000006,
+	0x00000039,0x0000ffff,0x0004002b,0x00000017,0x0000003f,0x00000004,0x0004002b,0x00000006,
+	0x00000045,0x00000000,0x00040017,0x0000004c,0x00000006,0x00000003,0x00040020,0x0000004d,
+	0x00000001,0x0000004c,0x0004003b,0x0000004d,0x0000004e,0x00000001,0x00040020,0x0000004f,
+	0x00000001,0x00000006,0x0004002b,0x00000017,0x00000053,0x00000001,0x0004002b,0x00000006,
+	0x0000006f,0x00000001,0x0003001d,0x00000081,0x00000006,0x0003001e,0x00000082,0x00000081,
+	0x00040020,0x00000083,0x00000002,0x00000082,0x0004003b,0x00000083,0x00000084,0x00000002,
+	0x0004002b,0x00000006,0x0000008c,0x00000040,0x0006002c,0x0000004c,0x0000008d,0x0000008c,
+	0x0000006f,0x0000006f,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8,
+	0x00000005,0x0004003b,0x00000007,0x00000044,0x00000007,0x0004003b,0x00000007,0x00000046,
+	0x00000007,0x0004003b,0x00000007,0x0000004b,0x00000007,0x0004003b,0x00000007,0x0000005d,
+	0x00000007,0x0004003b,0x00000007,0x00000063,0x00000007,0x0004003b,0x00000007,0x00000064,
+	0x00000007,0x0004003b,0x00000007,0x00000067,0x00000007,0x0004003b,0x00000007,0x00000069,
+	0x00000007,0x0004003b,0x00000007,0x0000006a,0x00000007,0x0004003b,0x00000007,0x00000075,
+	0x00000007,0x0004003b,0x00000007,0x00000078,0x00000007,0x0004003b,0x00000007,0x0000007a,
+	0x00000007,0x0004003b,0x00000007,0x0000007c,0x00000007,0x0004003b,0x00000007,0x0000007d,
+	0x00000007,0x0003003e,0x00000044,0x00000045,0x0004003d,0x00000006,0x00000047,0x00000044,
+	0x00050041,0x00000019,0x00000048,0x00000016,0x00000023,0x0004003d,0x00000006,0x00000049,
+	0x00000048,0x00050080,0x00000006,0x0000004a,0x00000047,0x00000049,0x0003003e,0x00000046,
+	0x0000004a,0x00050041,0x0000004f,0x00000050,0x0000004e,0x00000045,0x0004003d,0x00000006,
+	0x00000051,0x00000050,0x0004003d,0x00000006,0x00000052,0x00000044,0x000500c2,0x00000006,
+	0x00000054,0x00000052,0x00000053,0x00050080,0x00000006,0x00000055,0x00000051,0x00000054,
+	0x000500c4,0x00000006,0x00000056,0x00000055,0x00000053,0x0003003e,0x0000004b,0x00000056,
+	0x0004003d,0x00000006,0x00000057,0x0000004b,0x0004003d,0x00000006,0x00000058,0x00000046,
+	0x000500ae,0x00000035,0x00000059,0x00000057,0x00000058,0x000300f7,0x0000005b,0x00000000,
+	0x000400fa,0x00000059,0x0000005a,0x0000005b,0x000200f8,0x0000005a,0x000100fd,0x000200f8,
+	0x0000005b,0x0003003e,0x0000005d,0x00000045,0x0004003d,0x00000006,0x0000005e,0x0000004b,
+	0x0004003d,0x00000006,0x0000005f,0x00000044,0x000500ae,0x00000035,0x00000060,0x0000005e,
+	0x0000005f,0x000300f7,0x00000062,0x00000000,0x000400fa,0x00000060,0x00000061,0x00000062,
+	0x000200f8,0x00000061,0x0004003d,0x00000006,0x00000065,0x0000004b,0x0003003e,0x00000064,
+	0x00000065,0x00050039,0x00000006,0x00000066,0x0000000a,0x00000064,0x0003003e,0x00000063,
+	0x00000066,0x0004003d,0x00000006,0x00000068,0x00000063,0x0003003e,0x00000067,0x00000068,
+	0x0003003e,0x00000069,0x00000045,0x0004003d,0x00000006,0x0000006b,0x0000005d,0x0003003e,
+	0x0000006a,0x0000006b,0x00070039,0x00000002,0x0000006c,0x00000010,0x00000067,0x00000069,
+	0x0000006a,0x0004003d,0x00000006,0x0000006d,0x0000006a,0x0003003e,0x0000005d,0x0000006d,
+	0x000200f9,0x00000062,0x000200f8,0x00000062,0x0004003d,0x00000006,0x0000006e,0x0000004b,
+	0x00050080,0x00000006,0x00000070,0x0000006e,0x0000006f,0x0004003d,0x00000006,0x00000071,
+	0x00000046,0x000500b0,0x00000035,0x00000072,0x00000070,0x00000071,0x000300f7,0x00000074,
+	0x00000000,0x000400fa,0x00000072,0x00000073,0x00000074,0x000200f8,0x00000073,0x0004003d,
+	0x00000006,0x00000076,0x0000004b,0x00050080,0x00000006,0x00000077,0x00000076,0x0000006f,
+	0x0003003e,0x00000078,0x00000077,0x00050039,0x00000006,0x00000079,0x0000000a,0x00000078,
+	0x0003003e,0x00000075,0x00000079,0x0004003d,0x00000006,0x0000007b,0x00000075,0x0003003e,
+	0x0000007a,0x0000007b,0x0003003e,0x0000007c,0x0000006f,0x0004003d,0x00000006,0x0000007e,
+	0x0000005d,0x0003003e,0x0000007d,0x0000007e,0x00070039,0x00000002,0x0000007f,0x00000010,
+	0x0000007a,0x0000007c,0x0000007d,0x0004003d,0x00000006,0x00000080,0x0000007d,0x0003003e,
+	0x0000005d,0x00000080,0x000200f9,0x00000074,0x000200f8,0x00000074,0x00050041,0x00000019,
+	0x00000085,0x00000016,0x00000053,0x0004003d,0x00000006,0x00000086,0x00000085,0x00050041,
+	0x0000004f,0x00000087,0x0000004e,0x00000045,0x0004003d,0x00000006,0x00000088,0x00000087,
+	0x00050080,0x00000006,0x00000089,0x00000086,0x00000088,0x0004003d,0x00000006,0x0000008a,
+	0x0000005d,0x00060041,0x00000025,0x0000008b,0x00000084,0x00000018,0x00000089,0x0003003e,
+	0x0000008b,0x0000008a,0x000100fd,0x00010038,0x00050036,0x00000006,0x0000000a,0x00000000,
 	0x00000008,0x00030037,0x00000007,0x00000009,0x000200f8,0x0000000b,0x0004003b,0x00000007,
 	0x00000012,0x00000007,0x0004003b,0x00000007,0x0000001d,0x00000007,0x0004003b,0x00000007,
 	0x00000028,0x00000007,0x0004003b,0x00000007,0x0000002c,0x00000007,0x0004003d,0x00000006,
@@ -146,7 +155,9 @@
 //
 // uint PullIndex(uint index)
 // {
+//
 //     uint srcIndex = index + srcOffset;
+//
 //     uint srcBlock = srcData[srcIndex >> 2];
 //     uint srcComponent =(srcIndex & 3);
 //
@@ -167,17 +178,23 @@
 // void main()
 // {
 //
-//     uint index =(gl_GlobalInvocationID . x << 1);
+//     uint firstIndex = 0;
+//     uint endIndex = firstIndex + maxIndex;
 //
-//     if(index >= maxIndex)
+//     uint index =((gl_GlobalInvocationID . x +(firstIndex >> 1))<< 1);
+//
+//     if(index >= endIndex)
 //         return;
 //
 //     uint dstValue = 0;
 //
-//     uint srcValue = PullIndex(index);
-//     PackIndexValue(srcValue, 0, dstValue);
+//     if(index >= firstIndex)
+//     {
+//         uint srcValue = PullIndex(index);
+//         PackIndexValue(srcValue, 0, dstValue);
+//     }
 //
-//     if(index + 1 < maxIndex)
+//     if(index + 1 < endIndex)
 //     {
 //         uint srcValue = PullIndex(index + 1);
 //         PackIndexValue(srcValue, 1, dstValue);
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000008.inc b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000008.inc
index 22bd867..6949cdc 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000008.inc
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000008.inc
@@ -77,137 +77,138 @@
 	0x00000006,0x0004002b,0x00000006,0x00000076,0x00000020,0x00040020,0x00000078,0x00000007,
 	0x00000028,0x0004002b,0x00000028,0x0000007c,0xffffffff,0x0004002b,0x00000028,0x0000007e,
 	0x00000001,0x00040020,0x0000008e,0x00000007,0x00000052,0x0004002b,0x00000006,0x00000092,
-	0x00000001,0x0004002b,0x00000006,0x00000097,0x00000000,0x0004002b,0x00000011,0x000000aa,
-	0x40000000,0x0004002b,0x00000011,0x000000ae,0x3f800000,0x0003001d,0x000000c0,0x00000006,
-	0x0003001e,0x000000c1,0x000000c0,0x00040020,0x000000c2,0x00000002,0x000000c1,0x0004003b,
-	0x000000c2,0x000000c3,0x00000002,0x00040017,0x000000c4,0x00000006,0x00000003,0x00040020,
-	0x000000c5,0x00000001,0x000000c4,0x0004003b,0x000000c5,0x000000c6,0x00000001,0x00040020,
-	0x000000c7,0x00000001,0x00000006,0x0004002b,0x00000028,0x000000ca,0x00000003,0x0004002b,
-	0x00000006,0x00000103,0x00000040,0x0006002c,0x000000c4,0x00000104,0x00000103,0x00000092,
-	0x00000092,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,
-	0x0004003b,0x00000007,0x000000d9,0x00000007,0x0004003b,0x00000007,0x000000da,0x00000007,
-	0x0004003b,0x00000007,0x000000e2,0x00000007,0x0004003b,0x00000016,0x000000ef,0x00000007,
-	0x0004003b,0x00000007,0x000000f0,0x00000007,0x0004003b,0x00000016,0x000000f3,0x00000007,
-	0x0004003b,0x00000016,0x000000f4,0x00000007,0x0004003b,0x00000007,0x000000f7,0x00000007,
-	0x0004003b,0x00000016,0x000000f9,0x00000007,0x0004003b,0x00000007,0x00000100,0x00000007,
-	0x00050041,0x000000c7,0x000000d1,0x000000c6,0x00000097,0x0004003d,0x00000006,0x000000d2,
-	0x000000d1,0x00050041,0x0000002a,0x000000d3,0x00000027,0x00000063,0x0004003d,0x00000006,
-	0x000000d4,0x000000d3,0x000500ae,0x00000052,0x000000d5,0x000000d2,0x000000d4,0x000300f7,
-	0x000000d7,0x00000000,0x000400fa,0x000000d5,0x000000d6,0x000000d7,0x000200f8,0x000000d6,
-	0x000100fd,0x000200f8,0x000000d7,0x0003003e,0x000000d9,0x00000097,0x0003003e,0x000000da,
-	0x00000097,0x000200f9,0x000000db,0x000200f8,0x000000db,0x000400f6,0x000000dd,0x000000de,
-	0x00000000,0x000200f9,0x000000df,0x000200f8,0x000000df,0x0004003d,0x00000006,0x000000e0,
-	0x000000da,0x000500b0,0x00000052,0x000000e1,0x000000e0,0x00000092,0x000400fa,0x000000e1,
-	0x000000dc,0x000000dd,0x000200f8,0x000000dc,0x00050041,0x000000c7,0x000000e3,0x000000c6,
-	0x00000097,0x0004003d,0x00000006,0x000000e4,0x000000e3,0x00050084,0x00000006,0x000000e5,
-	0x000000e4,0x00000092,0x0004003d,0x00000006,0x000000e6,0x000000da,0x00050080,0x00000006,
-	0x000000e7,0x000000e5,0x000000e6,0x0003003e,0x000000e2,0x000000e7,0x0004003d,0x00000006,
-	0x000000e8,0x000000e2,0x00050041,0x0000002a,0x000000e9,0x00000027,0x0000007e,0x0004003d,
-	0x00000006,0x000000ea,0x000000e9,0x000500ae,0x00000052,0x000000eb,0x000000e8,0x000000ea,
-	0x000300f7,0x000000ed,0x00000000,0x000400fa,0x000000eb,0x000000ec,0x000000ed,0x000200f8,
-	0x000000ec,0x000200f9,0x000000dd,0x000200f8,0x000000ed,0x0004003d,0x00000006,0x000000f1,
-	0x000000e2,0x0003003e,0x000000f0,0x000000f1,0x00050039,0x00000011,0x000000f2,0x00000014,
-	0x000000f0,0x0003003e,0x000000ef,0x000000f2,0x0004003d,0x00000011,0x000000f5,0x000000ef,
-	0x0003003e,0x000000f4,0x000000f5,0x00050039,0x00000011,0x000000f6,0x00000019,0x000000f4,
-	0x0003003e,0x000000f3,0x000000f6,0x0004003d,0x00000006,0x000000f8,0x000000e2,0x0003003e,
-	0x000000f7,0x000000f8,0x0004003d,0x00000011,0x000000fa,0x000000f3,0x0003003e,0x000000f9,
-	0x000000fa,0x00060039,0x00000006,0x000000fb,0x0000001e,0x000000f7,0x000000f9,0x0004003d,
-	0x00000006,0x000000fc,0x000000d9,0x000500c5,0x00000006,0x000000fd,0x000000fc,0x000000fb,
-	0x0003003e,0x000000d9,0x000000fd,0x000200f9,0x000000de,0x000200f8,0x000000de,0x0004003d,
-	0x00000006,0x000000fe,0x000000da,0x00050080,0x00000006,0x000000ff,0x000000fe,0x0000007e,
-	0x0003003e,0x000000da,0x000000ff,0x000200f9,0x000000db,0x000200f8,0x000000dd,0x0004003d,
-	0x00000006,0x00000101,0x000000d9,0x0003003e,0x00000100,0x00000101,0x00050039,0x00000002,
-	0x00000102,0x00000022,0x00000100,0x000100fd,0x00010038,0x00050036,0x00000006,0x0000000b,
-	0x00000000,0x00000008,0x00030037,0x00000007,0x00000009,0x00030037,0x00000007,0x0000000a,
-	0x000200f8,0x0000000c,0x0004003d,0x00000006,0x00000024,0x00000009,0x00050041,0x0000002a,
-	0x0000002b,0x00000027,0x00000029,0x0004003d,0x00000006,0x0000002c,0x0000002b,0x00050084,
-	0x00000006,0x0000002d,0x00000024,0x0000002c,0x0004003d,0x00000006,0x0000002e,0x0000000a,
-	0x00050041,0x0000002a,0x00000030,0x00000027,0x0000002f,0x0004003d,0x00000006,0x00000031,
-	0x00000030,0x00050084,0x00000006,0x00000032,0x0000002e,0x00000031,0x00050080,0x00000006,
-	0x00000033,0x0000002d,0x00000032,0x00050041,0x0000002a,0x00000035,0x00000027,0x00000034,
-	0x0004003d,0x00000006,0x00000036,0x00000035,0x00050080,0x00000006,0x00000037,0x00000033,
-	0x00000036,0x000200fe,0x00000037,0x00010038,0x00050036,0x00000006,0x0000000f,0x00000000,
-	0x00000008,0x00030037,0x00000007,0x0000000d,0x00030037,0x00000007,0x0000000e,0x000200f8,
-	0x00000010,0x0004003b,0x00000007,0x0000003a,0x00000007,0x0004003d,0x00000006,0x0000003b,
-	0x0000000d,0x00050089,0x00000006,0x0000003d,0x0000003b,0x0000003c,0x00050084,0x00000006,
-	0x0000003f,0x0000003d,0x0000003e,0x0003003e,0x0000003a,0x0000003f,0x0004003d,0x00000006,
-	0x00000040,0x0000003a,0x000200fe,0x00000040,0x00010038,0x00050036,0x00000011,0x00000014,
-	0x00000000,0x00000012,0x00030037,0x00000007,0x00000013,0x000200f8,0x00000015,0x0004003b,
-	0x00000007,0x00000043,0x00000007,0x0004003b,0x00000007,0x00000049,0x00000007,0x0004003b,
-	0x00000007,0x00000058,0x00000007,0x0004003b,0x00000007,0x00000059,0x00000007,0x0004003b,
-	0x00000007,0x0000005b,0x00000007,0x0004003b,0x00000007,0x0000005e,0x00000007,0x0004003b,
-	0x00000007,0x00000069,0x00000007,0x0004003b,0x00000007,0x0000006a,0x00000007,0x0004003b,
-	0x00000007,0x0000006c,0x00000007,0x0004003b,0x00000007,0x00000070,0x00000007,0x0004003b,
-	0x00000007,0x00000074,0x00000007,0x0004003b,0x00000078,0x00000079,0x00000007,0x0004003b,
-	0x00000007,0x00000084,0x00000007,0x0004003b,0x0000008e,0x0000008f,0x00000007,0x0004003b,
-	0x00000007,0x00000099,0x00000007,0x0004003b,0x00000078,0x0000009b,0x00000007,0x0004003b,
-	0x00000078,0x000000a6,0x00000007,0x0004003b,0x00000016,0x000000a9,0x00000007,0x0004003d,
-	0x00000006,0x00000044,0x00000013,0x00050041,0x0000002a,0x00000046,0x00000027,0x00000045,
-	0x0004003d,0x00000006,0x00000047,0x00000046,0x00050086,0x00000006,0x00000048,0x00000044,
-	0x00000047,0x0003003e,0x00000043,0x00000048,0x0004003d,0x00000006,0x0000004a,0x00000013,
-	0x00050041,0x0000002a,0x0000004b,0x00000027,0x00000045,0x0004003d,0x00000006,0x0000004c,
-	0x0000004b,0x00050089,0x00000006,0x0000004d,0x0000004a,0x0000004c,0x0003003e,0x00000049,
-	0x0000004d,0x0004003d,0x00000006,0x0000004e,0x00000049,0x00050041,0x0000002a,0x00000050,
-	0x00000027,0x0000004f,0x0004003d,0x00000006,0x00000051,0x00000050,0x000500ae,0x00000052,
-	0x00000053,0x0000004e,0x00000051,0x000300f7,0x00000055,0x00000000,0x000400fa,0x00000053,
-	0x00000054,0x00000055,0x000200f8,0x00000054,0x000200fe,0x00000056,0x000200f8,0x00000055,
-	0x0004003d,0x00000006,0x0000005a,0x00000043,0x0003003e,0x00000059,0x0000005a,0x0004003d,
-	0x00000006,0x0000005c,0x00000049,0x0003003e,0x0000005b,0x0000005c,0x00060039,0x00000006,
-	0x0000005d,0x0000000b,0x00000059,0x0000005b,0x0003003e,0x00000058,0x0000005d,0x0004003d,
-	0x00000006,0x00000064,0x00000058,0x00050086,0x00000006,0x00000065,0x00000064,0x0000003c,
-	0x00060041,0x00000066,0x00000067,0x00000062,0x00000063,0x00000065,0x0004003d,0x00000006,
-	0x00000068,0x00000067,0x0003003e,0x0000005e,0x00000068,0x0004003d,0x00000006,0x0000006b,
-	0x00000058,0x0003003e,0x0000006a,0x0000006b,0x00050041,0x0000002a,0x0000006d,0x00000027,
-	0x0000002f,0x0004003d,0x00000006,0x0000006e,0x0000006d,0x0003003e,0x0000006c,0x0000006e,
-	0x00060039,0x00000006,0x0000006f,0x0000000f,0x0000006a,0x0000006c,0x0003003e,0x00000069,
-	0x0000006f,0x00050041,0x0000002a,0x00000071,0x00000027,0x0000002f,0x0004003d,0x00000006,
-	0x00000072,0x00000071,0x00050084,0x00000006,0x00000073,0x00000072,0x0000003e,0x0003003e,
-	0x00000070,0x00000073,0x0004003d,0x00000006,0x00000075,0x00000070,0x000500aa,0x00000052,
-	0x00000077,0x00000075,0x00000076,0x000300f7,0x0000007b,0x00000000,0x000400fa,0x00000077,
-	0x0000007a,0x0000007d,0x000200f8,0x0000007a,0x0003003e,0x00000079,0x0000007c,0x000200f9,
-	0x0000007b,0x000200f8,0x0000007d,0x0004003d,0x00000006,0x0000007f,0x00000070,0x000500c4,
-	0x00000028,0x00000080,0x0000007e,0x0000007f,0x00050082,0x00000028,0x00000081,0x00000080,
-	0x0000007e,0x0003003e,0x00000079,0x00000081,0x000200f9,0x0000007b,0x000200f8,0x0000007b,
-	0x0004003d,0x00000028,0x00000082,0x00000079,0x0004007c,0x00000006,0x00000083,0x00000082,
-	0x0003003e,0x00000074,0x00000083,0x0004003d,0x00000006,0x00000085,0x0000005e,0x0004003d,
-	0x00000006,0x00000086,0x00000069,0x000500c2,0x00000006,0x00000087,0x00000085,0x00000086,
-	0x0004003d,0x00000006,0x00000088,0x00000074,0x000500c7,0x00000006,0x00000089,0x00000087,
-	0x00000088,0x0003003e,0x00000084,0x00000089,0x0004003d,0x00000006,0x0000008a,0x00000070,
-	0x000500b0,0x00000052,0x0000008b,0x0000008a,0x00000076,0x000300f7,0x0000008d,0x00000000,
-	0x000400fa,0x0000008b,0x0000008c,0x0000008d,0x000200f8,0x0000008c,0x0004003d,0x00000006,
-	0x00000090,0x00000084,0x0004003d,0x00000006,0x00000091,0x00000070,0x00050082,0x00000006,
-	0x00000093,0x00000091,0x00000092,0x000500c4,0x00000028,0x00000094,0x0000007e,0x00000093,
-	0x0004007c,0x00000006,0x00000095,0x00000094,0x000500c7,0x00000006,0x00000096,0x00000090,
-	0x00000095,0x000500ab,0x00000052,0x00000098,0x00000096,0x00000097,0x0003003e,0x0000008f,
-	0x00000098,0x0004003d,0x00000052,0x0000009a,0x0000008f,0x000300f7,0x0000009d,0x00000000,
-	0x000400fa,0x0000009a,0x0000009c,0x000000a0,0x000200f8,0x0000009c,0x0004003d,0x00000006,
-	0x0000009e,0x00000070,0x000500c4,0x00000028,0x0000009f,0x0000007c,0x0000009e,0x0003003e,
-	0x0000009b,0x0000009f,0x000200f9,0x0000009d,0x000200f8,0x000000a0,0x0003003e,0x0000009b,
-	0x00000063,0x000200f9,0x0000009d,0x000200f8,0x0000009d,0x0004003d,0x00000028,0x000000a1,
-	0x0000009b,0x0004007c,0x00000006,0x000000a2,0x000000a1,0x0003003e,0x00000099,0x000000a2,
-	0x0004003d,0x00000006,0x000000a3,0x00000099,0x0004003d,0x00000006,0x000000a4,0x00000084,
-	0x000500c5,0x00000006,0x000000a5,0x000000a4,0x000000a3,0x0003003e,0x00000084,0x000000a5,
-	0x000200f9,0x0000008d,0x000200f8,0x0000008d,0x0004003d,0x00000006,0x000000a7,0x00000084,
-	0x0004007c,0x00000028,0x000000a8,0x000000a7,0x0003003e,0x000000a6,0x000000a8,0x0004003d,
-	0x00000028,0x000000ab,0x000000a6,0x0004006f,0x00000011,0x000000ac,0x000000ab,0x00050085,
-	0x00000011,0x000000ad,0x000000aa,0x000000ac,0x00050081,0x00000011,0x000000af,0x000000ad,
-	0x000000ae,0x0004003d,0x00000006,0x000000b0,0x00000074,0x00040070,0x00000011,0x000000b1,
-	0x000000b0,0x00050088,0x00000011,0x000000b2,0x000000af,0x000000b1,0x0003003e,0x000000a9,
-	0x000000b2,0x0004003d,0x00000011,0x000000b3,0x000000a9,0x000200fe,0x000000b3,0x00010038,
-	0x00050036,0x00000011,0x00000019,0x00000000,0x00000017,0x00030037,0x00000016,0x00000018,
-	0x000200f8,0x0000001a,0x0004003d,0x00000011,0x000000b6,0x00000018,0x000200fe,0x000000b6,
-	0x00010038,0x00050036,0x00000006,0x0000001e,0x00000000,0x0000001b,0x00030037,0x00000007,
-	0x0000001c,0x00030037,0x00000016,0x0000001d,0x000200f8,0x0000001f,0x0004003b,0x00000007,
-	0x000000b9,0x00000007,0x0004003d,0x00000011,0x000000ba,0x0000001d,0x0004007c,0x00000028,
-	0x000000bb,0x000000ba,0x0004007c,0x00000006,0x000000bc,0x000000bb,0x0003003e,0x000000b9,
-	0x000000bc,0x0004003d,0x00000006,0x000000bd,0x000000b9,0x000200fe,0x000000bd,0x00010038,
-	0x00050036,0x00000002,0x00000022,0x00000000,0x00000020,0x00030037,0x00000007,0x00000021,
-	0x000200f8,0x00000023,0x00050041,0x000000c7,0x000000c8,0x000000c6,0x00000097,0x0004003d,
-	0x00000006,0x000000c9,0x000000c8,0x00050041,0x0000002a,0x000000cb,0x00000027,0x000000ca,
-	0x0004003d,0x00000006,0x000000cc,0x000000cb,0x00050086,0x00000006,0x000000cd,0x000000cc,
-	0x0000003c,0x00050080,0x00000006,0x000000ce,0x000000c9,0x000000cd,0x0004003d,0x00000006,
-	0x000000cf,0x00000021,0x00060041,0x00000066,0x000000d0,0x000000c3,0x00000063,0x000000ce,
-	0x0003003e,0x000000d0,0x000000cf,0x000100fd,0x00010038
+	0x00000001,0x0004002b,0x00000006,0x00000097,0x00000000,0x0004002b,0x00000011,0x000000b1,
+	0xbf800000,0x0003001d,0x000000c0,0x00000006,0x0003001e,0x000000c1,0x000000c0,0x00040020,
+	0x000000c2,0x00000002,0x000000c1,0x0004003b,0x000000c2,0x000000c3,0x00000002,0x00040017,
+	0x000000c4,0x00000006,0x00000003,0x00040020,0x000000c5,0x00000001,0x000000c4,0x0004003b,
+	0x000000c5,0x000000c6,0x00000001,0x00040020,0x000000c7,0x00000001,0x00000006,0x0004002b,
+	0x00000028,0x000000ca,0x00000003,0x0004002b,0x00000006,0x00000103,0x00000040,0x0006002c,
+	0x000000c4,0x00000104,0x00000103,0x00000092,0x00000092,0x00050036,0x00000002,0x00000004,
+	0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000007,0x000000d9,0x00000007,
+	0x0004003b,0x00000007,0x000000da,0x00000007,0x0004003b,0x00000007,0x000000e2,0x00000007,
+	0x0004003b,0x00000016,0x000000ef,0x00000007,0x0004003b,0x00000007,0x000000f0,0x00000007,
+	0x0004003b,0x00000016,0x000000f3,0x00000007,0x0004003b,0x00000016,0x000000f4,0x00000007,
+	0x0004003b,0x00000007,0x000000f7,0x00000007,0x0004003b,0x00000016,0x000000f9,0x00000007,
+	0x0004003b,0x00000007,0x00000100,0x00000007,0x00050041,0x000000c7,0x000000d1,0x000000c6,
+	0x00000097,0x0004003d,0x00000006,0x000000d2,0x000000d1,0x00050041,0x0000002a,0x000000d3,
+	0x00000027,0x00000063,0x0004003d,0x00000006,0x000000d4,0x000000d3,0x000500ae,0x00000052,
+	0x000000d5,0x000000d2,0x000000d4,0x000300f7,0x000000d7,0x00000000,0x000400fa,0x000000d5,
+	0x000000d6,0x000000d7,0x000200f8,0x000000d6,0x000100fd,0x000200f8,0x000000d7,0x0003003e,
+	0x000000d9,0x00000097,0x0003003e,0x000000da,0x00000097,0x000200f9,0x000000db,0x000200f8,
+	0x000000db,0x000400f6,0x000000dd,0x000000de,0x00000000,0x000200f9,0x000000df,0x000200f8,
+	0x000000df,0x0004003d,0x00000006,0x000000e0,0x000000da,0x000500b0,0x00000052,0x000000e1,
+	0x000000e0,0x00000092,0x000400fa,0x000000e1,0x000000dc,0x000000dd,0x000200f8,0x000000dc,
+	0x00050041,0x000000c7,0x000000e3,0x000000c6,0x00000097,0x0004003d,0x00000006,0x000000e4,
+	0x000000e3,0x00050084,0x00000006,0x000000e5,0x000000e4,0x00000092,0x0004003d,0x00000006,
+	0x000000e6,0x000000da,0x00050080,0x00000006,0x000000e7,0x000000e5,0x000000e6,0x0003003e,
+	0x000000e2,0x000000e7,0x0004003d,0x00000006,0x000000e8,0x000000e2,0x00050041,0x0000002a,
+	0x000000e9,0x00000027,0x0000007e,0x0004003d,0x00000006,0x000000ea,0x000000e9,0x000500ae,
+	0x00000052,0x000000eb,0x000000e8,0x000000ea,0x000300f7,0x000000ed,0x00000000,0x000400fa,
+	0x000000eb,0x000000ec,0x000000ed,0x000200f8,0x000000ec,0x000200f9,0x000000dd,0x000200f8,
+	0x000000ed,0x0004003d,0x00000006,0x000000f1,0x000000e2,0x0003003e,0x000000f0,0x000000f1,
+	0x00050039,0x00000011,0x000000f2,0x00000014,0x000000f0,0x0003003e,0x000000ef,0x000000f2,
+	0x0004003d,0x00000011,0x000000f5,0x000000ef,0x0003003e,0x000000f4,0x000000f5,0x00050039,
+	0x00000011,0x000000f6,0x00000019,0x000000f4,0x0003003e,0x000000f3,0x000000f6,0x0004003d,
+	0x00000006,0x000000f8,0x000000e2,0x0003003e,0x000000f7,0x000000f8,0x0004003d,0x00000011,
+	0x000000fa,0x000000f3,0x0003003e,0x000000f9,0x000000fa,0x00060039,0x00000006,0x000000fb,
+	0x0000001e,0x000000f7,0x000000f9,0x0004003d,0x00000006,0x000000fc,0x000000d9,0x000500c5,
+	0x00000006,0x000000fd,0x000000fc,0x000000fb,0x0003003e,0x000000d9,0x000000fd,0x000200f9,
+	0x000000de,0x000200f8,0x000000de,0x0004003d,0x00000006,0x000000fe,0x000000da,0x00050080,
+	0x00000006,0x000000ff,0x000000fe,0x0000007e,0x0003003e,0x000000da,0x000000ff,0x000200f9,
+	0x000000db,0x000200f8,0x000000dd,0x0004003d,0x00000006,0x00000101,0x000000d9,0x0003003e,
+	0x00000100,0x00000101,0x00050039,0x00000002,0x00000102,0x00000022,0x00000100,0x000100fd,
+	0x00010038,0x00050036,0x00000006,0x0000000b,0x00000000,0x00000008,0x00030037,0x00000007,
+	0x00000009,0x00030037,0x00000007,0x0000000a,0x000200f8,0x0000000c,0x0004003d,0x00000006,
+	0x00000024,0x00000009,0x00050041,0x0000002a,0x0000002b,0x00000027,0x00000029,0x0004003d,
+	0x00000006,0x0000002c,0x0000002b,0x00050084,0x00000006,0x0000002d,0x00000024,0x0000002c,
+	0x0004003d,0x00000006,0x0000002e,0x0000000a,0x00050041,0x0000002a,0x00000030,0x00000027,
+	0x0000002f,0x0004003d,0x00000006,0x00000031,0x00000030,0x00050084,0x00000006,0x00000032,
+	0x0000002e,0x00000031,0x00050080,0x00000006,0x00000033,0x0000002d,0x00000032,0x00050041,
+	0x0000002a,0x00000035,0x00000027,0x00000034,0x0004003d,0x00000006,0x00000036,0x00000035,
+	0x00050080,0x00000006,0x00000037,0x00000033,0x00000036,0x000200fe,0x00000037,0x00010038,
+	0x00050036,0x00000006,0x0000000f,0x00000000,0x00000008,0x00030037,0x00000007,0x0000000d,
+	0x00030037,0x00000007,0x0000000e,0x000200f8,0x00000010,0x0004003b,0x00000007,0x0000003a,
+	0x00000007,0x0004003d,0x00000006,0x0000003b,0x0000000d,0x00050089,0x00000006,0x0000003d,
+	0x0000003b,0x0000003c,0x00050084,0x00000006,0x0000003f,0x0000003d,0x0000003e,0x0003003e,
+	0x0000003a,0x0000003f,0x0004003d,0x00000006,0x00000040,0x0000003a,0x000200fe,0x00000040,
+	0x00010038,0x00050036,0x00000011,0x00000014,0x00000000,0x00000012,0x00030037,0x00000007,
+	0x00000013,0x000200f8,0x00000015,0x0004003b,0x00000007,0x00000043,0x00000007,0x0004003b,
+	0x00000007,0x00000049,0x00000007,0x0004003b,0x00000007,0x00000058,0x00000007,0x0004003b,
+	0x00000007,0x00000059,0x00000007,0x0004003b,0x00000007,0x0000005b,0x00000007,0x0004003b,
+	0x00000007,0x0000005e,0x00000007,0x0004003b,0x00000007,0x00000069,0x00000007,0x0004003b,
+	0x00000007,0x0000006a,0x00000007,0x0004003b,0x00000007,0x0000006c,0x00000007,0x0004003b,
+	0x00000007,0x00000070,0x00000007,0x0004003b,0x00000007,0x00000074,0x00000007,0x0004003b,
+	0x00000078,0x00000079,0x00000007,0x0004003b,0x00000007,0x00000084,0x00000007,0x0004003b,
+	0x0000008e,0x0000008f,0x00000007,0x0004003b,0x00000007,0x00000099,0x00000007,0x0004003b,
+	0x00000078,0x0000009b,0x00000007,0x0004003b,0x00000078,0x000000a6,0x00000007,0x0004003b,
+	0x00000016,0x000000a9,0x00000007,0x0004003d,0x00000006,0x00000044,0x00000013,0x00050041,
+	0x0000002a,0x00000046,0x00000027,0x00000045,0x0004003d,0x00000006,0x00000047,0x00000046,
+	0x00050086,0x00000006,0x00000048,0x00000044,0x00000047,0x0003003e,0x00000043,0x00000048,
+	0x0004003d,0x00000006,0x0000004a,0x00000013,0x00050041,0x0000002a,0x0000004b,0x00000027,
+	0x00000045,0x0004003d,0x00000006,0x0000004c,0x0000004b,0x00050089,0x00000006,0x0000004d,
+	0x0000004a,0x0000004c,0x0003003e,0x00000049,0x0000004d,0x0004003d,0x00000006,0x0000004e,
+	0x00000049,0x00050041,0x0000002a,0x00000050,0x00000027,0x0000004f,0x0004003d,0x00000006,
+	0x00000051,0x00000050,0x000500ae,0x00000052,0x00000053,0x0000004e,0x00000051,0x000300f7,
+	0x00000055,0x00000000,0x000400fa,0x00000053,0x00000054,0x00000055,0x000200f8,0x00000054,
+	0x000200fe,0x00000056,0x000200f8,0x00000055,0x0004003d,0x00000006,0x0000005a,0x00000043,
+	0x0003003e,0x00000059,0x0000005a,0x0004003d,0x00000006,0x0000005c,0x00000049,0x0003003e,
+	0x0000005b,0x0000005c,0x00060039,0x00000006,0x0000005d,0x0000000b,0x00000059,0x0000005b,
+	0x0003003e,0x00000058,0x0000005d,0x0004003d,0x00000006,0x00000064,0x00000058,0x00050086,
+	0x00000006,0x00000065,0x00000064,0x0000003c,0x00060041,0x00000066,0x00000067,0x00000062,
+	0x00000063,0x00000065,0x0004003d,0x00000006,0x00000068,0x00000067,0x0003003e,0x0000005e,
+	0x00000068,0x0004003d,0x00000006,0x0000006b,0x00000058,0x0003003e,0x0000006a,0x0000006b,
+	0x00050041,0x0000002a,0x0000006d,0x00000027,0x0000002f,0x0004003d,0x00000006,0x0000006e,
+	0x0000006d,0x0003003e,0x0000006c,0x0000006e,0x00060039,0x00000006,0x0000006f,0x0000000f,
+	0x0000006a,0x0000006c,0x0003003e,0x00000069,0x0000006f,0x00050041,0x0000002a,0x00000071,
+	0x00000027,0x0000002f,0x0004003d,0x00000006,0x00000072,0x00000071,0x00050084,0x00000006,
+	0x00000073,0x00000072,0x0000003e,0x0003003e,0x00000070,0x00000073,0x0004003d,0x00000006,
+	0x00000075,0x00000070,0x000500aa,0x00000052,0x00000077,0x00000075,0x00000076,0x000300f7,
+	0x0000007b,0x00000000,0x000400fa,0x00000077,0x0000007a,0x0000007d,0x000200f8,0x0000007a,
+	0x0003003e,0x00000079,0x0000007c,0x000200f9,0x0000007b,0x000200f8,0x0000007d,0x0004003d,
+	0x00000006,0x0000007f,0x00000070,0x000500c4,0x00000028,0x00000080,0x0000007e,0x0000007f,
+	0x00050082,0x00000028,0x00000081,0x00000080,0x0000007e,0x0003003e,0x00000079,0x00000081,
+	0x000200f9,0x0000007b,0x000200f8,0x0000007b,0x0004003d,0x00000028,0x00000082,0x00000079,
+	0x0004007c,0x00000006,0x00000083,0x00000082,0x0003003e,0x00000074,0x00000083,0x0004003d,
+	0x00000006,0x00000085,0x0000005e,0x0004003d,0x00000006,0x00000086,0x00000069,0x000500c2,
+	0x00000006,0x00000087,0x00000085,0x00000086,0x0004003d,0x00000006,0x00000088,0x00000074,
+	0x000500c7,0x00000006,0x00000089,0x00000087,0x00000088,0x0003003e,0x00000084,0x00000089,
+	0x0004003d,0x00000006,0x0000008a,0x00000070,0x000500b0,0x00000052,0x0000008b,0x0000008a,
+	0x00000076,0x000300f7,0x0000008d,0x00000000,0x000400fa,0x0000008b,0x0000008c,0x0000008d,
+	0x000200f8,0x0000008c,0x0004003d,0x00000006,0x00000090,0x00000084,0x0004003d,0x00000006,
+	0x00000091,0x00000070,0x00050082,0x00000006,0x00000093,0x00000091,0x00000092,0x000500c4,
+	0x00000028,0x00000094,0x0000007e,0x00000093,0x0004007c,0x00000006,0x00000095,0x00000094,
+	0x000500c7,0x00000006,0x00000096,0x00000090,0x00000095,0x000500ab,0x00000052,0x00000098,
+	0x00000096,0x00000097,0x0003003e,0x0000008f,0x00000098,0x0004003d,0x00000052,0x0000009a,
+	0x0000008f,0x000300f7,0x0000009d,0x00000000,0x000400fa,0x0000009a,0x0000009c,0x000000a0,
+	0x000200f8,0x0000009c,0x0004003d,0x00000006,0x0000009e,0x00000070,0x000500c4,0x00000028,
+	0x0000009f,0x0000007c,0x0000009e,0x0003003e,0x0000009b,0x0000009f,0x000200f9,0x0000009d,
+	0x000200f8,0x000000a0,0x0003003e,0x0000009b,0x00000063,0x000200f9,0x0000009d,0x000200f8,
+	0x0000009d,0x0004003d,0x00000028,0x000000a1,0x0000009b,0x0004007c,0x00000006,0x000000a2,
+	0x000000a1,0x0003003e,0x00000099,0x000000a2,0x0004003d,0x00000006,0x000000a3,0x00000099,
+	0x0004003d,0x00000006,0x000000a4,0x00000084,0x000500c5,0x00000006,0x000000a5,0x000000a4,
+	0x000000a3,0x0003003e,0x00000084,0x000000a5,0x000200f9,0x0000008d,0x000200f8,0x0000008d,
+	0x0004003d,0x00000006,0x000000a7,0x00000084,0x0004007c,0x00000028,0x000000a8,0x000000a7,
+	0x0003003e,0x000000a6,0x000000a8,0x0004003d,0x00000028,0x000000aa,0x000000a6,0x0004006f,
+	0x00000011,0x000000ab,0x000000aa,0x0004003d,0x00000006,0x000000ac,0x00000074,0x000500c2,
+	0x00000006,0x000000ad,0x000000ac,0x0000007e,0x00040070,0x00000011,0x000000ae,0x000000ad,
+	0x00050088,0x00000011,0x000000af,0x000000ab,0x000000ae,0x0003003e,0x000000a9,0x000000af,
+	0x0004003d,0x00000011,0x000000b0,0x000000a9,0x0007000c,0x00000011,0x000000b2,0x00000001,
+	0x00000028,0x000000b0,0x000000b1,0x0003003e,0x000000a9,0x000000b2,0x0004003d,0x00000011,
+	0x000000b3,0x000000a9,0x000200fe,0x000000b3,0x00010038,0x00050036,0x00000011,0x00000019,
+	0x00000000,0x00000017,0x00030037,0x00000016,0x00000018,0x000200f8,0x0000001a,0x0004003d,
+	0x00000011,0x000000b6,0x00000018,0x000200fe,0x000000b6,0x00010038,0x00050036,0x00000006,
+	0x0000001e,0x00000000,0x0000001b,0x00030037,0x00000007,0x0000001c,0x00030037,0x00000016,
+	0x0000001d,0x000200f8,0x0000001f,0x0004003b,0x00000007,0x000000b9,0x00000007,0x0004003d,
+	0x00000011,0x000000ba,0x0000001d,0x0004007c,0x00000028,0x000000bb,0x000000ba,0x0004007c,
+	0x00000006,0x000000bc,0x000000bb,0x0003003e,0x000000b9,0x000000bc,0x0004003d,0x00000006,
+	0x000000bd,0x000000b9,0x000200fe,0x000000bd,0x00010038,0x00050036,0x00000002,0x00000022,
+	0x00000000,0x00000020,0x00030037,0x00000007,0x00000021,0x000200f8,0x00000023,0x00050041,
+	0x000000c7,0x000000c8,0x000000c6,0x00000097,0x0004003d,0x00000006,0x000000c9,0x000000c8,
+	0x00050041,0x0000002a,0x000000cb,0x00000027,0x000000ca,0x0004003d,0x00000006,0x000000cc,
+	0x000000cb,0x00050086,0x00000006,0x000000cd,0x000000cc,0x0000003c,0x00050080,0x00000006,
+	0x000000ce,0x000000c9,0x000000cd,0x0004003d,0x00000006,0x000000cf,0x00000021,0x00060041,
+	0x00000066,0x000000d0,0x000000c3,0x00000063,0x000000ce,0x0003003e,0x000000d0,0x000000cf,
+	0x000100fd,0x00010038
 };
 
 // Generated from:
@@ -292,7 +293,8 @@
 //         valueAsUint |= signExtension;
 //     }
 //     int valueAsInt = int(valueAsUint);
-//           float value =(2 * float(valueAsInt)+ 1)/ valueMask;
+//           float value = float(valueAsInt)/(valueMask >> 1);
+//     value = max(value, float(- 1));
 //
 //     return value;
 // }
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000009.inc b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000009.inc
index 8d6d525..2266f31 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000009.inc
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000009.inc
@@ -77,129 +77,129 @@
 	0x00000006,0x0004002b,0x00000006,0x00000076,0x00000020,0x00040020,0x00000078,0x00000007,
 	0x00000028,0x0004002b,0x00000028,0x0000007c,0xffffffff,0x0004002b,0x00000028,0x0000007e,
 	0x00000001,0x00040020,0x0000008e,0x00000007,0x00000052,0x0004002b,0x00000006,0x00000092,
-	0x00000001,0x0004002b,0x00000006,0x00000097,0x00000000,0x0004002b,0x00000011,0x000000aa,
-	0x40000000,0x0004002b,0x00000011,0x000000ae,0x3f800000,0x0003001d,0x000000c0,0x00000006,
-	0x0003001e,0x000000c1,0x000000c0,0x00040020,0x000000c2,0x00000002,0x000000c1,0x0004003b,
-	0x000000c2,0x000000c3,0x00000002,0x00040017,0x000000c4,0x00000006,0x00000003,0x00040020,
-	0x000000c5,0x00000001,0x000000c4,0x0004003b,0x000000c5,0x000000c6,0x00000001,0x00040020,
-	0x000000c7,0x00000001,0x00000006,0x0004002b,0x00000028,0x000000ca,0x00000003,0x0004002b,
-	0x00000006,0x000000f4,0x00000040,0x0006002c,0x000000c4,0x000000f5,0x000000f4,0x00000092,
-	0x00000092,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,
-	0x0004003b,0x00000007,0x000000d1,0x00000007,0x0004003b,0x00000007,0x000000d2,0x00000007,
-	0x0004003b,0x00000007,0x000000da,0x00000007,0x0004003b,0x00000016,0x000000e0,0x00000007,
-	0x0004003b,0x00000007,0x000000e1,0x00000007,0x0004003b,0x00000016,0x000000e4,0x00000007,
-	0x0004003b,0x00000016,0x000000e5,0x00000007,0x0004003b,0x00000007,0x000000e8,0x00000007,
-	0x0004003b,0x00000016,0x000000ea,0x00000007,0x0004003b,0x00000007,0x000000f1,0x00000007,
-	0x0003003e,0x000000d1,0x00000097,0x0003003e,0x000000d2,0x00000097,0x000200f9,0x000000d3,
-	0x000200f8,0x000000d3,0x000400f6,0x000000d5,0x000000d6,0x00000000,0x000200f9,0x000000d7,
-	0x000200f8,0x000000d7,0x0004003d,0x00000006,0x000000d8,0x000000d2,0x000500b0,0x00000052,
-	0x000000d9,0x000000d8,0x00000092,0x000400fa,0x000000d9,0x000000d4,0x000000d5,0x000200f8,
-	0x000000d4,0x00050041,0x000000c7,0x000000db,0x000000c6,0x00000097,0x0004003d,0x00000006,
-	0x000000dc,0x000000db,0x00050084,0x00000006,0x000000dd,0x000000dc,0x00000092,0x0004003d,
-	0x00000006,0x000000de,0x000000d2,0x00050080,0x00000006,0x000000df,0x000000dd,0x000000de,
-	0x0003003e,0x000000da,0x000000df,0x0004003d,0x00000006,0x000000e2,0x000000da,0x0003003e,
-	0x000000e1,0x000000e2,0x00050039,0x00000011,0x000000e3,0x00000014,0x000000e1,0x0003003e,
-	0x000000e0,0x000000e3,0x0004003d,0x00000011,0x000000e6,0x000000e0,0x0003003e,0x000000e5,
-	0x000000e6,0x00050039,0x00000011,0x000000e7,0x00000019,0x000000e5,0x0003003e,0x000000e4,
-	0x000000e7,0x0004003d,0x00000006,0x000000e9,0x000000da,0x0003003e,0x000000e8,0x000000e9,
-	0x0004003d,0x00000011,0x000000eb,0x000000e4,0x0003003e,0x000000ea,0x000000eb,0x00060039,
-	0x00000006,0x000000ec,0x0000001e,0x000000e8,0x000000ea,0x0004003d,0x00000006,0x000000ed,
-	0x000000d1,0x000500c5,0x00000006,0x000000ee,0x000000ed,0x000000ec,0x0003003e,0x000000d1,
-	0x000000ee,0x000200f9,0x000000d6,0x000200f8,0x000000d6,0x0004003d,0x00000006,0x000000ef,
-	0x000000d2,0x00050080,0x00000006,0x000000f0,0x000000ef,0x0000007e,0x0003003e,0x000000d2,
-	0x000000f0,0x000200f9,0x000000d3,0x000200f8,0x000000d5,0x0004003d,0x00000006,0x000000f2,
-	0x000000d1,0x0003003e,0x000000f1,0x000000f2,0x00050039,0x00000002,0x000000f3,0x00000022,
-	0x000000f1,0x000100fd,0x00010038,0x00050036,0x00000006,0x0000000b,0x00000000,0x00000008,
-	0x00030037,0x00000007,0x00000009,0x00030037,0x00000007,0x0000000a,0x000200f8,0x0000000c,
-	0x0004003d,0x00000006,0x00000024,0x00000009,0x00050041,0x0000002a,0x0000002b,0x00000027,
-	0x00000029,0x0004003d,0x00000006,0x0000002c,0x0000002b,0x00050084,0x00000006,0x0000002d,
-	0x00000024,0x0000002c,0x0004003d,0x00000006,0x0000002e,0x0000000a,0x00050041,0x0000002a,
-	0x00000030,0x00000027,0x0000002f,0x0004003d,0x00000006,0x00000031,0x00000030,0x00050084,
-	0x00000006,0x00000032,0x0000002e,0x00000031,0x00050080,0x00000006,0x00000033,0x0000002d,
-	0x00000032,0x00050041,0x0000002a,0x00000035,0x00000027,0x00000034,0x0004003d,0x00000006,
-	0x00000036,0x00000035,0x00050080,0x00000006,0x00000037,0x00000033,0x00000036,0x000200fe,
-	0x00000037,0x00010038,0x00050036,0x00000006,0x0000000f,0x00000000,0x00000008,0x00030037,
-	0x00000007,0x0000000d,0x00030037,0x00000007,0x0000000e,0x000200f8,0x00000010,0x0004003b,
-	0x00000007,0x0000003a,0x00000007,0x0004003d,0x00000006,0x0000003b,0x0000000d,0x00050089,
-	0x00000006,0x0000003d,0x0000003b,0x0000003c,0x00050084,0x00000006,0x0000003f,0x0000003d,
-	0x0000003e,0x0003003e,0x0000003a,0x0000003f,0x0004003d,0x00000006,0x00000040,0x0000003a,
-	0x000200fe,0x00000040,0x00010038,0x00050036,0x00000011,0x00000014,0x00000000,0x00000012,
-	0x00030037,0x00000007,0x00000013,0x000200f8,0x00000015,0x0004003b,0x00000007,0x00000043,
-	0x00000007,0x0004003b,0x00000007,0x00000049,0x00000007,0x0004003b,0x00000007,0x00000058,
-	0x00000007,0x0004003b,0x00000007,0x00000059,0x00000007,0x0004003b,0x00000007,0x0000005b,
-	0x00000007,0x0004003b,0x00000007,0x0000005e,0x00000007,0x0004003b,0x00000007,0x00000069,
-	0x00000007,0x0004003b,0x00000007,0x0000006a,0x00000007,0x0004003b,0x00000007,0x0000006c,
-	0x00000007,0x0004003b,0x00000007,0x00000070,0x00000007,0x0004003b,0x00000007,0x00000074,
-	0x00000007,0x0004003b,0x00000078,0x00000079,0x00000007,0x0004003b,0x00000007,0x00000084,
-	0x00000007,0x0004003b,0x0000008e,0x0000008f,0x00000007,0x0004003b,0x00000007,0x00000099,
-	0x00000007,0x0004003b,0x00000078,0x0000009b,0x00000007,0x0004003b,0x00000078,0x000000a6,
-	0x00000007,0x0004003b,0x00000016,0x000000a9,0x00000007,0x0004003d,0x00000006,0x00000044,
-	0x00000013,0x00050041,0x0000002a,0x00000046,0x00000027,0x00000045,0x0004003d,0x00000006,
-	0x00000047,0x00000046,0x00050086,0x00000006,0x00000048,0x00000044,0x00000047,0x0003003e,
-	0x00000043,0x00000048,0x0004003d,0x00000006,0x0000004a,0x00000013,0x00050041,0x0000002a,
-	0x0000004b,0x00000027,0x00000045,0x0004003d,0x00000006,0x0000004c,0x0000004b,0x00050089,
-	0x00000006,0x0000004d,0x0000004a,0x0000004c,0x0003003e,0x00000049,0x0000004d,0x0004003d,
-	0x00000006,0x0000004e,0x00000049,0x00050041,0x0000002a,0x00000050,0x00000027,0x0000004f,
-	0x0004003d,0x00000006,0x00000051,0x00000050,0x000500ae,0x00000052,0x00000053,0x0000004e,
-	0x00000051,0x000300f7,0x00000055,0x00000000,0x000400fa,0x00000053,0x00000054,0x00000055,
-	0x000200f8,0x00000054,0x000200fe,0x00000056,0x000200f8,0x00000055,0x0004003d,0x00000006,
-	0x0000005a,0x00000043,0x0003003e,0x00000059,0x0000005a,0x0004003d,0x00000006,0x0000005c,
-	0x00000049,0x0003003e,0x0000005b,0x0000005c,0x00060039,0x00000006,0x0000005d,0x0000000b,
-	0x00000059,0x0000005b,0x0003003e,0x00000058,0x0000005d,0x0004003d,0x00000006,0x00000064,
-	0x00000058,0x00050086,0x00000006,0x00000065,0x00000064,0x0000003c,0x00060041,0x00000066,
-	0x00000067,0x00000062,0x00000063,0x00000065,0x0004003d,0x00000006,0x00000068,0x00000067,
-	0x0003003e,0x0000005e,0x00000068,0x0004003d,0x00000006,0x0000006b,0x00000058,0x0003003e,
-	0x0000006a,0x0000006b,0x00050041,0x0000002a,0x0000006d,0x00000027,0x0000002f,0x0004003d,
-	0x00000006,0x0000006e,0x0000006d,0x0003003e,0x0000006c,0x0000006e,0x00060039,0x00000006,
-	0x0000006f,0x0000000f,0x0000006a,0x0000006c,0x0003003e,0x00000069,0x0000006f,0x00050041,
-	0x0000002a,0x00000071,0x00000027,0x0000002f,0x0004003d,0x00000006,0x00000072,0x00000071,
-	0x00050084,0x00000006,0x00000073,0x00000072,0x0000003e,0x0003003e,0x00000070,0x00000073,
-	0x0004003d,0x00000006,0x00000075,0x00000070,0x000500aa,0x00000052,0x00000077,0x00000075,
-	0x00000076,0x000300f7,0x0000007b,0x00000000,0x000400fa,0x00000077,0x0000007a,0x0000007d,
-	0x000200f8,0x0000007a,0x0003003e,0x00000079,0x0000007c,0x000200f9,0x0000007b,0x000200f8,
-	0x0000007d,0x0004003d,0x00000006,0x0000007f,0x00000070,0x000500c4,0x00000028,0x00000080,
-	0x0000007e,0x0000007f,0x00050082,0x00000028,0x00000081,0x00000080,0x0000007e,0x0003003e,
-	0x00000079,0x00000081,0x000200f9,0x0000007b,0x000200f8,0x0000007b,0x0004003d,0x00000028,
-	0x00000082,0x00000079,0x0004007c,0x00000006,0x00000083,0x00000082,0x0003003e,0x00000074,
-	0x00000083,0x0004003d,0x00000006,0x00000085,0x0000005e,0x0004003d,0x00000006,0x00000086,
-	0x00000069,0x000500c2,0x00000006,0x00000087,0x00000085,0x00000086,0x0004003d,0x00000006,
-	0x00000088,0x00000074,0x000500c7,0x00000006,0x00000089,0x00000087,0x00000088,0x0003003e,
-	0x00000084,0x00000089,0x0004003d,0x00000006,0x0000008a,0x00000070,0x000500b0,0x00000052,
-	0x0000008b,0x0000008a,0x00000076,0x000300f7,0x0000008d,0x00000000,0x000400fa,0x0000008b,
-	0x0000008c,0x0000008d,0x000200f8,0x0000008c,0x0004003d,0x00000006,0x00000090,0x00000084,
-	0x0004003d,0x00000006,0x00000091,0x00000070,0x00050082,0x00000006,0x00000093,0x00000091,
-	0x00000092,0x000500c4,0x00000028,0x00000094,0x0000007e,0x00000093,0x0004007c,0x00000006,
-	0x00000095,0x00000094,0x000500c7,0x00000006,0x00000096,0x00000090,0x00000095,0x000500ab,
-	0x00000052,0x00000098,0x00000096,0x00000097,0x0003003e,0x0000008f,0x00000098,0x0004003d,
-	0x00000052,0x0000009a,0x0000008f,0x000300f7,0x0000009d,0x00000000,0x000400fa,0x0000009a,
-	0x0000009c,0x000000a0,0x000200f8,0x0000009c,0x0004003d,0x00000006,0x0000009e,0x00000070,
-	0x000500c4,0x00000028,0x0000009f,0x0000007c,0x0000009e,0x0003003e,0x0000009b,0x0000009f,
-	0x000200f9,0x0000009d,0x000200f8,0x000000a0,0x0003003e,0x0000009b,0x00000063,0x000200f9,
-	0x0000009d,0x000200f8,0x0000009d,0x0004003d,0x00000028,0x000000a1,0x0000009b,0x0004007c,
-	0x00000006,0x000000a2,0x000000a1,0x0003003e,0x00000099,0x000000a2,0x0004003d,0x00000006,
-	0x000000a3,0x00000099,0x0004003d,0x00000006,0x000000a4,0x00000084,0x000500c5,0x00000006,
-	0x000000a5,0x000000a4,0x000000a3,0x0003003e,0x00000084,0x000000a5,0x000200f9,0x0000008d,
-	0x000200f8,0x0000008d,0x0004003d,0x00000006,0x000000a7,0x00000084,0x0004007c,0x00000028,
-	0x000000a8,0x000000a7,0x0003003e,0x000000a6,0x000000a8,0x0004003d,0x00000028,0x000000ab,
-	0x000000a6,0x0004006f,0x00000011,0x000000ac,0x000000ab,0x00050085,0x00000011,0x000000ad,
-	0x000000aa,0x000000ac,0x00050081,0x00000011,0x000000af,0x000000ad,0x000000ae,0x0004003d,
-	0x00000006,0x000000b0,0x00000074,0x00040070,0x00000011,0x000000b1,0x000000b0,0x00050088,
-	0x00000011,0x000000b2,0x000000af,0x000000b1,0x0003003e,0x000000a9,0x000000b2,0x0004003d,
-	0x00000011,0x000000b3,0x000000a9,0x000200fe,0x000000b3,0x00010038,0x00050036,0x00000011,
-	0x00000019,0x00000000,0x00000017,0x00030037,0x00000016,0x00000018,0x000200f8,0x0000001a,
-	0x0004003d,0x00000011,0x000000b6,0x00000018,0x000200fe,0x000000b6,0x00010038,0x00050036,
-	0x00000006,0x0000001e,0x00000000,0x0000001b,0x00030037,0x00000007,0x0000001c,0x00030037,
-	0x00000016,0x0000001d,0x000200f8,0x0000001f,0x0004003b,0x00000007,0x000000b9,0x00000007,
-	0x0004003d,0x00000011,0x000000ba,0x0000001d,0x0004007c,0x00000028,0x000000bb,0x000000ba,
-	0x0004007c,0x00000006,0x000000bc,0x000000bb,0x0003003e,0x000000b9,0x000000bc,0x0004003d,
-	0x00000006,0x000000bd,0x000000b9,0x000200fe,0x000000bd,0x00010038,0x00050036,0x00000002,
-	0x00000022,0x00000000,0x00000020,0x00030037,0x00000007,0x00000021,0x000200f8,0x00000023,
-	0x00050041,0x000000c7,0x000000c8,0x000000c6,0x00000097,0x0004003d,0x00000006,0x000000c9,
-	0x000000c8,0x00050041,0x0000002a,0x000000cb,0x00000027,0x000000ca,0x0004003d,0x00000006,
-	0x000000cc,0x000000cb,0x00050086,0x00000006,0x000000cd,0x000000cc,0x0000003c,0x00050080,
-	0x00000006,0x000000ce,0x000000c9,0x000000cd,0x0004003d,0x00000006,0x000000cf,0x00000021,
-	0x00060041,0x00000066,0x000000d0,0x000000c3,0x00000063,0x000000ce,0x0003003e,0x000000d0,
-	0x000000cf,0x000100fd,0x00010038
+	0x00000001,0x0004002b,0x00000006,0x00000097,0x00000000,0x0004002b,0x00000011,0x000000b1,
+	0xbf800000,0x0003001d,0x000000c0,0x00000006,0x0003001e,0x000000c1,0x000000c0,0x00040020,
+	0x000000c2,0x00000002,0x000000c1,0x0004003b,0x000000c2,0x000000c3,0x00000002,0x00040017,
+	0x000000c4,0x00000006,0x00000003,0x00040020,0x000000c5,0x00000001,0x000000c4,0x0004003b,
+	0x000000c5,0x000000c6,0x00000001,0x00040020,0x000000c7,0x00000001,0x00000006,0x0004002b,
+	0x00000028,0x000000ca,0x00000003,0x0004002b,0x00000006,0x000000f4,0x00000040,0x0006002c,
+	0x000000c4,0x000000f5,0x000000f4,0x00000092,0x00000092,0x00050036,0x00000002,0x00000004,
+	0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000007,0x000000d1,0x00000007,
+	0x0004003b,0x00000007,0x000000d2,0x00000007,0x0004003b,0x00000007,0x000000da,0x00000007,
+	0x0004003b,0x00000016,0x000000e0,0x00000007,0x0004003b,0x00000007,0x000000e1,0x00000007,
+	0x0004003b,0x00000016,0x000000e4,0x00000007,0x0004003b,0x00000016,0x000000e5,0x00000007,
+	0x0004003b,0x00000007,0x000000e8,0x00000007,0x0004003b,0x00000016,0x000000ea,0x00000007,
+	0x0004003b,0x00000007,0x000000f1,0x00000007,0x0003003e,0x000000d1,0x00000097,0x0003003e,
+	0x000000d2,0x00000097,0x000200f9,0x000000d3,0x000200f8,0x000000d3,0x000400f6,0x000000d5,
+	0x000000d6,0x00000000,0x000200f9,0x000000d7,0x000200f8,0x000000d7,0x0004003d,0x00000006,
+	0x000000d8,0x000000d2,0x000500b0,0x00000052,0x000000d9,0x000000d8,0x00000092,0x000400fa,
+	0x000000d9,0x000000d4,0x000000d5,0x000200f8,0x000000d4,0x00050041,0x000000c7,0x000000db,
+	0x000000c6,0x00000097,0x0004003d,0x00000006,0x000000dc,0x000000db,0x00050084,0x00000006,
+	0x000000dd,0x000000dc,0x00000092,0x0004003d,0x00000006,0x000000de,0x000000d2,0x00050080,
+	0x00000006,0x000000df,0x000000dd,0x000000de,0x0003003e,0x000000da,0x000000df,0x0004003d,
+	0x00000006,0x000000e2,0x000000da,0x0003003e,0x000000e1,0x000000e2,0x00050039,0x00000011,
+	0x000000e3,0x00000014,0x000000e1,0x0003003e,0x000000e0,0x000000e3,0x0004003d,0x00000011,
+	0x000000e6,0x000000e0,0x0003003e,0x000000e5,0x000000e6,0x00050039,0x00000011,0x000000e7,
+	0x00000019,0x000000e5,0x0003003e,0x000000e4,0x000000e7,0x0004003d,0x00000006,0x000000e9,
+	0x000000da,0x0003003e,0x000000e8,0x000000e9,0x0004003d,0x00000011,0x000000eb,0x000000e4,
+	0x0003003e,0x000000ea,0x000000eb,0x00060039,0x00000006,0x000000ec,0x0000001e,0x000000e8,
+	0x000000ea,0x0004003d,0x00000006,0x000000ed,0x000000d1,0x000500c5,0x00000006,0x000000ee,
+	0x000000ed,0x000000ec,0x0003003e,0x000000d1,0x000000ee,0x000200f9,0x000000d6,0x000200f8,
+	0x000000d6,0x0004003d,0x00000006,0x000000ef,0x000000d2,0x00050080,0x00000006,0x000000f0,
+	0x000000ef,0x0000007e,0x0003003e,0x000000d2,0x000000f0,0x000200f9,0x000000d3,0x000200f8,
+	0x000000d5,0x0004003d,0x00000006,0x000000f2,0x000000d1,0x0003003e,0x000000f1,0x000000f2,
+	0x00050039,0x00000002,0x000000f3,0x00000022,0x000000f1,0x000100fd,0x00010038,0x00050036,
+	0x00000006,0x0000000b,0x00000000,0x00000008,0x00030037,0x00000007,0x00000009,0x00030037,
+	0x00000007,0x0000000a,0x000200f8,0x0000000c,0x0004003d,0x00000006,0x00000024,0x00000009,
+	0x00050041,0x0000002a,0x0000002b,0x00000027,0x00000029,0x0004003d,0x00000006,0x0000002c,
+	0x0000002b,0x00050084,0x00000006,0x0000002d,0x00000024,0x0000002c,0x0004003d,0x00000006,
+	0x0000002e,0x0000000a,0x00050041,0x0000002a,0x00000030,0x00000027,0x0000002f,0x0004003d,
+	0x00000006,0x00000031,0x00000030,0x00050084,0x00000006,0x00000032,0x0000002e,0x00000031,
+	0x00050080,0x00000006,0x00000033,0x0000002d,0x00000032,0x00050041,0x0000002a,0x00000035,
+	0x00000027,0x00000034,0x0004003d,0x00000006,0x00000036,0x00000035,0x00050080,0x00000006,
+	0x00000037,0x00000033,0x00000036,0x000200fe,0x00000037,0x00010038,0x00050036,0x00000006,
+	0x0000000f,0x00000000,0x00000008,0x00030037,0x00000007,0x0000000d,0x00030037,0x00000007,
+	0x0000000e,0x000200f8,0x00000010,0x0004003b,0x00000007,0x0000003a,0x00000007,0x0004003d,
+	0x00000006,0x0000003b,0x0000000d,0x00050089,0x00000006,0x0000003d,0x0000003b,0x0000003c,
+	0x00050084,0x00000006,0x0000003f,0x0000003d,0x0000003e,0x0003003e,0x0000003a,0x0000003f,
+	0x0004003d,0x00000006,0x00000040,0x0000003a,0x000200fe,0x00000040,0x00010038,0x00050036,
+	0x00000011,0x00000014,0x00000000,0x00000012,0x00030037,0x00000007,0x00000013,0x000200f8,
+	0x00000015,0x0004003b,0x00000007,0x00000043,0x00000007,0x0004003b,0x00000007,0x00000049,
+	0x00000007,0x0004003b,0x00000007,0x00000058,0x00000007,0x0004003b,0x00000007,0x00000059,
+	0x00000007,0x0004003b,0x00000007,0x0000005b,0x00000007,0x0004003b,0x00000007,0x0000005e,
+	0x00000007,0x0004003b,0x00000007,0x00000069,0x00000007,0x0004003b,0x00000007,0x0000006a,
+	0x00000007,0x0004003b,0x00000007,0x0000006c,0x00000007,0x0004003b,0x00000007,0x00000070,
+	0x00000007,0x0004003b,0x00000007,0x00000074,0x00000007,0x0004003b,0x00000078,0x00000079,
+	0x00000007,0x0004003b,0x00000007,0x00000084,0x00000007,0x0004003b,0x0000008e,0x0000008f,
+	0x00000007,0x0004003b,0x00000007,0x00000099,0x00000007,0x0004003b,0x00000078,0x0000009b,
+	0x00000007,0x0004003b,0x00000078,0x000000a6,0x00000007,0x0004003b,0x00000016,0x000000a9,
+	0x00000007,0x0004003d,0x00000006,0x00000044,0x00000013,0x00050041,0x0000002a,0x00000046,
+	0x00000027,0x00000045,0x0004003d,0x00000006,0x00000047,0x00000046,0x00050086,0x00000006,
+	0x00000048,0x00000044,0x00000047,0x0003003e,0x00000043,0x00000048,0x0004003d,0x00000006,
+	0x0000004a,0x00000013,0x00050041,0x0000002a,0x0000004b,0x00000027,0x00000045,0x0004003d,
+	0x00000006,0x0000004c,0x0000004b,0x00050089,0x00000006,0x0000004d,0x0000004a,0x0000004c,
+	0x0003003e,0x00000049,0x0000004d,0x0004003d,0x00000006,0x0000004e,0x00000049,0x00050041,
+	0x0000002a,0x00000050,0x00000027,0x0000004f,0x0004003d,0x00000006,0x00000051,0x00000050,
+	0x000500ae,0x00000052,0x00000053,0x0000004e,0x00000051,0x000300f7,0x00000055,0x00000000,
+	0x000400fa,0x00000053,0x00000054,0x00000055,0x000200f8,0x00000054,0x000200fe,0x00000056,
+	0x000200f8,0x00000055,0x0004003d,0x00000006,0x0000005a,0x00000043,0x0003003e,0x00000059,
+	0x0000005a,0x0004003d,0x00000006,0x0000005c,0x00000049,0x0003003e,0x0000005b,0x0000005c,
+	0x00060039,0x00000006,0x0000005d,0x0000000b,0x00000059,0x0000005b,0x0003003e,0x00000058,
+	0x0000005d,0x0004003d,0x00000006,0x00000064,0x00000058,0x00050086,0x00000006,0x00000065,
+	0x00000064,0x0000003c,0x00060041,0x00000066,0x00000067,0x00000062,0x00000063,0x00000065,
+	0x0004003d,0x00000006,0x00000068,0x00000067,0x0003003e,0x0000005e,0x00000068,0x0004003d,
+	0x00000006,0x0000006b,0x00000058,0x0003003e,0x0000006a,0x0000006b,0x00050041,0x0000002a,
+	0x0000006d,0x00000027,0x0000002f,0x0004003d,0x00000006,0x0000006e,0x0000006d,0x0003003e,
+	0x0000006c,0x0000006e,0x00060039,0x00000006,0x0000006f,0x0000000f,0x0000006a,0x0000006c,
+	0x0003003e,0x00000069,0x0000006f,0x00050041,0x0000002a,0x00000071,0x00000027,0x0000002f,
+	0x0004003d,0x00000006,0x00000072,0x00000071,0x00050084,0x00000006,0x00000073,0x00000072,
+	0x0000003e,0x0003003e,0x00000070,0x00000073,0x0004003d,0x00000006,0x00000075,0x00000070,
+	0x000500aa,0x00000052,0x00000077,0x00000075,0x00000076,0x000300f7,0x0000007b,0x00000000,
+	0x000400fa,0x00000077,0x0000007a,0x0000007d,0x000200f8,0x0000007a,0x0003003e,0x00000079,
+	0x0000007c,0x000200f9,0x0000007b,0x000200f8,0x0000007d,0x0004003d,0x00000006,0x0000007f,
+	0x00000070,0x000500c4,0x00000028,0x00000080,0x0000007e,0x0000007f,0x00050082,0x00000028,
+	0x00000081,0x00000080,0x0000007e,0x0003003e,0x00000079,0x00000081,0x000200f9,0x0000007b,
+	0x000200f8,0x0000007b,0x0004003d,0x00000028,0x00000082,0x00000079,0x0004007c,0x00000006,
+	0x00000083,0x00000082,0x0003003e,0x00000074,0x00000083,0x0004003d,0x00000006,0x00000085,
+	0x0000005e,0x0004003d,0x00000006,0x00000086,0x00000069,0x000500c2,0x00000006,0x00000087,
+	0x00000085,0x00000086,0x0004003d,0x00000006,0x00000088,0x00000074,0x000500c7,0x00000006,
+	0x00000089,0x00000087,0x00000088,0x0003003e,0x00000084,0x00000089,0x0004003d,0x00000006,
+	0x0000008a,0x00000070,0x000500b0,0x00000052,0x0000008b,0x0000008a,0x00000076,0x000300f7,
+	0x0000008d,0x00000000,0x000400fa,0x0000008b,0x0000008c,0x0000008d,0x000200f8,0x0000008c,
+	0x0004003d,0x00000006,0x00000090,0x00000084,0x0004003d,0x00000006,0x00000091,0x00000070,
+	0x00050082,0x00000006,0x00000093,0x00000091,0x00000092,0x000500c4,0x00000028,0x00000094,
+	0x0000007e,0x00000093,0x0004007c,0x00000006,0x00000095,0x00000094,0x000500c7,0x00000006,
+	0x00000096,0x00000090,0x00000095,0x000500ab,0x00000052,0x00000098,0x00000096,0x00000097,
+	0x0003003e,0x0000008f,0x00000098,0x0004003d,0x00000052,0x0000009a,0x0000008f,0x000300f7,
+	0x0000009d,0x00000000,0x000400fa,0x0000009a,0x0000009c,0x000000a0,0x000200f8,0x0000009c,
+	0x0004003d,0x00000006,0x0000009e,0x00000070,0x000500c4,0x00000028,0x0000009f,0x0000007c,
+	0x0000009e,0x0003003e,0x0000009b,0x0000009f,0x000200f9,0x0000009d,0x000200f8,0x000000a0,
+	0x0003003e,0x0000009b,0x00000063,0x000200f9,0x0000009d,0x000200f8,0x0000009d,0x0004003d,
+	0x00000028,0x000000a1,0x0000009b,0x0004007c,0x00000006,0x000000a2,0x000000a1,0x0003003e,
+	0x00000099,0x000000a2,0x0004003d,0x00000006,0x000000a3,0x00000099,0x0004003d,0x00000006,
+	0x000000a4,0x00000084,0x000500c5,0x00000006,0x000000a5,0x000000a4,0x000000a3,0x0003003e,
+	0x00000084,0x000000a5,0x000200f9,0x0000008d,0x000200f8,0x0000008d,0x0004003d,0x00000006,
+	0x000000a7,0x00000084,0x0004007c,0x00000028,0x000000a8,0x000000a7,0x0003003e,0x000000a6,
+	0x000000a8,0x0004003d,0x00000028,0x000000aa,0x000000a6,0x0004006f,0x00000011,0x000000ab,
+	0x000000aa,0x0004003d,0x00000006,0x000000ac,0x00000074,0x000500c2,0x00000006,0x000000ad,
+	0x000000ac,0x0000007e,0x00040070,0x00000011,0x000000ae,0x000000ad,0x00050088,0x00000011,
+	0x000000af,0x000000ab,0x000000ae,0x0003003e,0x000000a9,0x000000af,0x0004003d,0x00000011,
+	0x000000b0,0x000000a9,0x0007000c,0x00000011,0x000000b2,0x00000001,0x00000028,0x000000b0,
+	0x000000b1,0x0003003e,0x000000a9,0x000000b2,0x0004003d,0x00000011,0x000000b3,0x000000a9,
+	0x000200fe,0x000000b3,0x00010038,0x00050036,0x00000011,0x00000019,0x00000000,0x00000017,
+	0x00030037,0x00000016,0x00000018,0x000200f8,0x0000001a,0x0004003d,0x00000011,0x000000b6,
+	0x00000018,0x000200fe,0x000000b6,0x00010038,0x00050036,0x00000006,0x0000001e,0x00000000,
+	0x0000001b,0x00030037,0x00000007,0x0000001c,0x00030037,0x00000016,0x0000001d,0x000200f8,
+	0x0000001f,0x0004003b,0x00000007,0x000000b9,0x00000007,0x0004003d,0x00000011,0x000000ba,
+	0x0000001d,0x0004007c,0x00000028,0x000000bb,0x000000ba,0x0004007c,0x00000006,0x000000bc,
+	0x000000bb,0x0003003e,0x000000b9,0x000000bc,0x0004003d,0x00000006,0x000000bd,0x000000b9,
+	0x000200fe,0x000000bd,0x00010038,0x00050036,0x00000002,0x00000022,0x00000000,0x00000020,
+	0x00030037,0x00000007,0x00000021,0x000200f8,0x00000023,0x00050041,0x000000c7,0x000000c8,
+	0x000000c6,0x00000097,0x0004003d,0x00000006,0x000000c9,0x000000c8,0x00050041,0x0000002a,
+	0x000000cb,0x00000027,0x000000ca,0x0004003d,0x00000006,0x000000cc,0x000000cb,0x00050086,
+	0x00000006,0x000000cd,0x000000cc,0x0000003c,0x00050080,0x00000006,0x000000ce,0x000000c9,
+	0x000000cd,0x0004003d,0x00000006,0x000000cf,0x00000021,0x00060041,0x00000066,0x000000d0,
+	0x000000c3,0x00000063,0x000000ce,0x0003003e,0x000000d0,0x000000cf,0x000100fd,0x00010038
 };
 
 // Generated from:
@@ -284,7 +284,8 @@
 //         valueAsUint |= signExtension;
 //     }
 //     int valueAsInt = int(valueAsUint);
-//           float value =(2 * float(valueAsInt)+ 1)/ valueMask;
+//           float value = float(valueAsInt)/(valueMask >> 1);
+//     value = max(value, float(- 1));
 //
 //     return value;
 // }
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000018.inc b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000018.inc
index 3648003..d9f008b 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000018.inc
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000018.inc
@@ -76,124 +76,125 @@
 	0x00000006,0x00000076,0x00000020,0x00040020,0x0000007a,0x00000007,0x00000045,0x0004002b,
 	0x00000024,0x0000007d,0x00000001,0x0004002b,0x00000006,0x0000007f,0x00000001,0x0004002b,
 	0x00000006,0x00000084,0x00000000,0x00040020,0x00000088,0x00000007,0x00000024,0x0004002b,
-	0x00000024,0x0000008c,0xffffffff,0x0004002b,0x0000000d,0x00000099,0x40000000,0x0004002b,
-	0x0000000d,0x0000009d,0x3f800000,0x0003001d,0x000000af,0x00000006,0x0003001e,0x000000b0,
-	0x000000af,0x00040020,0x000000b1,0x00000002,0x000000b0,0x0004003b,0x000000b1,0x000000b2,
-	0x00000002,0x00040017,0x000000b3,0x00000006,0x00000003,0x00040020,0x000000b4,0x00000001,
-	0x000000b3,0x0004003b,0x000000b4,0x000000b5,0x00000001,0x00040020,0x000000b6,0x00000001,
-	0x00000006,0x0004002b,0x00000006,0x000000f1,0x00000040,0x0006002c,0x000000b3,0x000000f2,
-	0x000000f1,0x0000007f,0x0000007f,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,
-	0x000200f8,0x00000005,0x0004003b,0x00000007,0x000000c7,0x00000007,0x0004003b,0x00000007,
-	0x000000c8,0x00000007,0x0004003b,0x00000007,0x000000d0,0x00000007,0x0004003b,0x00000012,
-	0x000000dd,0x00000007,0x0004003b,0x00000007,0x000000de,0x00000007,0x0004003b,0x00000012,
-	0x000000e1,0x00000007,0x0004003b,0x00000012,0x000000e2,0x00000007,0x0004003b,0x00000007,
-	0x000000e5,0x00000007,0x0004003b,0x00000012,0x000000e7,0x00000007,0x0004003b,0x00000007,
-	0x000000ee,0x00000007,0x00050041,0x000000b6,0x000000bf,0x000000b5,0x00000084,0x0004003d,
-	0x00000006,0x000000c0,0x000000bf,0x00050041,0x00000026,0x000000c1,0x00000023,0x00000056,
-	0x0004003d,0x00000006,0x000000c2,0x000000c1,0x000500ae,0x00000045,0x000000c3,0x000000c0,
-	0x000000c2,0x000300f7,0x000000c5,0x00000000,0x000400fa,0x000000c3,0x000000c4,0x000000c5,
-	0x000200f8,0x000000c4,0x000100fd,0x000200f8,0x000000c5,0x0003003e,0x000000c7,0x00000084,
-	0x0003003e,0x000000c8,0x00000084,0x000200f9,0x000000c9,0x000200f8,0x000000c9,0x000400f6,
-	0x000000cb,0x000000cc,0x00000000,0x000200f9,0x000000cd,0x000200f8,0x000000cd,0x0004003d,
-	0x00000006,0x000000ce,0x000000c8,0x000500b0,0x00000045,0x000000cf,0x000000ce,0x0000007f,
-	0x000400fa,0x000000cf,0x000000ca,0x000000cb,0x000200f8,0x000000ca,0x00050041,0x000000b6,
-	0x000000d1,0x000000b5,0x00000084,0x0004003d,0x00000006,0x000000d2,0x000000d1,0x00050084,
-	0x00000006,0x000000d3,0x000000d2,0x0000007f,0x0004003d,0x00000006,0x000000d4,0x000000c8,
-	0x00050080,0x00000006,0x000000d5,0x000000d3,0x000000d4,0x0003003e,0x000000d0,0x000000d5,
-	0x0004003d,0x00000006,0x000000d6,0x000000d0,0x00050041,0x00000026,0x000000d7,0x00000023,
-	0x0000007d,0x0004003d,0x00000006,0x000000d8,0x000000d7,0x000500ae,0x00000045,0x000000d9,
-	0x000000d6,0x000000d8,0x000300f7,0x000000db,0x00000000,0x000400fa,0x000000d9,0x000000da,
-	0x000000db,0x000200f8,0x000000da,0x000200f9,0x000000cb,0x000200f8,0x000000db,0x0004003d,
-	0x00000006,0x000000df,0x000000d0,0x0003003e,0x000000de,0x000000df,0x00050039,0x0000000d,
-	0x000000e0,0x00000010,0x000000de,0x0003003e,0x000000dd,0x000000e0,0x0004003d,0x0000000d,
-	0x000000e3,0x000000dd,0x0003003e,0x000000e2,0x000000e3,0x00050039,0x0000000d,0x000000e4,
-	0x00000015,0x000000e2,0x0003003e,0x000000e1,0x000000e4,0x0004003d,0x00000006,0x000000e6,
-	0x000000d0,0x0003003e,0x000000e5,0x000000e6,0x0004003d,0x0000000d,0x000000e8,0x000000e1,
-	0x0003003e,0x000000e7,0x000000e8,0x00060039,0x00000006,0x000000e9,0x0000001a,0x000000e5,
-	0x000000e7,0x0004003d,0x00000006,0x000000ea,0x000000c7,0x000500c5,0x00000006,0x000000eb,
-	0x000000ea,0x000000e9,0x0003003e,0x000000c7,0x000000eb,0x000200f9,0x000000cc,0x000200f8,
-	0x000000cc,0x0004003d,0x00000006,0x000000ec,0x000000c8,0x00050080,0x00000006,0x000000ed,
-	0x000000ec,0x0000007d,0x0003003e,0x000000c8,0x000000ed,0x000200f9,0x000000c9,0x000200f8,
-	0x000000cb,0x0004003d,0x00000006,0x000000ef,0x000000c7,0x0003003e,0x000000ee,0x000000ef,
-	0x00050039,0x00000002,0x000000f0,0x0000001e,0x000000ee,0x000100fd,0x00010038,0x00050036,
-	0x00000006,0x0000000b,0x00000000,0x00000008,0x00030037,0x00000007,0x00000009,0x00030037,
-	0x00000007,0x0000000a,0x000200f8,0x0000000c,0x0004003d,0x00000006,0x00000020,0x00000009,
-	0x00050041,0x00000026,0x00000027,0x00000023,0x00000025,0x0004003d,0x00000006,0x00000028,
-	0x00000027,0x00050084,0x00000006,0x00000029,0x00000020,0x00000028,0x0004003d,0x00000006,
-	0x0000002a,0x0000000a,0x00050041,0x00000026,0x0000002c,0x00000023,0x0000002b,0x0004003d,
-	0x00000006,0x0000002d,0x0000002c,0x00050084,0x00000006,0x0000002e,0x0000002a,0x0000002d,
-	0x00050080,0x00000006,0x0000002f,0x00000029,0x0000002e,0x00050041,0x00000026,0x00000031,
-	0x00000023,0x00000030,0x0004003d,0x00000006,0x00000032,0x00000031,0x00050080,0x00000006,
-	0x00000033,0x0000002f,0x00000032,0x000200fe,0x00000033,0x00010038,0x00050036,0x0000000d,
-	0x00000010,0x00000000,0x0000000e,0x00030037,0x00000007,0x0000000f,0x000200f8,0x00000011,
-	0x0004003b,0x00000007,0x00000036,0x00000007,0x0004003b,0x00000007,0x0000003c,0x00000007,
-	0x0004003b,0x00000007,0x0000004b,0x00000007,0x0004003b,0x00000007,0x0000004c,0x00000007,
-	0x0004003b,0x00000007,0x0000004e,0x00000007,0x0004003b,0x00000007,0x00000051,0x00000007,
-	0x0004003b,0x00000007,0x0000005d,0x00000007,0x0004003b,0x00000007,0x00000064,0x00000007,
-	0x0004003b,0x00000007,0x00000068,0x00000007,0x0004003b,0x00000007,0x0000006f,0x00000007,
-	0x0004003b,0x0000007a,0x0000007b,0x00000007,0x0004003b,0x00000007,0x00000086,0x00000007,
-	0x0004003b,0x00000088,0x00000089,0x00000007,0x0004003b,0x00000088,0x00000095,0x00000007,
-	0x0004003b,0x00000012,0x00000098,0x00000007,0x0004003d,0x00000006,0x00000037,0x0000000f,
-	0x00050041,0x00000026,0x00000039,0x00000023,0x00000038,0x0004003d,0x00000006,0x0000003a,
-	0x00000039,0x00050086,0x00000006,0x0000003b,0x00000037,0x0000003a,0x0003003e,0x00000036,
-	0x0000003b,0x0004003d,0x00000006,0x0000003d,0x0000000f,0x00050041,0x00000026,0x0000003e,
-	0x00000023,0x00000038,0x0004003d,0x00000006,0x0000003f,0x0000003e,0x00050089,0x00000006,
-	0x00000040,0x0000003d,0x0000003f,0x0003003e,0x0000003c,0x00000040,0x0004003d,0x00000006,
-	0x00000041,0x0000003c,0x00050041,0x00000026,0x00000043,0x00000023,0x00000042,0x0004003d,
-	0x00000006,0x00000044,0x00000043,0x000500ae,0x00000045,0x00000046,0x00000041,0x00000044,
-	0x000300f7,0x00000048,0x00000000,0x000400fa,0x00000046,0x00000047,0x00000048,0x000200f8,
-	0x00000047,0x000200fe,0x00000049,0x000200f8,0x00000048,0x0004003d,0x00000006,0x0000004d,
-	0x00000036,0x0003003e,0x0000004c,0x0000004d,0x0004003d,0x00000006,0x0000004f,0x0000003c,
-	0x0003003e,0x0000004e,0x0000004f,0x00060039,0x00000006,0x00000050,0x0000000b,0x0000004c,
-	0x0000004e,0x0003003e,0x0000004b,0x00000050,0x0004003d,0x00000006,0x00000057,0x0000004b,
-	0x00050086,0x00000006,0x00000059,0x00000057,0x00000058,0x00060041,0x0000005a,0x0000005b,
-	0x00000055,0x00000056,0x00000059,0x0004003d,0x00000006,0x0000005c,0x0000005b,0x0003003e,
-	0x00000051,0x0000005c,0x0004003d,0x00000006,0x0000005e,0x0000003c,0x000500aa,0x00000045,
-	0x00000060,0x0000005e,0x0000005f,0x000600a9,0x00000024,0x00000062,0x00000060,0x00000030,
-	0x00000061,0x0004007c,0x00000006,0x00000063,0x00000062,0x0003003e,0x0000005d,0x00000063,
-	0x0004003d,0x00000006,0x00000066,0x0000003c,0x00050084,0x00000006,0x00000067,0x00000065,
-	0x00000066,0x0003003e,0x00000064,0x00000067,0x0004003d,0x00000006,0x00000069,0x0000003c,
-	0x000500aa,0x00000045,0x0000006a,0x00000069,0x0000005f,0x000600a9,0x00000024,0x0000006d,
-	0x0000006a,0x0000006b,0x0000006c,0x0004007c,0x00000006,0x0000006e,0x0000006d,0x0003003e,
-	0x00000068,0x0000006e,0x0004003d,0x00000006,0x00000070,0x00000051,0x0004003d,0x00000006,
-	0x00000071,0x00000064,0x000500c2,0x00000006,0x00000072,0x00000070,0x00000071,0x0004003d,
-	0x00000006,0x00000073,0x00000068,0x000500c7,0x00000006,0x00000074,0x00000072,0x00000073,
-	0x0003003e,0x0000006f,0x00000074,0x0004003d,0x00000006,0x00000075,0x0000005d,0x000500b0,
-	0x00000045,0x00000077,0x00000075,0x00000076,0x000300f7,0x00000079,0x00000000,0x000400fa,
-	0x00000077,0x00000078,0x00000079,0x000200f8,0x00000078,0x0004003d,0x00000006,0x0000007c,
-	0x0000006f,0x0004003d,0x00000006,0x0000007e,0x0000005d,0x00050082,0x00000006,0x00000080,
-	0x0000007e,0x0000007f,0x000500c4,0x00000024,0x00000081,0x0000007d,0x00000080,0x0004007c,
-	0x00000006,0x00000082,0x00000081,0x000500c7,0x00000006,0x00000083,0x0000007c,0x00000082,
-	0x000500ab,0x00000045,0x00000085,0x00000083,0x00000084,0x0003003e,0x0000007b,0x00000085,
-	0x0004003d,0x00000045,0x00000087,0x0000007b,0x000300f7,0x0000008b,0x00000000,0x000400fa,
-	0x00000087,0x0000008a,0x0000008f,0x000200f8,0x0000008a,0x0004003d,0x00000006,0x0000008d,
-	0x0000005d,0x000500c4,0x00000024,0x0000008e,0x0000008c,0x0000008d,0x0003003e,0x00000089,
-	0x0000008e,0x000200f9,0x0000008b,0x000200f8,0x0000008f,0x0003003e,0x00000089,0x00000056,
-	0x000200f9,0x0000008b,0x000200f8,0x0000008b,0x0004003d,0x00000024,0x00000090,0x00000089,
-	0x0004007c,0x00000006,0x00000091,0x00000090,0x0003003e,0x00000086,0x00000091,0x0004003d,
-	0x00000006,0x00000092,0x00000086,0x0004003d,0x00000006,0x00000093,0x0000006f,0x000500c5,
-	0x00000006,0x00000094,0x00000093,0x00000092,0x0003003e,0x0000006f,0x00000094,0x000200f9,
-	0x00000079,0x000200f8,0x00000079,0x0004003d,0x00000006,0x00000096,0x0000006f,0x0004007c,
-	0x00000024,0x00000097,0x00000096,0x0003003e,0x00000095,0x00000097,0x0004003d,0x00000024,
-	0x0000009a,0x00000095,0x0004006f,0x0000000d,0x0000009b,0x0000009a,0x00050085,0x0000000d,
-	0x0000009c,0x00000099,0x0000009b,0x00050081,0x0000000d,0x0000009e,0x0000009c,0x0000009d,
-	0x0004003d,0x00000006,0x0000009f,0x00000068,0x00040070,0x0000000d,0x000000a0,0x0000009f,
-	0x00050088,0x0000000d,0x000000a1,0x0000009e,0x000000a0,0x0003003e,0x00000098,0x000000a1,
-	0x0004003d,0x0000000d,0x000000a2,0x00000098,0x000200fe,0x000000a2,0x00010038,0x00050036,
-	0x0000000d,0x00000015,0x00000000,0x00000013,0x00030037,0x00000012,0x00000014,0x000200f8,
-	0x00000016,0x0004003d,0x0000000d,0x000000a5,0x00000014,0x000200fe,0x000000a5,0x00010038,
-	0x00050036,0x00000006,0x0000001a,0x00000000,0x00000017,0x00030037,0x00000007,0x00000018,
-	0x00030037,0x00000012,0x00000019,0x000200f8,0x0000001b,0x0004003b,0x00000007,0x000000a8,
-	0x00000007,0x0004003d,0x0000000d,0x000000a9,0x00000019,0x0004007c,0x00000024,0x000000aa,
-	0x000000a9,0x0004007c,0x00000006,0x000000ab,0x000000aa,0x0003003e,0x000000a8,0x000000ab,
-	0x0004003d,0x00000006,0x000000ac,0x000000a8,0x000200fe,0x000000ac,0x00010038,0x00050036,
-	0x00000002,0x0000001e,0x00000000,0x0000001c,0x00030037,0x00000007,0x0000001d,0x000200f8,
-	0x0000001f,0x00050041,0x000000b6,0x000000b7,0x000000b5,0x00000084,0x0004003d,0x00000006,
-	0x000000b8,0x000000b7,0x00050041,0x00000026,0x000000b9,0x00000023,0x0000006b,0x0004003d,
-	0x00000006,0x000000ba,0x000000b9,0x00050086,0x00000006,0x000000bb,0x000000ba,0x00000058,
-	0x00050080,0x00000006,0x000000bc,0x000000b8,0x000000bb,0x0004003d,0x00000006,0x000000bd,
-	0x0000001d,0x00060041,0x0000005a,0x000000be,0x000000b2,0x00000056,0x000000bc,0x0003003e,
-	0x000000be,0x000000bd,0x000100fd,0x00010038
+	0x00000024,0x0000008c,0xffffffff,0x0004002b,0x0000000d,0x000000a0,0xbf800000,0x0003001d,
+	0x000000af,0x00000006,0x0003001e,0x000000b0,0x000000af,0x00040020,0x000000b1,0x00000002,
+	0x000000b0,0x0004003b,0x000000b1,0x000000b2,0x00000002,0x00040017,0x000000b3,0x00000006,
+	0x00000003,0x00040020,0x000000b4,0x00000001,0x000000b3,0x0004003b,0x000000b4,0x000000b5,
+	0x00000001,0x00040020,0x000000b6,0x00000001,0x00000006,0x0004002b,0x00000006,0x000000f1,
+	0x00000040,0x0006002c,0x000000b3,0x000000f2,0x000000f1,0x0000007f,0x0000007f,0x00050036,
+	0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000007,
+	0x000000c7,0x00000007,0x0004003b,0x00000007,0x000000c8,0x00000007,0x0004003b,0x00000007,
+	0x000000d0,0x00000007,0x0004003b,0x00000012,0x000000dd,0x00000007,0x0004003b,0x00000007,
+	0x000000de,0x00000007,0x0004003b,0x00000012,0x000000e1,0x00000007,0x0004003b,0x00000012,
+	0x000000e2,0x00000007,0x0004003b,0x00000007,0x000000e5,0x00000007,0x0004003b,0x00000012,
+	0x000000e7,0x00000007,0x0004003b,0x00000007,0x000000ee,0x00000007,0x00050041,0x000000b6,
+	0x000000bf,0x000000b5,0x00000084,0x0004003d,0x00000006,0x000000c0,0x000000bf,0x00050041,
+	0x00000026,0x000000c1,0x00000023,0x00000056,0x0004003d,0x00000006,0x000000c2,0x000000c1,
+	0x000500ae,0x00000045,0x000000c3,0x000000c0,0x000000c2,0x000300f7,0x000000c5,0x00000000,
+	0x000400fa,0x000000c3,0x000000c4,0x000000c5,0x000200f8,0x000000c4,0x000100fd,0x000200f8,
+	0x000000c5,0x0003003e,0x000000c7,0x00000084,0x0003003e,0x000000c8,0x00000084,0x000200f9,
+	0x000000c9,0x000200f8,0x000000c9,0x000400f6,0x000000cb,0x000000cc,0x00000000,0x000200f9,
+	0x000000cd,0x000200f8,0x000000cd,0x0004003d,0x00000006,0x000000ce,0x000000c8,0x000500b0,
+	0x00000045,0x000000cf,0x000000ce,0x0000007f,0x000400fa,0x000000cf,0x000000ca,0x000000cb,
+	0x000200f8,0x000000ca,0x00050041,0x000000b6,0x000000d1,0x000000b5,0x00000084,0x0004003d,
+	0x00000006,0x000000d2,0x000000d1,0x00050084,0x00000006,0x000000d3,0x000000d2,0x0000007f,
+	0x0004003d,0x00000006,0x000000d4,0x000000c8,0x00050080,0x00000006,0x000000d5,0x000000d3,
+	0x000000d4,0x0003003e,0x000000d0,0x000000d5,0x0004003d,0x00000006,0x000000d6,0x000000d0,
+	0x00050041,0x00000026,0x000000d7,0x00000023,0x0000007d,0x0004003d,0x00000006,0x000000d8,
+	0x000000d7,0x000500ae,0x00000045,0x000000d9,0x000000d6,0x000000d8,0x000300f7,0x000000db,
+	0x00000000,0x000400fa,0x000000d9,0x000000da,0x000000db,0x000200f8,0x000000da,0x000200f9,
+	0x000000cb,0x000200f8,0x000000db,0x0004003d,0x00000006,0x000000df,0x000000d0,0x0003003e,
+	0x000000de,0x000000df,0x00050039,0x0000000d,0x000000e0,0x00000010,0x000000de,0x0003003e,
+	0x000000dd,0x000000e0,0x0004003d,0x0000000d,0x000000e3,0x000000dd,0x0003003e,0x000000e2,
+	0x000000e3,0x00050039,0x0000000d,0x000000e4,0x00000015,0x000000e2,0x0003003e,0x000000e1,
+	0x000000e4,0x0004003d,0x00000006,0x000000e6,0x000000d0,0x0003003e,0x000000e5,0x000000e6,
+	0x0004003d,0x0000000d,0x000000e8,0x000000e1,0x0003003e,0x000000e7,0x000000e8,0x00060039,
+	0x00000006,0x000000e9,0x0000001a,0x000000e5,0x000000e7,0x0004003d,0x00000006,0x000000ea,
+	0x000000c7,0x000500c5,0x00000006,0x000000eb,0x000000ea,0x000000e9,0x0003003e,0x000000c7,
+	0x000000eb,0x000200f9,0x000000cc,0x000200f8,0x000000cc,0x0004003d,0x00000006,0x000000ec,
+	0x000000c8,0x00050080,0x00000006,0x000000ed,0x000000ec,0x0000007d,0x0003003e,0x000000c8,
+	0x000000ed,0x000200f9,0x000000c9,0x000200f8,0x000000cb,0x0004003d,0x00000006,0x000000ef,
+	0x000000c7,0x0003003e,0x000000ee,0x000000ef,0x00050039,0x00000002,0x000000f0,0x0000001e,
+	0x000000ee,0x000100fd,0x00010038,0x00050036,0x00000006,0x0000000b,0x00000000,0x00000008,
+	0x00030037,0x00000007,0x00000009,0x00030037,0x00000007,0x0000000a,0x000200f8,0x0000000c,
+	0x0004003d,0x00000006,0x00000020,0x00000009,0x00050041,0x00000026,0x00000027,0x00000023,
+	0x00000025,0x0004003d,0x00000006,0x00000028,0x00000027,0x00050084,0x00000006,0x00000029,
+	0x00000020,0x00000028,0x0004003d,0x00000006,0x0000002a,0x0000000a,0x00050041,0x00000026,
+	0x0000002c,0x00000023,0x0000002b,0x0004003d,0x00000006,0x0000002d,0x0000002c,0x00050084,
+	0x00000006,0x0000002e,0x0000002a,0x0000002d,0x00050080,0x00000006,0x0000002f,0x00000029,
+	0x0000002e,0x00050041,0x00000026,0x00000031,0x00000023,0x00000030,0x0004003d,0x00000006,
+	0x00000032,0x00000031,0x00050080,0x00000006,0x00000033,0x0000002f,0x00000032,0x000200fe,
+	0x00000033,0x00010038,0x00050036,0x0000000d,0x00000010,0x00000000,0x0000000e,0x00030037,
+	0x00000007,0x0000000f,0x000200f8,0x00000011,0x0004003b,0x00000007,0x00000036,0x00000007,
+	0x0004003b,0x00000007,0x0000003c,0x00000007,0x0004003b,0x00000007,0x0000004b,0x00000007,
+	0x0004003b,0x00000007,0x0000004c,0x00000007,0x0004003b,0x00000007,0x0000004e,0x00000007,
+	0x0004003b,0x00000007,0x00000051,0x00000007,0x0004003b,0x00000007,0x0000005d,0x00000007,
+	0x0004003b,0x00000007,0x00000064,0x00000007,0x0004003b,0x00000007,0x00000068,0x00000007,
+	0x0004003b,0x00000007,0x0000006f,0x00000007,0x0004003b,0x0000007a,0x0000007b,0x00000007,
+	0x0004003b,0x00000007,0x00000086,0x00000007,0x0004003b,0x00000088,0x00000089,0x00000007,
+	0x0004003b,0x00000088,0x00000095,0x00000007,0x0004003b,0x00000012,0x00000098,0x00000007,
+	0x0004003d,0x00000006,0x00000037,0x0000000f,0x00050041,0x00000026,0x00000039,0x00000023,
+	0x00000038,0x0004003d,0x00000006,0x0000003a,0x00000039,0x00050086,0x00000006,0x0000003b,
+	0x00000037,0x0000003a,0x0003003e,0x00000036,0x0000003b,0x0004003d,0x00000006,0x0000003d,
+	0x0000000f,0x00050041,0x00000026,0x0000003e,0x00000023,0x00000038,0x0004003d,0x00000006,
+	0x0000003f,0x0000003e,0x00050089,0x00000006,0x00000040,0x0000003d,0x0000003f,0x0003003e,
+	0x0000003c,0x00000040,0x0004003d,0x00000006,0x00000041,0x0000003c,0x00050041,0x00000026,
+	0x00000043,0x00000023,0x00000042,0x0004003d,0x00000006,0x00000044,0x00000043,0x000500ae,
+	0x00000045,0x00000046,0x00000041,0x00000044,0x000300f7,0x00000048,0x00000000,0x000400fa,
+	0x00000046,0x00000047,0x00000048,0x000200f8,0x00000047,0x000200fe,0x00000049,0x000200f8,
+	0x00000048,0x0004003d,0x00000006,0x0000004d,0x00000036,0x0003003e,0x0000004c,0x0000004d,
+	0x0004003d,0x00000006,0x0000004f,0x0000003c,0x0003003e,0x0000004e,0x0000004f,0x00060039,
+	0x00000006,0x00000050,0x0000000b,0x0000004c,0x0000004e,0x0003003e,0x0000004b,0x00000050,
+	0x0004003d,0x00000006,0x00000057,0x0000004b,0x00050086,0x00000006,0x00000059,0x00000057,
+	0x00000058,0x00060041,0x0000005a,0x0000005b,0x00000055,0x00000056,0x00000059,0x0004003d,
+	0x00000006,0x0000005c,0x0000005b,0x0003003e,0x00000051,0x0000005c,0x0004003d,0x00000006,
+	0x0000005e,0x0000003c,0x000500aa,0x00000045,0x00000060,0x0000005e,0x0000005f,0x000600a9,
+	0x00000024,0x00000062,0x00000060,0x00000030,0x00000061,0x0004007c,0x00000006,0x00000063,
+	0x00000062,0x0003003e,0x0000005d,0x00000063,0x0004003d,0x00000006,0x00000066,0x0000003c,
+	0x00050084,0x00000006,0x00000067,0x00000065,0x00000066,0x0003003e,0x00000064,0x00000067,
+	0x0004003d,0x00000006,0x00000069,0x0000003c,0x000500aa,0x00000045,0x0000006a,0x00000069,
+	0x0000005f,0x000600a9,0x00000024,0x0000006d,0x0000006a,0x0000006b,0x0000006c,0x0004007c,
+	0x00000006,0x0000006e,0x0000006d,0x0003003e,0x00000068,0x0000006e,0x0004003d,0x00000006,
+	0x00000070,0x00000051,0x0004003d,0x00000006,0x00000071,0x00000064,0x000500c2,0x00000006,
+	0x00000072,0x00000070,0x00000071,0x0004003d,0x00000006,0x00000073,0x00000068,0x000500c7,
+	0x00000006,0x00000074,0x00000072,0x00000073,0x0003003e,0x0000006f,0x00000074,0x0004003d,
+	0x00000006,0x00000075,0x0000005d,0x000500b0,0x00000045,0x00000077,0x00000075,0x00000076,
+	0x000300f7,0x00000079,0x00000000,0x000400fa,0x00000077,0x00000078,0x00000079,0x000200f8,
+	0x00000078,0x0004003d,0x00000006,0x0000007c,0x0000006f,0x0004003d,0x00000006,0x0000007e,
+	0x0000005d,0x00050082,0x00000006,0x00000080,0x0000007e,0x0000007f,0x000500c4,0x00000024,
+	0x00000081,0x0000007d,0x00000080,0x0004007c,0x00000006,0x00000082,0x00000081,0x000500c7,
+	0x00000006,0x00000083,0x0000007c,0x00000082,0x000500ab,0x00000045,0x00000085,0x00000083,
+	0x00000084,0x0003003e,0x0000007b,0x00000085,0x0004003d,0x00000045,0x00000087,0x0000007b,
+	0x000300f7,0x0000008b,0x00000000,0x000400fa,0x00000087,0x0000008a,0x0000008f,0x000200f8,
+	0x0000008a,0x0004003d,0x00000006,0x0000008d,0x0000005d,0x000500c4,0x00000024,0x0000008e,
+	0x0000008c,0x0000008d,0x0003003e,0x00000089,0x0000008e,0x000200f9,0x0000008b,0x000200f8,
+	0x0000008f,0x0003003e,0x00000089,0x00000056,0x000200f9,0x0000008b,0x000200f8,0x0000008b,
+	0x0004003d,0x00000024,0x00000090,0x00000089,0x0004007c,0x00000006,0x00000091,0x00000090,
+	0x0003003e,0x00000086,0x00000091,0x0004003d,0x00000006,0x00000092,0x00000086,0x0004003d,
+	0x00000006,0x00000093,0x0000006f,0x000500c5,0x00000006,0x00000094,0x00000093,0x00000092,
+	0x0003003e,0x0000006f,0x00000094,0x000200f9,0x00000079,0x000200f8,0x00000079,0x0004003d,
+	0x00000006,0x00000096,0x0000006f,0x0004007c,0x00000024,0x00000097,0x00000096,0x0003003e,
+	0x00000095,0x00000097,0x0004003d,0x00000024,0x00000099,0x00000095,0x0004006f,0x0000000d,
+	0x0000009a,0x00000099,0x0004003d,0x00000006,0x0000009b,0x00000068,0x000500c2,0x00000006,
+	0x0000009c,0x0000009b,0x0000007d,0x00040070,0x0000000d,0x0000009d,0x0000009c,0x00050088,
+	0x0000000d,0x0000009e,0x0000009a,0x0000009d,0x0003003e,0x00000098,0x0000009e,0x0004003d,
+	0x0000000d,0x0000009f,0x00000098,0x0007000c,0x0000000d,0x000000a1,0x00000001,0x00000028,
+	0x0000009f,0x000000a0,0x0003003e,0x00000098,0x000000a1,0x0004003d,0x0000000d,0x000000a2,
+	0x00000098,0x000200fe,0x000000a2,0x00010038,0x00050036,0x0000000d,0x00000015,0x00000000,
+	0x00000013,0x00030037,0x00000012,0x00000014,0x000200f8,0x00000016,0x0004003d,0x0000000d,
+	0x000000a5,0x00000014,0x000200fe,0x000000a5,0x00010038,0x00050036,0x00000006,0x0000001a,
+	0x00000000,0x00000017,0x00030037,0x00000007,0x00000018,0x00030037,0x00000012,0x00000019,
+	0x000200f8,0x0000001b,0x0004003b,0x00000007,0x000000a8,0x00000007,0x0004003d,0x0000000d,
+	0x000000a9,0x00000019,0x0004007c,0x00000024,0x000000aa,0x000000a9,0x0004007c,0x00000006,
+	0x000000ab,0x000000aa,0x0003003e,0x000000a8,0x000000ab,0x0004003d,0x00000006,0x000000ac,
+	0x000000a8,0x000200fe,0x000000ac,0x00010038,0x00050036,0x00000002,0x0000001e,0x00000000,
+	0x0000001c,0x00030037,0x00000007,0x0000001d,0x000200f8,0x0000001f,0x00050041,0x000000b6,
+	0x000000b7,0x000000b5,0x00000084,0x0004003d,0x00000006,0x000000b8,0x000000b7,0x00050041,
+	0x00000026,0x000000b9,0x00000023,0x0000006b,0x0004003d,0x00000006,0x000000ba,0x000000b9,
+	0x00050086,0x00000006,0x000000bb,0x000000ba,0x00000058,0x00050080,0x00000006,0x000000bc,
+	0x000000b8,0x000000bb,0x0004003d,0x00000006,0x000000bd,0x0000001d,0x00060041,0x0000005a,
+	0x000000be,0x000000b2,0x00000056,0x000000bc,0x0003003e,0x000000be,0x000000bd,0x000100fd,
+	0x00010038
 };
 
 // Generated from:
@@ -278,7 +279,8 @@
 //         valueAsUint |= signExtension;
 //     }
 //     int valueAsInt = int(valueAsUint);
-//           float value =(2 * float(valueAsInt)+ 1)/ valueMask;
+//           float value = float(valueAsInt)/(valueMask >> 1);
+//     value = max(value, float(- 1));
 //
 //     return value;
 // }
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000019.inc b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000019.inc
index c6c514a..ac22c57 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000019.inc
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000019.inc
@@ -76,116 +76,116 @@
 	0x00000006,0x00000076,0x00000020,0x00040020,0x0000007a,0x00000007,0x00000045,0x0004002b,
 	0x00000024,0x0000007d,0x00000001,0x0004002b,0x00000006,0x0000007f,0x00000001,0x0004002b,
 	0x00000006,0x00000084,0x00000000,0x00040020,0x00000088,0x00000007,0x00000024,0x0004002b,
-	0x00000024,0x0000008c,0xffffffff,0x0004002b,0x0000000d,0x00000099,0x40000000,0x0004002b,
-	0x0000000d,0x0000009d,0x3f800000,0x0003001d,0x000000af,0x00000006,0x0003001e,0x000000b0,
-	0x000000af,0x00040020,0x000000b1,0x00000002,0x000000b0,0x0004003b,0x000000b1,0x000000b2,
-	0x00000002,0x00040017,0x000000b3,0x00000006,0x00000003,0x00040020,0x000000b4,0x00000001,
-	0x000000b3,0x0004003b,0x000000b4,0x000000b5,0x00000001,0x00040020,0x000000b6,0x00000001,
-	0x00000006,0x0004002b,0x00000006,0x000000e2,0x00000040,0x0006002c,0x000000b3,0x000000e3,
-	0x000000e2,0x0000007f,0x0000007f,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,
-	0x000200f8,0x00000005,0x0004003b,0x00000007,0x000000bf,0x00000007,0x0004003b,0x00000007,
-	0x000000c0,0x00000007,0x0004003b,0x00000007,0x000000c8,0x00000007,0x0004003b,0x00000012,
-	0x000000ce,0x00000007,0x0004003b,0x00000007,0x000000cf,0x00000007,0x0004003b,0x00000012,
-	0x000000d2,0x00000007,0x0004003b,0x00000012,0x000000d3,0x00000007,0x0004003b,0x00000007,
-	0x000000d6,0x00000007,0x0004003b,0x00000012,0x000000d8,0x00000007,0x0004003b,0x00000007,
-	0x000000df,0x00000007,0x0003003e,0x000000bf,0x00000084,0x0003003e,0x000000c0,0x00000084,
-	0x000200f9,0x000000c1,0x000200f8,0x000000c1,0x000400f6,0x000000c3,0x000000c4,0x00000000,
-	0x000200f9,0x000000c5,0x000200f8,0x000000c5,0x0004003d,0x00000006,0x000000c6,0x000000c0,
-	0x000500b0,0x00000045,0x000000c7,0x000000c6,0x0000007f,0x000400fa,0x000000c7,0x000000c2,
-	0x000000c3,0x000200f8,0x000000c2,0x00050041,0x000000b6,0x000000c9,0x000000b5,0x00000084,
-	0x0004003d,0x00000006,0x000000ca,0x000000c9,0x00050084,0x00000006,0x000000cb,0x000000ca,
-	0x0000007f,0x0004003d,0x00000006,0x000000cc,0x000000c0,0x00050080,0x00000006,0x000000cd,
-	0x000000cb,0x000000cc,0x0003003e,0x000000c8,0x000000cd,0x0004003d,0x00000006,0x000000d0,
-	0x000000c8,0x0003003e,0x000000cf,0x000000d0,0x00050039,0x0000000d,0x000000d1,0x00000010,
-	0x000000cf,0x0003003e,0x000000ce,0x000000d1,0x0004003d,0x0000000d,0x000000d4,0x000000ce,
-	0x0003003e,0x000000d3,0x000000d4,0x00050039,0x0000000d,0x000000d5,0x00000015,0x000000d3,
-	0x0003003e,0x000000d2,0x000000d5,0x0004003d,0x00000006,0x000000d7,0x000000c8,0x0003003e,
-	0x000000d6,0x000000d7,0x0004003d,0x0000000d,0x000000d9,0x000000d2,0x0003003e,0x000000d8,
-	0x000000d9,0x00060039,0x00000006,0x000000da,0x0000001a,0x000000d6,0x000000d8,0x0004003d,
-	0x00000006,0x000000db,0x000000bf,0x000500c5,0x00000006,0x000000dc,0x000000db,0x000000da,
-	0x0003003e,0x000000bf,0x000000dc,0x000200f9,0x000000c4,0x000200f8,0x000000c4,0x0004003d,
-	0x00000006,0x000000dd,0x000000c0,0x00050080,0x00000006,0x000000de,0x000000dd,0x0000007d,
-	0x0003003e,0x000000c0,0x000000de,0x000200f9,0x000000c1,0x000200f8,0x000000c3,0x0004003d,
-	0x00000006,0x000000e0,0x000000bf,0x0003003e,0x000000df,0x000000e0,0x00050039,0x00000002,
-	0x000000e1,0x0000001e,0x000000df,0x000100fd,0x00010038,0x00050036,0x00000006,0x0000000b,
-	0x00000000,0x00000008,0x00030037,0x00000007,0x00000009,0x00030037,0x00000007,0x0000000a,
-	0x000200f8,0x0000000c,0x0004003d,0x00000006,0x00000020,0x00000009,0x00050041,0x00000026,
-	0x00000027,0x00000023,0x00000025,0x0004003d,0x00000006,0x00000028,0x00000027,0x00050084,
-	0x00000006,0x00000029,0x00000020,0x00000028,0x0004003d,0x00000006,0x0000002a,0x0000000a,
-	0x00050041,0x00000026,0x0000002c,0x00000023,0x0000002b,0x0004003d,0x00000006,0x0000002d,
-	0x0000002c,0x00050084,0x00000006,0x0000002e,0x0000002a,0x0000002d,0x00050080,0x00000006,
-	0x0000002f,0x00000029,0x0000002e,0x00050041,0x00000026,0x00000031,0x00000023,0x00000030,
-	0x0004003d,0x00000006,0x00000032,0x00000031,0x00050080,0x00000006,0x00000033,0x0000002f,
-	0x00000032,0x000200fe,0x00000033,0x00010038,0x00050036,0x0000000d,0x00000010,0x00000000,
-	0x0000000e,0x00030037,0x00000007,0x0000000f,0x000200f8,0x00000011,0x0004003b,0x00000007,
-	0x00000036,0x00000007,0x0004003b,0x00000007,0x0000003c,0x00000007,0x0004003b,0x00000007,
-	0x0000004b,0x00000007,0x0004003b,0x00000007,0x0000004c,0x00000007,0x0004003b,0x00000007,
-	0x0000004e,0x00000007,0x0004003b,0x00000007,0x00000051,0x00000007,0x0004003b,0x00000007,
-	0x0000005d,0x00000007,0x0004003b,0x00000007,0x00000064,0x00000007,0x0004003b,0x00000007,
-	0x00000068,0x00000007,0x0004003b,0x00000007,0x0000006f,0x00000007,0x0004003b,0x0000007a,
-	0x0000007b,0x00000007,0x0004003b,0x00000007,0x00000086,0x00000007,0x0004003b,0x00000088,
-	0x00000089,0x00000007,0x0004003b,0x00000088,0x00000095,0x00000007,0x0004003b,0x00000012,
-	0x00000098,0x00000007,0x0004003d,0x00000006,0x00000037,0x0000000f,0x00050041,0x00000026,
-	0x00000039,0x00000023,0x00000038,0x0004003d,0x00000006,0x0000003a,0x00000039,0x00050086,
-	0x00000006,0x0000003b,0x00000037,0x0000003a,0x0003003e,0x00000036,0x0000003b,0x0004003d,
-	0x00000006,0x0000003d,0x0000000f,0x00050041,0x00000026,0x0000003e,0x00000023,0x00000038,
-	0x0004003d,0x00000006,0x0000003f,0x0000003e,0x00050089,0x00000006,0x00000040,0x0000003d,
-	0x0000003f,0x0003003e,0x0000003c,0x00000040,0x0004003d,0x00000006,0x00000041,0x0000003c,
-	0x00050041,0x00000026,0x00000043,0x00000023,0x00000042,0x0004003d,0x00000006,0x00000044,
-	0x00000043,0x000500ae,0x00000045,0x00000046,0x00000041,0x00000044,0x000300f7,0x00000048,
-	0x00000000,0x000400fa,0x00000046,0x00000047,0x00000048,0x000200f8,0x00000047,0x000200fe,
-	0x00000049,0x000200f8,0x00000048,0x0004003d,0x00000006,0x0000004d,0x00000036,0x0003003e,
-	0x0000004c,0x0000004d,0x0004003d,0x00000006,0x0000004f,0x0000003c,0x0003003e,0x0000004e,
-	0x0000004f,0x00060039,0x00000006,0x00000050,0x0000000b,0x0000004c,0x0000004e,0x0003003e,
-	0x0000004b,0x00000050,0x0004003d,0x00000006,0x00000057,0x0000004b,0x00050086,0x00000006,
-	0x00000059,0x00000057,0x00000058,0x00060041,0x0000005a,0x0000005b,0x00000055,0x00000056,
-	0x00000059,0x0004003d,0x00000006,0x0000005c,0x0000005b,0x0003003e,0x00000051,0x0000005c,
-	0x0004003d,0x00000006,0x0000005e,0x0000003c,0x000500aa,0x00000045,0x00000060,0x0000005e,
-	0x0000005f,0x000600a9,0x00000024,0x00000062,0x00000060,0x00000030,0x00000061,0x0004007c,
-	0x00000006,0x00000063,0x00000062,0x0003003e,0x0000005d,0x00000063,0x0004003d,0x00000006,
-	0x00000066,0x0000003c,0x00050084,0x00000006,0x00000067,0x00000065,0x00000066,0x0003003e,
-	0x00000064,0x00000067,0x0004003d,0x00000006,0x00000069,0x0000003c,0x000500aa,0x00000045,
-	0x0000006a,0x00000069,0x0000005f,0x000600a9,0x00000024,0x0000006d,0x0000006a,0x0000006b,
-	0x0000006c,0x0004007c,0x00000006,0x0000006e,0x0000006d,0x0003003e,0x00000068,0x0000006e,
-	0x0004003d,0x00000006,0x00000070,0x00000051,0x0004003d,0x00000006,0x00000071,0x00000064,
-	0x000500c2,0x00000006,0x00000072,0x00000070,0x00000071,0x0004003d,0x00000006,0x00000073,
-	0x00000068,0x000500c7,0x00000006,0x00000074,0x00000072,0x00000073,0x0003003e,0x0000006f,
-	0x00000074,0x0004003d,0x00000006,0x00000075,0x0000005d,0x000500b0,0x00000045,0x00000077,
-	0x00000075,0x00000076,0x000300f7,0x00000079,0x00000000,0x000400fa,0x00000077,0x00000078,
-	0x00000079,0x000200f8,0x00000078,0x0004003d,0x00000006,0x0000007c,0x0000006f,0x0004003d,
-	0x00000006,0x0000007e,0x0000005d,0x00050082,0x00000006,0x00000080,0x0000007e,0x0000007f,
-	0x000500c4,0x00000024,0x00000081,0x0000007d,0x00000080,0x0004007c,0x00000006,0x00000082,
-	0x00000081,0x000500c7,0x00000006,0x00000083,0x0000007c,0x00000082,0x000500ab,0x00000045,
-	0x00000085,0x00000083,0x00000084,0x0003003e,0x0000007b,0x00000085,0x0004003d,0x00000045,
-	0x00000087,0x0000007b,0x000300f7,0x0000008b,0x00000000,0x000400fa,0x00000087,0x0000008a,
-	0x0000008f,0x000200f8,0x0000008a,0x0004003d,0x00000006,0x0000008d,0x0000005d,0x000500c4,
-	0x00000024,0x0000008e,0x0000008c,0x0000008d,0x0003003e,0x00000089,0x0000008e,0x000200f9,
-	0x0000008b,0x000200f8,0x0000008f,0x0003003e,0x00000089,0x00000056,0x000200f9,0x0000008b,
-	0x000200f8,0x0000008b,0x0004003d,0x00000024,0x00000090,0x00000089,0x0004007c,0x00000006,
-	0x00000091,0x00000090,0x0003003e,0x00000086,0x00000091,0x0004003d,0x00000006,0x00000092,
-	0x00000086,0x0004003d,0x00000006,0x00000093,0x0000006f,0x000500c5,0x00000006,0x00000094,
-	0x00000093,0x00000092,0x0003003e,0x0000006f,0x00000094,0x000200f9,0x00000079,0x000200f8,
-	0x00000079,0x0004003d,0x00000006,0x00000096,0x0000006f,0x0004007c,0x00000024,0x00000097,
-	0x00000096,0x0003003e,0x00000095,0x00000097,0x0004003d,0x00000024,0x0000009a,0x00000095,
-	0x0004006f,0x0000000d,0x0000009b,0x0000009a,0x00050085,0x0000000d,0x0000009c,0x00000099,
-	0x0000009b,0x00050081,0x0000000d,0x0000009e,0x0000009c,0x0000009d,0x0004003d,0x00000006,
-	0x0000009f,0x00000068,0x00040070,0x0000000d,0x000000a0,0x0000009f,0x00050088,0x0000000d,
-	0x000000a1,0x0000009e,0x000000a0,0x0003003e,0x00000098,0x000000a1,0x0004003d,0x0000000d,
-	0x000000a2,0x00000098,0x000200fe,0x000000a2,0x00010038,0x00050036,0x0000000d,0x00000015,
-	0x00000000,0x00000013,0x00030037,0x00000012,0x00000014,0x000200f8,0x00000016,0x0004003d,
-	0x0000000d,0x000000a5,0x00000014,0x000200fe,0x000000a5,0x00010038,0x00050036,0x00000006,
-	0x0000001a,0x00000000,0x00000017,0x00030037,0x00000007,0x00000018,0x00030037,0x00000012,
-	0x00000019,0x000200f8,0x0000001b,0x0004003b,0x00000007,0x000000a8,0x00000007,0x0004003d,
-	0x0000000d,0x000000a9,0x00000019,0x0004007c,0x00000024,0x000000aa,0x000000a9,0x0004007c,
-	0x00000006,0x000000ab,0x000000aa,0x0003003e,0x000000a8,0x000000ab,0x0004003d,0x00000006,
-	0x000000ac,0x000000a8,0x000200fe,0x000000ac,0x00010038,0x00050036,0x00000002,0x0000001e,
-	0x00000000,0x0000001c,0x00030037,0x00000007,0x0000001d,0x000200f8,0x0000001f,0x00050041,
-	0x000000b6,0x000000b7,0x000000b5,0x00000084,0x0004003d,0x00000006,0x000000b8,0x000000b7,
-	0x00050041,0x00000026,0x000000b9,0x00000023,0x0000006b,0x0004003d,0x00000006,0x000000ba,
-	0x000000b9,0x00050086,0x00000006,0x000000bb,0x000000ba,0x00000058,0x00050080,0x00000006,
-	0x000000bc,0x000000b8,0x000000bb,0x0004003d,0x00000006,0x000000bd,0x0000001d,0x00060041,
-	0x0000005a,0x000000be,0x000000b2,0x00000056,0x000000bc,0x0003003e,0x000000be,0x000000bd,
-	0x000100fd,0x00010038
+	0x00000024,0x0000008c,0xffffffff,0x0004002b,0x0000000d,0x000000a0,0xbf800000,0x0003001d,
+	0x000000af,0x00000006,0x0003001e,0x000000b0,0x000000af,0x00040020,0x000000b1,0x00000002,
+	0x000000b0,0x0004003b,0x000000b1,0x000000b2,0x00000002,0x00040017,0x000000b3,0x00000006,
+	0x00000003,0x00040020,0x000000b4,0x00000001,0x000000b3,0x0004003b,0x000000b4,0x000000b5,
+	0x00000001,0x00040020,0x000000b6,0x00000001,0x00000006,0x0004002b,0x00000006,0x000000e2,
+	0x00000040,0x0006002c,0x000000b3,0x000000e3,0x000000e2,0x0000007f,0x0000007f,0x00050036,
+	0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000007,
+	0x000000bf,0x00000007,0x0004003b,0x00000007,0x000000c0,0x00000007,0x0004003b,0x00000007,
+	0x000000c8,0x00000007,0x0004003b,0x00000012,0x000000ce,0x00000007,0x0004003b,0x00000007,
+	0x000000cf,0x00000007,0x0004003b,0x00000012,0x000000d2,0x00000007,0x0004003b,0x00000012,
+	0x000000d3,0x00000007,0x0004003b,0x00000007,0x000000d6,0x00000007,0x0004003b,0x00000012,
+	0x000000d8,0x00000007,0x0004003b,0x00000007,0x000000df,0x00000007,0x0003003e,0x000000bf,
+	0x00000084,0x0003003e,0x000000c0,0x00000084,0x000200f9,0x000000c1,0x000200f8,0x000000c1,
+	0x000400f6,0x000000c3,0x000000c4,0x00000000,0x000200f9,0x000000c5,0x000200f8,0x000000c5,
+	0x0004003d,0x00000006,0x000000c6,0x000000c0,0x000500b0,0x00000045,0x000000c7,0x000000c6,
+	0x0000007f,0x000400fa,0x000000c7,0x000000c2,0x000000c3,0x000200f8,0x000000c2,0x00050041,
+	0x000000b6,0x000000c9,0x000000b5,0x00000084,0x0004003d,0x00000006,0x000000ca,0x000000c9,
+	0x00050084,0x00000006,0x000000cb,0x000000ca,0x0000007f,0x0004003d,0x00000006,0x000000cc,
+	0x000000c0,0x00050080,0x00000006,0x000000cd,0x000000cb,0x000000cc,0x0003003e,0x000000c8,
+	0x000000cd,0x0004003d,0x00000006,0x000000d0,0x000000c8,0x0003003e,0x000000cf,0x000000d0,
+	0x00050039,0x0000000d,0x000000d1,0x00000010,0x000000cf,0x0003003e,0x000000ce,0x000000d1,
+	0x0004003d,0x0000000d,0x000000d4,0x000000ce,0x0003003e,0x000000d3,0x000000d4,0x00050039,
+	0x0000000d,0x000000d5,0x00000015,0x000000d3,0x0003003e,0x000000d2,0x000000d5,0x0004003d,
+	0x00000006,0x000000d7,0x000000c8,0x0003003e,0x000000d6,0x000000d7,0x0004003d,0x0000000d,
+	0x000000d9,0x000000d2,0x0003003e,0x000000d8,0x000000d9,0x00060039,0x00000006,0x000000da,
+	0x0000001a,0x000000d6,0x000000d8,0x0004003d,0x00000006,0x000000db,0x000000bf,0x000500c5,
+	0x00000006,0x000000dc,0x000000db,0x000000da,0x0003003e,0x000000bf,0x000000dc,0x000200f9,
+	0x000000c4,0x000200f8,0x000000c4,0x0004003d,0x00000006,0x000000dd,0x000000c0,0x00050080,
+	0x00000006,0x000000de,0x000000dd,0x0000007d,0x0003003e,0x000000c0,0x000000de,0x000200f9,
+	0x000000c1,0x000200f8,0x000000c3,0x0004003d,0x00000006,0x000000e0,0x000000bf,0x0003003e,
+	0x000000df,0x000000e0,0x00050039,0x00000002,0x000000e1,0x0000001e,0x000000df,0x000100fd,
+	0x00010038,0x00050036,0x00000006,0x0000000b,0x00000000,0x00000008,0x00030037,0x00000007,
+	0x00000009,0x00030037,0x00000007,0x0000000a,0x000200f8,0x0000000c,0x0004003d,0x00000006,
+	0x00000020,0x00000009,0x00050041,0x00000026,0x00000027,0x00000023,0x00000025,0x0004003d,
+	0x00000006,0x00000028,0x00000027,0x00050084,0x00000006,0x00000029,0x00000020,0x00000028,
+	0x0004003d,0x00000006,0x0000002a,0x0000000a,0x00050041,0x00000026,0x0000002c,0x00000023,
+	0x0000002b,0x0004003d,0x00000006,0x0000002d,0x0000002c,0x00050084,0x00000006,0x0000002e,
+	0x0000002a,0x0000002d,0x00050080,0x00000006,0x0000002f,0x00000029,0x0000002e,0x00050041,
+	0x00000026,0x00000031,0x00000023,0x00000030,0x0004003d,0x00000006,0x00000032,0x00000031,
+	0x00050080,0x00000006,0x00000033,0x0000002f,0x00000032,0x000200fe,0x00000033,0x00010038,
+	0x00050036,0x0000000d,0x00000010,0x00000000,0x0000000e,0x00030037,0x00000007,0x0000000f,
+	0x000200f8,0x00000011,0x0004003b,0x00000007,0x00000036,0x00000007,0x0004003b,0x00000007,
+	0x0000003c,0x00000007,0x0004003b,0x00000007,0x0000004b,0x00000007,0x0004003b,0x00000007,
+	0x0000004c,0x00000007,0x0004003b,0x00000007,0x0000004e,0x00000007,0x0004003b,0x00000007,
+	0x00000051,0x00000007,0x0004003b,0x00000007,0x0000005d,0x00000007,0x0004003b,0x00000007,
+	0x00000064,0x00000007,0x0004003b,0x00000007,0x00000068,0x00000007,0x0004003b,0x00000007,
+	0x0000006f,0x00000007,0x0004003b,0x0000007a,0x0000007b,0x00000007,0x0004003b,0x00000007,
+	0x00000086,0x00000007,0x0004003b,0x00000088,0x00000089,0x00000007,0x0004003b,0x00000088,
+	0x00000095,0x00000007,0x0004003b,0x00000012,0x00000098,0x00000007,0x0004003d,0x00000006,
+	0x00000037,0x0000000f,0x00050041,0x00000026,0x00000039,0x00000023,0x00000038,0x0004003d,
+	0x00000006,0x0000003a,0x00000039,0x00050086,0x00000006,0x0000003b,0x00000037,0x0000003a,
+	0x0003003e,0x00000036,0x0000003b,0x0004003d,0x00000006,0x0000003d,0x0000000f,0x00050041,
+	0x00000026,0x0000003e,0x00000023,0x00000038,0x0004003d,0x00000006,0x0000003f,0x0000003e,
+	0x00050089,0x00000006,0x00000040,0x0000003d,0x0000003f,0x0003003e,0x0000003c,0x00000040,
+	0x0004003d,0x00000006,0x00000041,0x0000003c,0x00050041,0x00000026,0x00000043,0x00000023,
+	0x00000042,0x0004003d,0x00000006,0x00000044,0x00000043,0x000500ae,0x00000045,0x00000046,
+	0x00000041,0x00000044,0x000300f7,0x00000048,0x00000000,0x000400fa,0x00000046,0x00000047,
+	0x00000048,0x000200f8,0x00000047,0x000200fe,0x00000049,0x000200f8,0x00000048,0x0004003d,
+	0x00000006,0x0000004d,0x00000036,0x0003003e,0x0000004c,0x0000004d,0x0004003d,0x00000006,
+	0x0000004f,0x0000003c,0x0003003e,0x0000004e,0x0000004f,0x00060039,0x00000006,0x00000050,
+	0x0000000b,0x0000004c,0x0000004e,0x0003003e,0x0000004b,0x00000050,0x0004003d,0x00000006,
+	0x00000057,0x0000004b,0x00050086,0x00000006,0x00000059,0x00000057,0x00000058,0x00060041,
+	0x0000005a,0x0000005b,0x00000055,0x00000056,0x00000059,0x0004003d,0x00000006,0x0000005c,
+	0x0000005b,0x0003003e,0x00000051,0x0000005c,0x0004003d,0x00000006,0x0000005e,0x0000003c,
+	0x000500aa,0x00000045,0x00000060,0x0000005e,0x0000005f,0x000600a9,0x00000024,0x00000062,
+	0x00000060,0x00000030,0x00000061,0x0004007c,0x00000006,0x00000063,0x00000062,0x0003003e,
+	0x0000005d,0x00000063,0x0004003d,0x00000006,0x00000066,0x0000003c,0x00050084,0x00000006,
+	0x00000067,0x00000065,0x00000066,0x0003003e,0x00000064,0x00000067,0x0004003d,0x00000006,
+	0x00000069,0x0000003c,0x000500aa,0x00000045,0x0000006a,0x00000069,0x0000005f,0x000600a9,
+	0x00000024,0x0000006d,0x0000006a,0x0000006b,0x0000006c,0x0004007c,0x00000006,0x0000006e,
+	0x0000006d,0x0003003e,0x00000068,0x0000006e,0x0004003d,0x00000006,0x00000070,0x00000051,
+	0x0004003d,0x00000006,0x00000071,0x00000064,0x000500c2,0x00000006,0x00000072,0x00000070,
+	0x00000071,0x0004003d,0x00000006,0x00000073,0x00000068,0x000500c7,0x00000006,0x00000074,
+	0x00000072,0x00000073,0x0003003e,0x0000006f,0x00000074,0x0004003d,0x00000006,0x00000075,
+	0x0000005d,0x000500b0,0x00000045,0x00000077,0x00000075,0x00000076,0x000300f7,0x00000079,
+	0x00000000,0x000400fa,0x00000077,0x00000078,0x00000079,0x000200f8,0x00000078,0x0004003d,
+	0x00000006,0x0000007c,0x0000006f,0x0004003d,0x00000006,0x0000007e,0x0000005d,0x00050082,
+	0x00000006,0x00000080,0x0000007e,0x0000007f,0x000500c4,0x00000024,0x00000081,0x0000007d,
+	0x00000080,0x0004007c,0x00000006,0x00000082,0x00000081,0x000500c7,0x00000006,0x00000083,
+	0x0000007c,0x00000082,0x000500ab,0x00000045,0x00000085,0x00000083,0x00000084,0x0003003e,
+	0x0000007b,0x00000085,0x0004003d,0x00000045,0x00000087,0x0000007b,0x000300f7,0x0000008b,
+	0x00000000,0x000400fa,0x00000087,0x0000008a,0x0000008f,0x000200f8,0x0000008a,0x0004003d,
+	0x00000006,0x0000008d,0x0000005d,0x000500c4,0x00000024,0x0000008e,0x0000008c,0x0000008d,
+	0x0003003e,0x00000089,0x0000008e,0x000200f9,0x0000008b,0x000200f8,0x0000008f,0x0003003e,
+	0x00000089,0x00000056,0x000200f9,0x0000008b,0x000200f8,0x0000008b,0x0004003d,0x00000024,
+	0x00000090,0x00000089,0x0004007c,0x00000006,0x00000091,0x00000090,0x0003003e,0x00000086,
+	0x00000091,0x0004003d,0x00000006,0x00000092,0x00000086,0x0004003d,0x00000006,0x00000093,
+	0x0000006f,0x000500c5,0x00000006,0x00000094,0x00000093,0x00000092,0x0003003e,0x0000006f,
+	0x00000094,0x000200f9,0x00000079,0x000200f8,0x00000079,0x0004003d,0x00000006,0x00000096,
+	0x0000006f,0x0004007c,0x00000024,0x00000097,0x00000096,0x0003003e,0x00000095,0x00000097,
+	0x0004003d,0x00000024,0x00000099,0x00000095,0x0004006f,0x0000000d,0x0000009a,0x00000099,
+	0x0004003d,0x00000006,0x0000009b,0x00000068,0x000500c2,0x00000006,0x0000009c,0x0000009b,
+	0x0000007d,0x00040070,0x0000000d,0x0000009d,0x0000009c,0x00050088,0x0000000d,0x0000009e,
+	0x0000009a,0x0000009d,0x0003003e,0x00000098,0x0000009e,0x0004003d,0x0000000d,0x0000009f,
+	0x00000098,0x0007000c,0x0000000d,0x000000a1,0x00000001,0x00000028,0x0000009f,0x000000a0,
+	0x0003003e,0x00000098,0x000000a1,0x0004003d,0x0000000d,0x000000a2,0x00000098,0x000200fe,
+	0x000000a2,0x00010038,0x00050036,0x0000000d,0x00000015,0x00000000,0x00000013,0x00030037,
+	0x00000012,0x00000014,0x000200f8,0x00000016,0x0004003d,0x0000000d,0x000000a5,0x00000014,
+	0x000200fe,0x000000a5,0x00010038,0x00050036,0x00000006,0x0000001a,0x00000000,0x00000017,
+	0x00030037,0x00000007,0x00000018,0x00030037,0x00000012,0x00000019,0x000200f8,0x0000001b,
+	0x0004003b,0x00000007,0x000000a8,0x00000007,0x0004003d,0x0000000d,0x000000a9,0x00000019,
+	0x0004007c,0x00000024,0x000000aa,0x000000a9,0x0004007c,0x00000006,0x000000ab,0x000000aa,
+	0x0003003e,0x000000a8,0x000000ab,0x0004003d,0x00000006,0x000000ac,0x000000a8,0x000200fe,
+	0x000000ac,0x00010038,0x00050036,0x00000002,0x0000001e,0x00000000,0x0000001c,0x00030037,
+	0x00000007,0x0000001d,0x000200f8,0x0000001f,0x00050041,0x000000b6,0x000000b7,0x000000b5,
+	0x00000084,0x0004003d,0x00000006,0x000000b8,0x000000b7,0x00050041,0x00000026,0x000000b9,
+	0x00000023,0x0000006b,0x0004003d,0x00000006,0x000000ba,0x000000b9,0x00050086,0x00000006,
+	0x000000bb,0x000000ba,0x00000058,0x00050080,0x00000006,0x000000bc,0x000000b8,0x000000bb,
+	0x0004003d,0x00000006,0x000000bd,0x0000001d,0x00060041,0x0000005a,0x000000be,0x000000b2,
+	0x00000056,0x000000bc,0x0003003e,0x000000be,0x000000bd,0x000100fd,0x00010038
 };
 
 // Generated from:
@@ -270,7 +270,8 @@
 //         valueAsUint |= signExtension;
 //     }
 //     int valueAsInt = int(valueAsUint);
-//           float value =(2 * float(valueAsInt)+ 1)/ valueMask;
+//           float value = float(valueAsInt)/(valueMask >> 1);
+//     value = max(value, float(- 1));
 //
 //     return value;
 // }
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/src/ConvertIndex.comp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/src/ConvertIndex.comp
index a375387..582f472 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/src/ConvertIndex.comp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/src/ConvertIndex.comp
@@ -10,6 +10,7 @@
 //  - Flags:
 //    * IsPrimitiveRestartEnabled: enables conversion from 0xFF to 0xFFFF,
 //                                 the restart indices for 8-bit and 16-bit indices.
+//    * IsIndirect: Use indirect buffer for index info
 //
 
 #version 450 core
@@ -28,6 +29,28 @@
     uint srcData[];
 };
 
+#if IsIndirect
+layout (set = 0, binding = 2) readonly buffer cmd
+{
+    // Shader invocations read from the cmdData buffer to determine what indices to convert
+    // The command data starts at offset cmdOffsetDiv4 of the cmdData buffer.
+    uint cmdData[];
+};
+
+layout (push_constant) uniform PushConstants
+{
+    // Read offset in bytes into the cmdData array, divided by four.
+    uint cmdOffsetDiv4;
+    // Write offset in bytes into the dstData array, divided by four.
+    uint dstOffsetDiv4;
+    // Maximum size of the read buffer. The highest index value we will convert.
+    uint maxIndex;
+    // Not used in the shader. Kept to pad "PushConstants" to the size of a vec4.
+    uint _padding;
+};
+
+#else
+
 layout (push_constant) uniform PushConstants
 {
     // Read offset in bytes into the srcData array.
@@ -39,10 +62,15 @@
     // Not used in the shader. Kept to pad "PushConstants" to the size of a vec4.
     uint _padding;
 };
+#endif
 
 uint PullIndex(uint index)
 {
+#if IsIndirect
+    uint srcIndex = index;
+#else
     uint srcIndex = index + srcOffset;
+#endif
     uint srcBlock = srcData[srcIndex >> 2];
     uint srcComponent = (srcIndex & 3);
 
@@ -64,21 +92,37 @@
 
 void main()
 {
-    // The element index is simply the invocation ID times two.
-    uint index = (gl_GlobalInvocationID.x << 1);
+#if IsIndirect
+    uint indexCount = cmdData[cmdOffsetDiv4];
+    uint firstIndex = cmdData[cmdOffsetDiv4 + 2];
+    uint endIndex = firstIndex + indexCount;
+#else
+    uint firstIndex = 0;
+    uint endIndex = firstIndex + maxIndex;
+#endif
+
+    // The element index is invocation ID times two plus
+    // the firstIndex / 2.
+    // This way the first indexCount/2 invocations will transform
+    // the data and any additional invocations will be a no-op
+    uint index = ((gl_GlobalInvocationID.x + (firstIndex >> 1)) << 1);
 
     // Don't write anything to dest if we're entirely past the end of the buffer.
     // We assume buffer size is uint-aligned.
-    if (index >= maxIndex)
+    if (index >= endIndex)
         return;
 
     uint dstValue = 0;
 
-    uint srcValue = PullIndex(index);
-    PackIndexValue(srcValue, 0, dstValue);
+    // Skip packing the first index if we're before the first element.
+    if (index >= firstIndex)
+    {
+        uint srcValue = PullIndex(index);
+        PackIndexValue(srcValue, 0, dstValue);
+    }
 
     // Skip packing the second index if we're after the last element.
-    if (index + 1 < maxIndex)
+    if (index + 1 < endIndex)
     {
         uint srcValue = PullIndex(index + 1);
         PackIndexValue(srcValue, 1, dstValue);
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/src/ConvertIndex.comp.json b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/src/ConvertIndex.comp.json
index 0ecbc6b..26f1d0a 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/src/ConvertIndex.comp.json
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/src/ConvertIndex.comp.json
@@ -7,6 +7,7 @@
         "ConvertIndex.comp.json: Build parameters for ConvertIndex.comp."
     ],
     "Flags": [
-        "IsPrimitiveRestartEnabled"
+        "IsPrimitiveRestartEnabled",
+        "IsIndirect"
     ]
 }
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/src/ConvertVertex.comp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/src/ConvertVertex.comp
index e5eb83c..9f11592 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/src/ConvertVertex.comp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/src/ConvertVertex.comp
@@ -55,6 +55,18 @@
 //     * A2BGR10UintToFloat: Same types as A2BGR10UintToUint for source (including uscaled).
 //                           Converts to float.
 //     * A2BGR10SnormToFloat: Similar to IntToFloat, but normalized and only for A2BGR10.
+//     * RGB10A2SintToFloat: Same types as RGB10A2SintToSint for source (including scaled).
+//                           Converts to float.
+//     * RGB10A2UintToFloat: Same types as RGB10A2UintToUint for source (including uscaled).
+//                           Converts to float.
+//     * RGB10A2SnormToFloat: Similar to IntToFloat, but normalized and only for RGB10A2.
+//     * RGB10A2UnormToFloat: Similar to UintToFloat, but normalized and only for RGB10A2.
+//     * RGB10X2SintToFloat: Same types as RGB10X2SintToSint for source (including scaled).
+//                           Converts to float.
+//     * RGB10X2UintToFloat: Same types as RGB10X2UintToUint for source (including uscaled).
+//                           Converts to float.
+//     * RGB10X2SnormToFloat: Similar to IntToFloat, but normalized and only for RGB10X2.
+//     * HalfFloatToHalfFloat: covers half float type only.
 //
 // SintToSint, UintToUint and FloatToFloat correspond to CopyNativeVertexData() and
 // Copy8SintTo16SintVertexData() in renderer/copyvertex.inc, FixedToFloat corresponds to
@@ -62,16 +74,22 @@
 // normalized=false and SnormToFloat and UnormToFloat correspond to CopyTo32FVertexData with
 // normalized=true. A2BGR10SintToSint, A2BGR10UintToUint, A2BGR10SintToFloat, A2BGR10UintToFloat
 // and A2BGR10SnormToFloat correspond to CopyXYZ10W2ToXYZW32FVertexData with the proper options.
-//
+// RGB10A2SintToFloat, RGB10A2UintToFloat, RGB10A2SnormToFloat, and RGB10X2UnormToFloat correspond
+// to CopyW2XYZ10ToXYZW32FVertexData, and RGB10X2SintToFloat, RGB10UintToFloat,
+// RGB10X2SnormToFloat, and RGB10X2UnormToFloat correspond to CopyXYZ10ToXYZW32FVertexData with
+// the proper options. HalfFloatToHalfFloat correspond to CopyNativeVertexData().
 
 #version 450 core
 
 // Source type
-#if SintToSint || SintToFloat || A2BGR10SintToSint || A2BGR10SintToFloat
+#if SintToSint || SintToFloat || A2BGR10SintToSint || A2BGR10SintToFloat || RGB10A2SintToFloat || \
+    RGB10X2SintToFloat
 #define SrcType int
-#elif UintToUint || UintToFloat || A2BGR10UintToUint || A2BGR10UintToFloat
+#elif UintToUint || UintToFloat || A2BGR10UintToUint || A2BGR10UintToFloat || \
+    RGB10A2UintToFloat || RGB10X2UintToFloat || HalfFloatToHalfFloat
 #define SrcType uint
-#elif SnormToFloat || UnormToFloat || FixedToFloat || FloatToFloat || A2BGR10SnormToFloat
+#elif SnormToFloat || UnormToFloat || FixedToFloat || FloatToFloat || A2BGR10SnormToFloat || \
+    RGB10A2SnormToFloat || RGB10A2UnormToFloat || RGB10X2SnormToFloat || RGB10X2UnormToFloat
 #define SrcType float
 #else
 #error "Not all conversions are accounted for"
@@ -81,11 +99,13 @@
 #if SintToSint || A2BGR10SintToSint
 #define DestType int
 #define IsDestFloat 0
-#elif UintToUint || A2BGR10UintToUint
+#elif UintToUint || A2BGR10UintToUint || HalfFloatToHalfFloat
 #define DestType uint
 #define IsDestFloat 0
 #elif SintToFloat || UintToFloat || SnormToFloat || UnormToFloat || FixedToFloat || FloatToFloat || \
-      A2BGR10SintToFloat || A2BGR10UintToFloat || A2BGR10SnormToFloat
+    A2BGR10SintToFloat || A2BGR10UintToFloat || A2BGR10SnormToFloat || \
+    RGB10A2SintToFloat || RGB10A2UintToFloat || RGB10A2SnormToFloat || RGB10A2UnormToFloat || \
+    RGB10X2SintToFloat || RGB10X2UintToFloat || RGB10X2SnormToFloat || RGB10X2UnormToFloat
 #define DestType float
 #define IsDestFloat 1
 #else
@@ -202,11 +222,14 @@
     uint vertex = cd / Nd;
     uint component = cd % Nd;
 
-    // If no such component, return 0
+    // Fill the alpha channel with 1.0f in case of the source format doesn't have an alpha channel
+    // For all other components fill in 0
+#if !(RGB10X2SintToFloat || RGB10X2UintToFloat || RGB10X2SnormToFloat || RGB10X2UnormToFloat)
     if (component >= Ns)
     {
         return 0;
     }
+#endif
 
     // Load the source component
     uint offset = getSourceComponentOffset(vertex, component);
@@ -217,15 +240,30 @@
     uint valueBits = component == 3 ? 2 : 10;
     uint shiftBits = 10 * component;
     uint valueMask = component == 3 ? 0x03 : 0x3FF;
+#elif RGB10A2SintToFloat || RGB10A2UintToFloat || RGB10A2SnormToFloat || RGB10A2UnormToFloat || \
+    RGB10X2SintToFloat || RGB10X2UintToFloat || RGB10X2SnormToFloat || RGB10X2UnormToFloat
+    uint valueBits = component == 3 ? 2 : 10;
+    // channel order is reversed
+    uint shiftBits = component == 3 ? 0 : (valueBits * (2 - component) + 2);
+    uint valueMask = component == 3 ? 0x03 : 0x3FF;
 #else
     uint shiftBits = getShiftBits(offset, Bs);
     uint valueBits = Bs * 8;
     uint valueMask = valueBits == 32 ? -1 : (1 << valueBits) - 1;
 #endif
+
+    // When alpha channel is dummy, fill it with 1.0f
+#if RGB10X2SintToFloat || RGB10X2UintToFloat || RGB10X2SnormToFloat
+    uint valueAsUint = component == 3 ? 0x01 : (block >> shiftBits) & valueMask;
+#elif RGB10X2UnormToFloat
+    uint valueAsUint = component == 3 ? 0x03 : (block >> shiftBits) & valueMask;
+#else
     uint valueAsUint = (block >> shiftBits) & valueMask;
+#endif
 
     // Convert to SrcType
-#if SintToSint || SintToFloat || A2BGR10SintToSint || A2BGR10SintToFloat
+#if SintToSint || SintToFloat || A2BGR10SintToSint || A2BGR10SintToFloat || RGB10A2SintToFloat \
+    || RGB10X2SintToFloat
     if (valueBits < 32)
     {
         bool isNegative = (valueAsUint & (1 << (valueBits - 1))) != 0;
@@ -236,9 +274,10 @@
         valueAsUint |= signExtension;
     }
     SrcType value = SrcType(valueAsUint);
-#elif UintToUint || UintToFloat || A2BGR10UintToUint || A2BGR10UintToFloat
+#elif UintToUint || UintToFloat || A2BGR10UintToUint || A2BGR10UintToFloat || RGB10A2UintToFloat \
+    || RGB10X2UintToFloat || HalfFloatToHalfFloat
     SrcType value = valueAsUint;
-#elif SnormToFloat || A2BGR10SnormToFloat
+#elif SnormToFloat || A2BGR10SnormToFloat || RGB10A2SnormToFloat || RGB10X2SnormToFloat
     if (valueBits < 32)
     {
         bool isNegative = (valueAsUint & (1 << (valueBits - 1))) != 0;
@@ -246,8 +285,9 @@
         valueAsUint |= signExtension;
     }
     int valueAsInt = int(valueAsUint);
-    SrcType value = (2 * float(valueAsInt) + 1) / valueMask;
-#elif UnormToFloat
+    SrcType value = float(valueAsInt) / (valueMask >> 1);
+    value = max(value, float(-1));
+#elif UnormToFloat || RGB10A2UnormToFloat || RGB10X2UnormToFloat
     float positiveMax = valueMask;
     // Scale [0, P] to [0, 1]
     SrcType value = valueAsUint / positiveMax;
@@ -275,7 +315,7 @@
     // Return valueAsUint, shifted to the right spot.  Multiple calls to this function should be |ed
     // and eventually written to the destination.
 
-#if SintToSint || UintToUint || A2BGR10SintToSint || A2BGR10UintToUint
+#if SintToSint || UintToUint || A2BGR10SintToSint || A2BGR10UintToUint || HalfFloatToHalfFloat
     uint vertex = cd / Nd;
     uint component = cd % Nd;
 
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/src/ConvertVertex.comp.json b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/src/ConvertVertex.comp.json
index 801c488..70f6527 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/src/ConvertVertex.comp.json
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/src/ConvertVertex.comp.json
@@ -22,7 +22,16 @@
         "A2BGR10UintToUint",
         "A2BGR10SintToFloat",
         "A2BGR10UintToFloat",
-        "A2BGR10SnormToFloat"
+        "A2BGR10SnormToFloat",
+        "RGB10A2SintToFloat",
+        "RGB10A2UintToFloat",
+        "RGB10A2SnormToFloat",
+        "RGB10A2UnormToFloat",
+        "RGB10X2SintToFloat",
+        "RGB10X2UintToFloat",
+        "RGB10X2SnormToFloat",
+        "RGB10X2UnormToFloat",
+        "HalfFloatToHalfFloat"
     ]
 }
 
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_cache_utils.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_cache_utils.cpp
index 2c93903..ca60902 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_cache_utils.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_cache_utils.cpp
@@ -16,6 +16,7 @@
 #include "libANGLE/renderer/vulkan/FramebufferVk.h"
 #include "libANGLE/renderer/vulkan/ProgramVk.h"
 #include "libANGLE/renderer/vulkan/RendererVk.h"
+#include "libANGLE/renderer/vulkan/VertexArrayVk.h"
 #include "libANGLE/renderer/vulkan/vk_format_utils.h"
 #include "libANGLE/renderer/vulkan/vk_helpers.h"
 
@@ -182,6 +183,19 @@
     stateOut->alphaBlendOp        = static_cast<VkBlendOp>(packedState.alphaBlendOp);
 }
 
+void SetPipelineShaderStageInfo(const VkStructureType type,
+                                const VkShaderStageFlagBits stage,
+                                const VkShaderModule module,
+                                VkPipelineShaderStageCreateInfo *shaderStage)
+{
+    shaderStage->sType               = type;
+    shaderStage->flags               = 0;
+    shaderStage->stage               = stage;
+    shaderStage->module              = module;
+    shaderStage->pName               = "main";
+    shaderStage->pSpecializationInfo = nullptr;
+}
+
 angle::Result InitializeRenderPassFromDesc(vk::Context *context,
                                            const RenderPassDesc &desc,
                                            const AttachmentOpsArray &ops,
@@ -593,7 +607,7 @@
 }
 
 angle::Result GraphicsPipelineDesc::initializePipeline(
-    vk::Context *context,
+    ContextVk *contextVk,
     const vk::PipelineCache &pipelineCacheVk,
     const RenderPass &compatibleRenderPass,
     const PipelineLayout &pipelineLayout,
@@ -601,9 +615,10 @@
     const gl::ComponentTypeMask &programAttribsTypeMask,
     const ShaderModule *vertexModule,
     const ShaderModule *fragmentModule,
+    const ShaderModule *geometryModule,
     Pipeline *pipelineOut) const
 {
-    angle::FixedVector<VkPipelineShaderStageCreateInfo, 2> shaderStages;
+    angle::FixedVector<VkPipelineShaderStageCreateInfo, 3> shaderStages;
     VkPipelineVertexInputStateCreateInfo vertexInputState     = {};
     VkPipelineInputAssemblyStateCreateInfo inputAssemblyState = {};
     VkPipelineViewportStateCreateInfo viewportState           = {};
@@ -618,25 +633,27 @@
     // Vertex shader is always expected to be present.
     ASSERT(vertexModule != nullptr);
     VkPipelineShaderStageCreateInfo vertexStage = {};
-    vertexStage.sType               = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO;
-    vertexStage.flags               = 0;
-    vertexStage.stage               = VK_SHADER_STAGE_VERTEX_BIT;
-    vertexStage.module              = vertexModule->getHandle();
-    vertexStage.pName               = "main";
-    vertexStage.pSpecializationInfo = nullptr;
+    SetPipelineShaderStageInfo(VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO,
+                               VK_SHADER_STAGE_VERTEX_BIT, vertexModule->getHandle(), &vertexStage);
     shaderStages.push_back(vertexStage);
 
+    if (geometryModule)
+    {
+        VkPipelineShaderStageCreateInfo geometryStage = {};
+        SetPipelineShaderStageInfo(VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO,
+                                   VK_SHADER_STAGE_GEOMETRY_BIT, geometryModule->getHandle(),
+                                   &geometryStage);
+        shaderStages.push_back(geometryStage);
+    }
+
     // Fragment shader is optional.
     // anglebug.com/3509 - Don't compile the fragment shader if rasterizationDiscardEnable = true
     if (fragmentModule && !mRasterizationAndMultisampleStateInfo.bits.rasterizationDiscardEnable)
     {
         VkPipelineShaderStageCreateInfo fragmentStage = {};
-        fragmentStage.sType               = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO;
-        fragmentStage.flags               = 0;
-        fragmentStage.stage               = VK_SHADER_STAGE_FRAGMENT_BIT;
-        fragmentStage.module              = fragmentModule->getHandle();
-        fragmentStage.pName               = "main";
-        fragmentStage.pSpecializationInfo = nullptr;
+        SetPipelineShaderStageInfo(VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO,
+                                   VK_SHADER_STAGE_FRAGMENT_BIT, fragmentModule->getHandle(),
+                                   &fragmentStage);
         shaderStages.push_back(fragmentStage);
     }
 
@@ -657,7 +674,6 @@
     VkPipelineVertexInputDivisorStateCreateInfoEXT divisorState = {};
     divisorState.sType = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT;
     divisorState.pVertexBindingDivisors = divisorDesc.data();
-
     for (size_t attribIndexSizeT : activeAttribLocationsMask)
     {
         const uint32_t attribIndex = static_cast<uint32_t>(attribIndexSizeT);
@@ -682,7 +698,7 @@
 
         // Get the corresponding VkFormat for the attrib's format.
         angle::FormatID formatID         = static_cast<angle::FormatID>(packedAttrib.format);
-        const vk::Format &format         = context->getRenderer()->getFormat(formatID);
+        const vk::Format &format         = contextVk->getRenderer()->getFormat(formatID);
         const angle::Format &angleFormat = format.angleFormat();
         VkFormat vkFormat                = format.vkBufferFormat;
 
@@ -855,8 +871,8 @@
     createInfo.basePipelineHandle  = VK_NULL_HANDLE;
     createInfo.basePipelineIndex   = 0;
 
-    ANGLE_VK_TRY(context,
-                 pipelineOut->initGraphics(context->getDevice(), createInfo, pipelineCacheVk));
+    ANGLE_VK_TRY(contextVk,
+                 pipelineOut->initGraphics(contextVk->getDevice(), createInfo, pipelineCacheVk));
     return angle::Result::Continue;
 }
 
@@ -869,10 +885,6 @@
 {
     vk::PackedAttribDesc &packedAttrib = mVertexInputAttribs.attribs[attribIndex];
 
-    // TODO: Handle the case where the divisor overflows the field that holds it.
-    // http://anglebug.com/2672
-    ASSERT(divisor <= std::numeric_limits<decltype(packedAttrib.divisor)>::max());
-
     SetBitField(packedAttrib.stride, stride);
     SetBitField(packedAttrib.divisor, divisor);
 
@@ -1494,7 +1506,7 @@
                                                  uint32_t size)
 {
     ASSERT(shaderType == gl::ShaderType::Vertex || shaderType == gl::ShaderType::Fragment ||
-           shaderType == gl::ShaderType::Compute);
+           shaderType == gl::ShaderType::Geometry || shaderType == gl::ShaderType::Compute);
     PackedPushConstantRange &packed = mPushConstantRanges[shaderType];
     packed.offset                   = offset;
     packed.size                     = size;
@@ -1592,7 +1604,7 @@
     mPayload.clear();
 }
 
-angle::Result RenderPassCache::addRenderPass(vk::Context *context,
+angle::Result RenderPassCache::addRenderPass(ContextVk *contextVk,
                                              Serial serial,
                                              const vk::RenderPassDesc &desc,
                                              vk::RenderPass **renderPassOut)
@@ -1623,7 +1635,7 @@
                         VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL);
     }
 
-    return getRenderPassWithOps(context, serial, desc, ops, renderPassOut);
+    return getRenderPassWithOps(contextVk, serial, desc, ops, renderPassOut);
 }
 
 angle::Result RenderPassCache::getRenderPassWithOps(vk::Context *context,
@@ -1690,14 +1702,14 @@
     for (auto &item : mPayload)
     {
         vk::PipelineHelper &pipeline = item.second;
-        context->releaseObject(pipeline.getSerial(), &pipeline.getPipeline());
+        context->addGarbage(&pipeline.getPipeline());
     }
 
     mPayload.clear();
 }
 
 angle::Result GraphicsPipelineCache::insertPipeline(
-    vk::Context *context,
+    ContextVk *contextVk,
     const vk::PipelineCache &pipelineCacheVk,
     const vk::RenderPass &compatibleRenderPass,
     const vk::PipelineLayout &pipelineLayout,
@@ -1705,6 +1717,7 @@
     const gl::ComponentTypeMask &programAttribsTypeMask,
     const vk::ShaderModule *vertexModule,
     const vk::ShaderModule *fragmentModule,
+    const vk::ShaderModule *geometryModule,
     const vk::GraphicsPipelineDesc &desc,
     const vk::GraphicsPipelineDesc **descPtrOut,
     vk::PipelineHelper **pipelineOut)
@@ -1712,13 +1725,13 @@
     vk::Pipeline newPipeline;
 
     // This "if" is left here for the benefit of VulkanPipelineCachePerfTest.
-    if (context != nullptr)
+    if (contextVk != nullptr)
     {
-        context->getRenderer()->onNewGraphicsPipeline();
-        ANGLE_TRY(desc.initializePipeline(context, pipelineCacheVk, compatibleRenderPass,
+        contextVk->getRenderer()->onNewGraphicsPipeline();
+        ANGLE_TRY(desc.initializePipeline(contextVk, pipelineCacheVk, compatibleRenderPass,
                                           pipelineLayout, activeAttribLocationsMask,
                                           programAttribsTypeMask, vertexModule, fragmentModule,
-                                          &newPipeline));
+                                          geometryModule, &newPipeline));
     }
 
     // The Serial will be updated outside of this query.
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_cache_utils.h b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_cache_utils.h
index 21e3c44..1d20ed7 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_cache_utils.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_cache_utils.h
@@ -38,7 +38,7 @@
 // fewer bits. For example, boolean values could be represented by a single bit instead
 // of a uint8_t. However at the current time there are concerns about the portability
 // of bitfield operators, and complexity issues with using bit mask operations. This is
-// something likely we will want to investigate as the Vulkan implementation progresses.
+// something we will likely want to investigate as the Vulkan implementation progresses.
 //
 // Second implementation note: the struct packing is also a bit fragile, and some of the
 // packing requirements depend on using alignas and field ordering to get the result of
@@ -164,8 +164,6 @@
 struct PackedAttribDesc final
 {
     uint8_t format;
-
-    // TODO(http://anglebug.com/2672): Emulate divisors greater than UBYTE_MAX.
     uint8_t divisor;
 
     // Can only take 11 bits on NV.
@@ -315,9 +313,9 @@
 static_assert(kPackedInputAssemblyAndColorBlendStateSize == 56, "Size check failed");
 
 constexpr size_t kGraphicsPipelineDescSumOfSizes =
-    kVertexInputAttributesSize + kPackedInputAssemblyAndColorBlendStateSize +
-    kPackedRasterizationAndMultisampleStateSize + kPackedDepthStencilStateSize +
-    kRenderPassDescSize + sizeof(VkViewport) + sizeof(VkRect2D);
+    kVertexInputAttributesSize + kRenderPassDescSize + kPackedRasterizationAndMultisampleStateSize +
+    kPackedDepthStencilStateSize + kPackedInputAssemblyAndColorBlendStateSize + sizeof(VkViewport) +
+    sizeof(VkRect2D);
 
 // Number of dirty bits in the dirty bit set.
 constexpr size_t kGraphicsPipelineDirtyBitBytes = 4;
@@ -356,7 +354,7 @@
         return reinterpret_cast<const T *>(this);
     }
 
-    angle::Result initializePipeline(vk::Context *context,
+    angle::Result initializePipeline(ContextVk *contextVk,
                                      const vk::PipelineCache &pipelineCacheVk,
                                      const RenderPass &compatibleRenderPass,
                                      const PipelineLayout &pipelineLayout,
@@ -364,6 +362,7 @@
                                      const gl::ComponentTypeMask &programAttribsTypeMask,
                                      const ShaderModule *vertexModule,
                                      const ShaderModule *fragmentModule,
+                                     const ShaderModule *geometryModule,
                                      Pipeline *pipelineOut) const;
 
     // Vertex input state. For ES 3.1 this should be separated into binding and attribute.
@@ -768,7 +767,7 @@
 
     void destroy(VkDevice device);
 
-    ANGLE_INLINE angle::Result getCompatibleRenderPass(vk::Context *context,
+    ANGLE_INLINE angle::Result getCompatibleRenderPass(ContextVk *contextVk,
                                                        Serial serial,
                                                        const vk::RenderPassDesc &desc,
                                                        vk::RenderPass **renderPassOut)
@@ -785,7 +784,7 @@
             return angle::Result::Continue;
         }
 
-        return addRenderPass(context, serial, desc, renderPassOut);
+        return addRenderPass(contextVk, serial, desc, renderPassOut);
     }
 
     angle::Result getRenderPassWithOps(vk::Context *context,
@@ -795,7 +794,7 @@
                                        vk::RenderPass **renderPassOut);
 
   private:
-    angle::Result addRenderPass(vk::Context *context,
+    angle::Result addRenderPass(ContextVk *contextVk,
                                 Serial serial,
                                 const vk::RenderPassDesc &desc,
                                 vk::RenderPass **renderPassOut);
@@ -820,7 +819,7 @@
 
     void populate(const vk::GraphicsPipelineDesc &desc, vk::Pipeline &&pipeline);
 
-    ANGLE_INLINE angle::Result getPipeline(vk::Context *context,
+    ANGLE_INLINE angle::Result getPipeline(ContextVk *contextVk,
                                            const vk::PipelineCache &pipelineCacheVk,
                                            const vk::RenderPass &compatibleRenderPass,
                                            const vk::PipelineLayout &pipelineLayout,
@@ -828,6 +827,7 @@
                                            const gl::ComponentTypeMask &programAttribsTypeMask,
                                            const vk::ShaderModule *vertexModule,
                                            const vk::ShaderModule *fragmentModule,
+                                           const vk::ShaderModule *geometryModule,
                                            const vk::GraphicsPipelineDesc &desc,
                                            const vk::GraphicsPipelineDesc **descPtrOut,
                                            vk::PipelineHelper **pipelineOut)
@@ -840,13 +840,13 @@
             return angle::Result::Continue;
         }
 
-        return insertPipeline(context, pipelineCacheVk, compatibleRenderPass, pipelineLayout,
+        return insertPipeline(contextVk, pipelineCacheVk, compatibleRenderPass, pipelineLayout,
                               activeAttribLocationsMask, programAttribsTypeMask, vertexModule,
-                              fragmentModule, desc, descPtrOut, pipelineOut);
+                              fragmentModule, geometryModule, desc, descPtrOut, pipelineOut);
     }
 
   private:
-    angle::Result insertPipeline(vk::Context *context,
+    angle::Result insertPipeline(ContextVk *contextVk,
                                  const vk::PipelineCache &pipelineCacheVk,
                                  const vk::RenderPass &compatibleRenderPass,
                                  const vk::PipelineLayout &pipelineLayout,
@@ -854,6 +854,7 @@
                                  const gl::ComponentTypeMask &programAttribsTypeMask,
                                  const vk::ShaderModule *vertexModule,
                                  const vk::ShaderModule *fragmentModule,
+                                 const vk::ShaderModule *geometryModule,
                                  const vk::GraphicsPipelineDesc &desc,
                                  const vk::GraphicsPipelineDesc **descPtrOut,
                                  vk::PipelineHelper **pipelineOut);
@@ -919,10 +920,10 @@
 
 // Only 1 driver uniform binding is used.
 constexpr uint32_t kReservedDriverUniformBindingCount = 1;
-// There is 1 default uniform binding used per stage.  Currently, a maxium of two stages are
+// There is 1 default uniform binding used per stage.  Currently, a maxium of three stages are
 // supported.
 constexpr uint32_t kReservedPerStageDefaultUniformBindingCount = 1;
-constexpr uint32_t kReservedDefaultUniformBindingCount         = 2;
+constexpr uint32_t kReservedDefaultUniformBindingCount         = 3;
 // Binding index start for transform feedback buffers:
 constexpr uint32_t kXfbBindingIndexStart = kReservedDefaultUniformBindingCount;
 }  // namespace rx
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_caps_utils.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_caps_utils.cpp
index 3ddf798..b6239da 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_caps_utils.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_caps_utils.cpp
@@ -82,16 +82,18 @@
 
     mNativeExtensions.vertexHalfFloat = true;
 
-    // TODO: Enable this always and emulate instanced draws if any divisor exceeds the maximum
-    // supported.  http://anglebug.com/2672
-    mNativeExtensions.instancedArraysANGLE = mMaxVertexAttribDivisor > 1;
-    mNativeExtensions.instancedArraysEXT   = mMaxVertexAttribDivisor > 1;
+    // Enabled in HW if VK_EXT_vertex_attribute_divisor available, otherwise emulated
+    mNativeExtensions.instancedArraysANGLE = true;
+    mNativeExtensions.instancedArraysEXT   = true;
 
     // Only expose robust buffer access if the physical device supports it.
-    mNativeExtensions.robustBufferAccessBehavior = mPhysicalDeviceFeatures.robustBufferAccess;
+    mNativeExtensions.robustBufferAccessBehavior =
+        (mPhysicalDeviceFeatures.robustBufferAccess == VK_TRUE);
 
     mNativeExtensions.eglSync = true;
 
+    mNativeExtensions.vertexAttribType1010102 = true;
+
     // We use secondary command buffers almost everywhere and they require a feature to be
     // able to execute in the presence of queries.  As a result, we won't support queries
     // unless that feature is available.
@@ -215,10 +217,6 @@
     }
     mNativeCaps.maxUniformLocations                                  = maxUniformVectors;
 
-    // Pass through min/max texel gather offsets
-    mNativeCaps.minProgramTextureGatherOffset = limitsVk.minTexelGatherOffset;
-    mNativeCaps.maxProgramTextureGatherOffset = limitsVk.maxTexelGatherOffset;
-
     // Every stage has 1 reserved uniform buffer for the default uniforms, and 1 for the driver
     // uniforms.
     constexpr uint32_t kTotalReservedPerStageUniformBuffers =
@@ -358,8 +356,10 @@
     mNativeCaps.maxCombinedImageUniforms = maxCombinedImages;
     mNativeCaps.maxImageUnits            = maxCombinedImages;
 
-    mNativeCaps.minProgramTexelOffset = mPhysicalDeviceProperties.limits.minTexelOffset;
-    mNativeCaps.maxProgramTexelOffset = mPhysicalDeviceProperties.limits.maxTexelOffset;
+    mNativeCaps.minProgramTexelOffset         = limitsVk.minTexelOffset;
+    mNativeCaps.maxProgramTexelOffset         = limitsVk.maxTexelOffset;
+    mNativeCaps.minProgramTextureGatherOffset = limitsVk.minTexelGatherOffset;
+    mNativeCaps.maxProgramTextureGatherOffset = limitsVk.maxTexelGatherOffset;
 
     // There is no additional limit to the combined number of components.  We can have up to a
     // maximum number of uniform buffers, each having the maximum number of components.  Note that
@@ -429,6 +429,25 @@
 
     // Enable GL_NV_pixel_buffer_object extension.
     mNativeExtensions.pixelBufferObject = true;
+
+    // Geometry shader is optional.
+    if (mPhysicalDeviceFeatures.geometryShader)
+    {
+        // TODO : Remove below comment when http://anglebug.com/3571 will be completed
+        // mNativeExtensions.geometryShader = true;
+        mNativeCaps.maxFramebufferLayers = limitsVk.maxFramebufferLayers;
+        mNativeCaps.layerProvokingVertex = GL_LAST_VERTEX_CONVENTION_EXT;
+
+        mNativeCaps.maxGeometryInputComponents       = limitsVk.maxGeometryInputComponents;
+        mNativeCaps.maxGeometryOutputComponents      = limitsVk.maxGeometryOutputComponents;
+        mNativeCaps.maxGeometryOutputVertices        = limitsVk.maxGeometryOutputVertices;
+        mNativeCaps.maxGeometryTotalOutputComponents = limitsVk.maxGeometryTotalOutputComponents;
+        mNativeCaps.maxShaderStorageBlocks[gl::ShaderType::Geometry] =
+            mNativeCaps.maxCombinedShaderOutputResources;
+        mNativeCaps.maxShaderAtomicCounterBuffers[gl::ShaderType::Geometry] =
+            maxCombinedAtomicCounterBuffers;
+        mNativeCaps.maxGeometryShaderInvocations = limitsVk.maxGeometryShaderInvocations;
+    }
 }
 
 namespace egl_vk
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_format_map.json b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_format_map.json
index 62ad9c0..560dd7b 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_format_map.json
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_format_map.json
@@ -172,6 +172,18 @@
         "A32_FLOAT": {
             "image": "R32_FLOAT"
         },
+        "L16_FLOAT": {
+            "image": "R16_FLOAT"
+        },
+        "L32_FLOAT": {
+            "image": "R32_FLOAT"
+        },
+        "L16A16_FLOAT": {
+            "image": "R16G16_FLOAT"
+        },
+        "L32A32_FLOAT": {
+            "image": "R32G32_FLOAT"
+        },
         "A8_UNORM": {
             "image": "R8_UNORM"
         },
@@ -272,6 +284,54 @@
         "R10G10B10X2_UNORM": {
             "buffer": "NONE",
             "image": "R10G10B10A2_UNORM"
+        },
+        "A2R10G10B10_SINT_VERTEX": {
+            "image": "NONE",
+            "buffer": "R32G32B32A32_FLOAT"
+        },
+        "A2R10G10B10_UINT_VERTEX": {
+            "image": "NONE",
+            "buffer": "R32G32B32A32_FLOAT"
+        },
+        "A2R10G10B10_SSCALED_VERTEX": {
+            "image": "NONE",
+            "buffer": "R32G32B32A32_FLOAT"
+        },
+        "A2R10G10B10_USCALED_VERTEX": {
+            "image": "NONE",
+            "buffer": "R32G32B32A32_FLOAT"
+        },
+        "A2R10G10B10_SNORM_VERTEX": {
+            "image": "NONE",
+            "buffer": "R32G32B32A32_FLOAT"
+        },
+        "A2R10G10B10_UNORM_VERTEX": {
+            "image": "NONE",
+            "buffer": "R32G32B32A32_FLOAT"
+        },
+        "X2R10G10B10_SINT_VERTEX": {
+            "image": "NONE",
+            "buffer": "R32G32B32A32_FLOAT"
+        },
+        "X2R10G10B10_USCALED_VERTEX": {
+            "image": "NONE",
+            "buffer": "R32G32B32A32_FLOAT"
+        },
+        "X2R10G10B10_SSCALED_VERTEX": {
+            "image": "NONE",
+            "buffer": "R32G32B32A32_FLOAT"
+        },
+        "X2R10G10B10_UINT_VERTEX": {
+            "image": "NONE",
+            "buffer": "R32G32B32A32_FLOAT"
+        },
+        "X2R10G10B10_SNORM_VERTEX": {
+            "image": "NONE",
+            "buffer": "R32G32B32A32_FLOAT"
+        },
+        "X2R10G10B10_UNORM_VERTEX": {
+            "image": "NONE",
+            "buffer": "R32G32B32A32_FLOAT"
         }
     },
     "fallbacks": {
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_format_table_autogen.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_format_table_autogen.cpp
index dc098f1..f04b20d 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_format_table_autogen.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_format_table_autogen.cpp
@@ -46,6 +46,78 @@
             vertexLoadRequiresConversion = false;
             break;
 
+        case angle::FormatID::A2R10G10B10_SINT_VERTEX:
+            internalFormat               = GL_INT_10_10_10_2_OES;
+            imageFormatID                = angle::FormatID::NONE;
+            vkImageFormat                = VK_FORMAT_UNDEFINED;
+            imageInitializerFunction     = nullptr;
+            bufferFormatID               = angle::FormatID::R32G32B32A32_FLOAT;
+            vkBufferFormat               = VK_FORMAT_R32G32B32A32_SFLOAT;
+            vkBufferFormatIsPacked       = false;
+            vertexLoadFunction           = CopyW2XYZ10ToXYZW32FVertexData<true, false>;
+            vertexLoadRequiresConversion = true;
+            break;
+
+        case angle::FormatID::A2R10G10B10_SNORM_VERTEX:
+            internalFormat               = GL_A2_RGB10_SNORM_ANGLEX;
+            imageFormatID                = angle::FormatID::NONE;
+            vkImageFormat                = VK_FORMAT_UNDEFINED;
+            imageInitializerFunction     = nullptr;
+            bufferFormatID               = angle::FormatID::R32G32B32A32_FLOAT;
+            vkBufferFormat               = VK_FORMAT_R32G32B32A32_SFLOAT;
+            vkBufferFormatIsPacked       = false;
+            vertexLoadFunction           = CopyW2XYZ10ToXYZW32FVertexData<true, true>;
+            vertexLoadRequiresConversion = true;
+            break;
+
+        case angle::FormatID::A2R10G10B10_SSCALED_VERTEX:
+            internalFormat               = GL_A2_RGB10_SSCALED_ANGLEX;
+            imageFormatID                = angle::FormatID::NONE;
+            vkImageFormat                = VK_FORMAT_UNDEFINED;
+            imageInitializerFunction     = nullptr;
+            bufferFormatID               = angle::FormatID::R32G32B32A32_FLOAT;
+            vkBufferFormat               = VK_FORMAT_R32G32B32A32_SFLOAT;
+            vkBufferFormatIsPacked       = false;
+            vertexLoadFunction           = CopyW2XYZ10ToXYZW32FVertexData<true, false>;
+            vertexLoadRequiresConversion = true;
+            break;
+
+        case angle::FormatID::A2R10G10B10_UINT_VERTEX:
+            internalFormat               = GL_UNSIGNED_INT_10_10_10_2_OES;
+            imageFormatID                = angle::FormatID::NONE;
+            vkImageFormat                = VK_FORMAT_UNDEFINED;
+            imageInitializerFunction     = nullptr;
+            bufferFormatID               = angle::FormatID::R32G32B32A32_FLOAT;
+            vkBufferFormat               = VK_FORMAT_R32G32B32A32_SFLOAT;
+            vkBufferFormatIsPacked       = false;
+            vertexLoadFunction           = CopyW2XYZ10ToXYZW32FVertexData<false, false>;
+            vertexLoadRequiresConversion = true;
+            break;
+
+        case angle::FormatID::A2R10G10B10_UNORM_VERTEX:
+            internalFormat               = GL_A2_RGB10_UNORM_ANGLEX;
+            imageFormatID                = angle::FormatID::NONE;
+            vkImageFormat                = VK_FORMAT_UNDEFINED;
+            imageInitializerFunction     = nullptr;
+            bufferFormatID               = angle::FormatID::R32G32B32A32_FLOAT;
+            vkBufferFormat               = VK_FORMAT_R32G32B32A32_SFLOAT;
+            vkBufferFormatIsPacked       = false;
+            vertexLoadFunction           = CopyW2XYZ10ToXYZW32FVertexData<false, true>;
+            vertexLoadRequiresConversion = true;
+            break;
+
+        case angle::FormatID::A2R10G10B10_USCALED_VERTEX:
+            internalFormat               = GL_A2_RGB10_USCALED_ANGLEX;
+            imageFormatID                = angle::FormatID::NONE;
+            vkImageFormat                = VK_FORMAT_UNDEFINED;
+            imageInitializerFunction     = nullptr;
+            bufferFormatID               = angle::FormatID::R32G32B32A32_FLOAT;
+            vkBufferFormat               = VK_FORMAT_R32G32B32A32_SFLOAT;
+            vkBufferFormatIsPacked       = false;
+            vertexLoadFunction           = CopyW2XYZ10ToXYZW32FVertexData<false, false>;
+            vertexLoadRequiresConversion = true;
+            break;
+
         case angle::FormatID::A32_FLOAT:
             internalFormat           = GL_ALPHA32F_EXT;
             imageFormatID            = angle::FormatID::R32_FLOAT;
@@ -978,19 +1050,35 @@
             break;
 
         case angle::FormatID::L16A16_FLOAT:
-            // This format is not implemented in Vulkan.
+            internalFormat           = GL_LUMINANCE_ALPHA16F_EXT;
+            imageFormatID            = angle::FormatID::R16G16_FLOAT;
+            vkImageFormat            = VK_FORMAT_R16G16_SFLOAT;
+            imageInitializerFunction = nullptr;
+
             break;
 
         case angle::FormatID::L16_FLOAT:
-            // This format is not implemented in Vulkan.
+            internalFormat           = GL_LUMINANCE16F_EXT;
+            imageFormatID            = angle::FormatID::R16_FLOAT;
+            vkImageFormat            = VK_FORMAT_R16_SFLOAT;
+            imageInitializerFunction = nullptr;
+
             break;
 
         case angle::FormatID::L32A32_FLOAT:
-            // This format is not implemented in Vulkan.
+            internalFormat           = GL_LUMINANCE_ALPHA32F_EXT;
+            imageFormatID            = angle::FormatID::R32G32_FLOAT;
+            vkImageFormat            = VK_FORMAT_R32G32_SFLOAT;
+            imageInitializerFunction = nullptr;
+
             break;
 
         case angle::FormatID::L32_FLOAT:
-            // This format is not implemented in Vulkan.
+            internalFormat           = GL_LUMINANCE32F_EXT;
+            imageFormatID            = angle::FormatID::R32_FLOAT;
+            vkImageFormat            = VK_FORMAT_R32_SFLOAT;
+            imageInitializerFunction = nullptr;
+
             break;
 
         case angle::FormatID::L8A8_UNORM:
@@ -2339,6 +2427,78 @@
             vertexLoadRequiresConversion = false;
             break;
 
+        case angle::FormatID::X2R10G10B10_SINT_VERTEX:
+            internalFormat               = GL_X2_RGB10_SINT_ANGLEX;
+            imageFormatID                = angle::FormatID::NONE;
+            vkImageFormat                = VK_FORMAT_UNDEFINED;
+            imageInitializerFunction     = nullptr;
+            bufferFormatID               = angle::FormatID::R32G32B32A32_FLOAT;
+            vkBufferFormat               = VK_FORMAT_R32G32B32A32_SFLOAT;
+            vkBufferFormatIsPacked       = false;
+            vertexLoadFunction           = CopyXYZ10ToXYZW32FVertexData<true, false>;
+            vertexLoadRequiresConversion = true;
+            break;
+
+        case angle::FormatID::X2R10G10B10_SNORM_VERTEX:
+            internalFormat               = GL_X2_RGB10_SNORM_ANGLEX;
+            imageFormatID                = angle::FormatID::NONE;
+            vkImageFormat                = VK_FORMAT_UNDEFINED;
+            imageInitializerFunction     = nullptr;
+            bufferFormatID               = angle::FormatID::R32G32B32A32_FLOAT;
+            vkBufferFormat               = VK_FORMAT_R32G32B32A32_SFLOAT;
+            vkBufferFormatIsPacked       = false;
+            vertexLoadFunction           = CopyXYZ10ToXYZW32FVertexData<true, true>;
+            vertexLoadRequiresConversion = true;
+            break;
+
+        case angle::FormatID::X2R10G10B10_SSCALED_VERTEX:
+            internalFormat               = GL_X2_RGB10_SSCALED_ANGLEX;
+            imageFormatID                = angle::FormatID::NONE;
+            vkImageFormat                = VK_FORMAT_UNDEFINED;
+            imageInitializerFunction     = nullptr;
+            bufferFormatID               = angle::FormatID::R32G32B32A32_FLOAT;
+            vkBufferFormat               = VK_FORMAT_R32G32B32A32_SFLOAT;
+            vkBufferFormatIsPacked       = false;
+            vertexLoadFunction           = CopyXYZ10ToXYZW32FVertexData<true, false>;
+            vertexLoadRequiresConversion = true;
+            break;
+
+        case angle::FormatID::X2R10G10B10_UINT_VERTEX:
+            internalFormat               = GL_X2_RGB10_UINT_ANGLEX;
+            imageFormatID                = angle::FormatID::NONE;
+            vkImageFormat                = VK_FORMAT_UNDEFINED;
+            imageInitializerFunction     = nullptr;
+            bufferFormatID               = angle::FormatID::R32G32B32A32_FLOAT;
+            vkBufferFormat               = VK_FORMAT_R32G32B32A32_SFLOAT;
+            vkBufferFormatIsPacked       = false;
+            vertexLoadFunction           = CopyXYZ10ToXYZW32FVertexData<false, false>;
+            vertexLoadRequiresConversion = true;
+            break;
+
+        case angle::FormatID::X2R10G10B10_UNORM_VERTEX:
+            internalFormat               = GL_X2_RGB10_UNORM_ANGLEX;
+            imageFormatID                = angle::FormatID::NONE;
+            vkImageFormat                = VK_FORMAT_UNDEFINED;
+            imageInitializerFunction     = nullptr;
+            bufferFormatID               = angle::FormatID::R32G32B32A32_FLOAT;
+            vkBufferFormat               = VK_FORMAT_R32G32B32A32_SFLOAT;
+            vkBufferFormatIsPacked       = false;
+            vertexLoadFunction           = CopyXYZ10ToXYZW32FVertexData<false, true>;
+            vertexLoadRequiresConversion = true;
+            break;
+
+        case angle::FormatID::X2R10G10B10_USCALED_VERTEX:
+            internalFormat               = GL_X2_RGB10_USCALED_ANGLEX;
+            imageFormatID                = angle::FormatID::NONE;
+            vkImageFormat                = VK_FORMAT_UNDEFINED;
+            imageInitializerFunction     = nullptr;
+            bufferFormatID               = angle::FormatID::R32G32B32A32_FLOAT;
+            vkBufferFormat               = VK_FORMAT_R32G32B32A32_SFLOAT;
+            vkBufferFormatIsPacked       = false;
+            vertexLoadFunction           = CopyXYZ10ToXYZW32FVertexData<false, false>;
+            vertexLoadRequiresConversion = true;
+            break;
+
         default:
             UNREACHABLE();
             break;
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_format_utils.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_format_utils.cpp
index facc170..ebeb808 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_format_utils.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_format_utils.cpp
@@ -32,8 +32,13 @@
         renderer->hasImageFormatFeatureBits(format, VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT);
     outTextureCaps->filterable = renderer->hasImageFormatFeatureBits(
         format, VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT);
+
+    // For renderbuffer and texture attachments we require transfer and sampling for
+    // GLES 2.0 CopyTexImage support. Sampling is also required for other features like
+    // blits and EGLImages.
     outTextureCaps->textureAttachment =
-        hasColorAttachmentFeatureBit || hasDepthAttachmentFeatureBit;
+        outTextureCaps->texturable &&
+        (hasColorAttachmentFeatureBit || hasDepthAttachmentFeatureBit);
     outTextureCaps->renderbuffer = outTextureCaps->textureAttachment;
 
     if (outTextureCaps->renderbuffer)
@@ -342,55 +347,51 @@
 
     gl::SwizzleState internalSwizzle;
 
-    switch (format.internalFormat)
+    if (angleFormat.isLUMA())
     {
-        case GL_LUMINANCE8_OES:
-            internalSwizzle.swizzleRed   = GL_RED;
-            internalSwizzle.swizzleGreen = GL_RED;
-            internalSwizzle.swizzleBlue  = GL_RED;
-            internalSwizzle.swizzleAlpha = GL_ONE;
-            break;
-        case GL_LUMINANCE8_ALPHA8_OES:
-            internalSwizzle.swizzleRed   = GL_RED;
-            internalSwizzle.swizzleGreen = GL_RED;
-            internalSwizzle.swizzleBlue  = GL_RED;
-            internalSwizzle.swizzleAlpha = GL_GREEN;
-            break;
-        case GL_ALPHA8_OES:
-            internalSwizzle.swizzleRed   = GL_ZERO;
-            internalSwizzle.swizzleGreen = GL_ZERO;
-            internalSwizzle.swizzleBlue  = GL_ZERO;
-            internalSwizzle.swizzleAlpha = GL_RED;
-            break;
-        default:
-            if (angleFormat.hasDepthOrStencilBits())
-            {
-                bool hasRed = angleFormat.depthBits > 0;
-                // In OES_depth_texture/ARB_depth_texture, depth
-                // textures are treated as luminance.
-                // If the internalformat was not sized, use OES_depth_texture behavior
-                bool hasGB = hasRed && !sized;
+        GLenum swizzleRGB, swizzleA;
+        if (angleFormat.luminanceBits > 0)
+        {
+            swizzleRGB = GL_RED;
+            swizzleA   = (angleFormat.alphaBits > 0 ? GL_GREEN : GL_ONE);
+        }
+        else
+        {
+            swizzleRGB = GL_ZERO;
+            swizzleA   = GL_RED;
+        }
+        internalSwizzle.swizzleRed   = swizzleRGB;
+        internalSwizzle.swizzleGreen = swizzleRGB;
+        internalSwizzle.swizzleBlue  = swizzleRGB;
+        internalSwizzle.swizzleAlpha = swizzleA;
+    }
+    else
+    {
+        if (angleFormat.hasDepthOrStencilBits())
+        {
+            bool hasRed = angleFormat.depthBits > 0;
+            // In OES_depth_texture/ARB_depth_texture, depth
+            // textures are treated as luminance.
+            // If the internalformat was not sized, use OES_depth_texture behavior
+            bool hasGB = hasRed && !sized;
 
-                internalSwizzle.swizzleRed   = hasRed ? GL_RED : GL_ZERO;
-                internalSwizzle.swizzleGreen = hasGB ? GL_RED : GL_ZERO;
-                internalSwizzle.swizzleBlue  = hasGB ? GL_RED : GL_ZERO;
-                internalSwizzle.swizzleAlpha = GL_ONE;
-            }
-            else
+            internalSwizzle.swizzleRed   = hasRed ? GL_RED : GL_ZERO;
+            internalSwizzle.swizzleGreen = hasGB ? GL_RED : GL_ZERO;
+            internalSwizzle.swizzleBlue  = hasGB ? GL_RED : GL_ZERO;
+            internalSwizzle.swizzleAlpha = GL_ONE;
+        }
+        else
+        {
+            // Color bits are all zero for blocked formats
+            if (!angleFormat.isBlock)
             {
-                if (angleFormat.isBlock)
-                {
-                    // Color bits are all zero for blocked formats, so the
-                    // below will erroneously set swizzle to (0, 0, 0, 1).
-                    break;
-                }
                 // Set any missing channel to default in case the emulated format has that channel.
                 internalSwizzle.swizzleRed   = angleFormat.redBits > 0 ? GL_RED : GL_ZERO;
                 internalSwizzle.swizzleGreen = angleFormat.greenBits > 0 ? GL_GREEN : GL_ZERO;
                 internalSwizzle.swizzleBlue  = angleFormat.blueBits > 0 ? GL_BLUE : GL_ZERO;
                 internalSwizzle.swizzleAlpha = angleFormat.alphaBits > 0 ? GL_ALPHA : GL_ONE;
             }
-            break;
+        }
     }
     ComposeSwizzleState(internalSwizzle, swizzleState, swizzleStateOut);
 }
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_helpers.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_helpers.cpp
index 60dad37..ab74d9f 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_helpers.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_helpers.cpp
@@ -34,10 +34,14 @@
 // these values for emulated depth/stencil textures too.
 constexpr VkClearDepthStencilValue kWebGLInitDepthStencilValue = {1.0f, 0};
 
-constexpr VkBufferUsageFlags kLineLoopDynamicBufferUsage =
-    VK_BUFFER_USAGE_INDEX_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT |
-    VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT | VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT;
+constexpr VkBufferUsageFlags kLineLoopDynamicBufferUsage = VK_BUFFER_USAGE_INDEX_BUFFER_BIT |
+                                                           VK_BUFFER_USAGE_TRANSFER_DST_BIT |
+                                                           VK_BUFFER_USAGE_STORAGE_BUFFER_BIT;
 constexpr int kLineLoopDynamicBufferInitialSize = 1024 * 1024;
+constexpr VkBufferUsageFlags kLineLoopDynamicIndirectBufferUsage =
+    VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT |
+    VK_BUFFER_USAGE_STORAGE_BUFFER_BIT;
+constexpr int kLineLoopDynamicIndirectBufferInitialSize = sizeof(VkDrawIndirectCommand) * 16;
 
 // This is an arbitrary max. We can change this later if necessary.
 constexpr uint32_t kDefaultDescriptorPoolMaxSets = 128;
@@ -354,7 +358,6 @@
         {
             ANGLE_TRY(flush(contextVk));
             mBuffer->unmap(contextVk->getDevice());
-            mBuffer->updateQueueSerial(contextVk->getCurrentQueueSerial());
 
             mInFlightBuffers.push_back(mBuffer);
             mBuffer = nullptr;
@@ -367,7 +370,7 @@
             // Clear the free list since the free buffers are now too small.
             for (BufferHelper *toFree : mBufferFreeList)
             {
-                toFree->release(contextVk);
+                toFree->release(contextVk->getRenderer());
             }
             mBufferFreeList.clear();
         }
@@ -444,25 +447,12 @@
     return angle::Result::Continue;
 }
 
-void DynamicBuffer::releaseBufferListToContext(ContextVk *contextVk,
-                                               std::vector<BufferHelper *> *buffers)
+void DynamicBuffer::releaseBufferListToRenderer(RendererVk *renderer,
+                                                std::vector<BufferHelper *> *buffers)
 {
     for (BufferHelper *toFree : *buffers)
     {
-        toFree->release(contextVk);
-        delete toFree;
-    }
-
-    buffers->clear();
-}
-
-void DynamicBuffer::releaseBufferListToDisplay(DisplayVk *display,
-                                               std::vector<GarbageObjectBase> *garbageQueue,
-                                               std::vector<BufferHelper *> *buffers)
-{
-    for (BufferHelper *toFree : *buffers)
-    {
-        toFree->release(display, garbageQueue);
+        toFree->release(renderer);
         delete toFree;
     }
 
@@ -480,41 +470,17 @@
     buffers->clear();
 }
 
-void DynamicBuffer::release(ContextVk *contextVk)
+void DynamicBuffer::release(RendererVk *renderer)
 {
     reset();
 
-    releaseBufferListToContext(contextVk, &mInFlightBuffers);
-    releaseBufferListToContext(contextVk, &mBufferFreeList);
+    releaseBufferListToRenderer(renderer, &mInFlightBuffers);
+    releaseBufferListToRenderer(renderer, &mBufferFreeList);
 
     if (mBuffer)
     {
-        mBuffer->unmap(contextVk->getDevice());
-
-        // The buffers may not have been recording commands, but they could be used to store data so
-        // they should live until at most this frame.  For example a vertex buffer filled entirely
-        // by the CPU currently never gets a chance to have its serial set.
-        mBuffer->updateQueueSerial(contextVk->getCurrentQueueSerial());
-        mBuffer->release(contextVk);
-        delete mBuffer;
-        mBuffer = nullptr;
-    }
-}
-
-void DynamicBuffer::release(DisplayVk *display, std::vector<GarbageObjectBase> *garbageQueue)
-{
-    reset();
-
-    releaseBufferListToDisplay(display, garbageQueue, &mInFlightBuffers);
-    releaseBufferListToDisplay(display, garbageQueue, &mBufferFreeList);
-
-    if (mBuffer)
-    {
-        mBuffer->unmap(display->getDevice());
-
-        mBuffer->release(display, garbageQueue);
-        delete mBuffer;
-        mBuffer = nullptr;
+        mBuffer->release(renderer);
+        SafeDelete(mBuffer);
     }
 }
 
@@ -525,7 +491,7 @@
         // If the dynamic buffer was resized we cannot reuse the retained buffer.
         if (toRelease->getSize() < mSize)
         {
-            toRelease->release(contextVk);
+            toRelease->release(contextVk->getRenderer());
         }
         else
         {
@@ -644,7 +610,7 @@
 
 void DescriptorPoolHelper::release(ContextVk *contextVk)
 {
-    contextVk->releaseObject(contextVk->getCurrentQueueSerial(), &mDescriptorPool);
+    contextVk->addGarbage(&mDescriptorPool);
 }
 
 angle::Result DescriptorPoolHelper::allocateSets(ContextVk *contextVk,
@@ -1105,6 +1071,8 @@
     // must be a multiple of the type indicated by indexType'.
     mDynamicIndexBuffer.init(renderer, kLineLoopDynamicBufferUsage, sizeof(uint32_t),
                              kLineLoopDynamicBufferInitialSize, true);
+    mDynamicIndirectBuffer.init(renderer, kLineLoopDynamicIndirectBufferUsage, sizeof(uint32_t),
+                                kLineLoopDynamicIndirectBufferInitialSize, true);
 }
 
 LineLoopHelper::~LineLoopHelper() = default;
@@ -1248,14 +1216,73 @@
     return angle::Result::Continue;
 }
 
+angle::Result LineLoopHelper::streamIndicesIndirect(ContextVk *contextVk,
+                                                    gl::DrawElementsType glIndexType,
+                                                    vk::BufferHelper *indexBuffer,
+                                                    vk::BufferHelper *indirectBuffer,
+                                                    VkDeviceSize indirectBufferOffset,
+                                                    vk::BufferHelper **indexBufferOut,
+                                                    VkDeviceSize *indexBufferOffsetOut,
+                                                    vk::BufferHelper **indirectBufferOut,
+                                                    VkDeviceSize *indirectBufferOffsetOut)
+{
+    VkIndexType indexType = gl_vk::kIndexTypeMap[glIndexType];
+
+    auto unitSize = (indexType == VK_INDEX_TYPE_UINT16 ? sizeof(uint16_t) : sizeof(uint32_t));
+    size_t allocateBytes = static_cast<size_t>(indexBuffer->getSize() + unitSize);
+
+    if (contextVk->getState().isPrimitiveRestartEnabled())
+    {
+        // If primitive restart, new index buffer is 135% the size of the original index buffer. The
+        // smallest lineloop with primitive restart is 3 indices (point 1, point 2 and restart
+        // value) when converted to linelist becomes 4 vertices. Expansion of 4/3. Any larger
+        // lineloops would have less overhead and require less extra space. Any incomplete
+        // primitives can be dropped or left incomplete and thus not increase the size of the
+        // destination index buffer. Since we don't know the number of indices being used we'll use
+        // the size of the index buffer as allocated as the index count.
+        size_t numInputIndices    = static_cast<size_t>(indexBuffer->getSize() / unitSize);
+        size_t numNewInputIndices = ((numInputIndices * 4) / 3) + 1;
+        allocateBytes             = static_cast<size_t>(numNewInputIndices * unitSize);
+    }
+
+    mDynamicIndexBuffer.releaseInFlightBuffers(contextVk);
+    mDynamicIndirectBuffer.releaseInFlightBuffers(contextVk);
+
+    ANGLE_TRY(mDynamicIndexBuffer.allocate(contextVk, allocateBytes, nullptr, nullptr,
+                                           indexBufferOffsetOut, nullptr));
+    *indexBufferOut = mDynamicIndexBuffer.getCurrentBuffer();
+
+    ANGLE_TRY(mDynamicIndirectBuffer.allocate(contextVk, sizeof(VkDrawIndexedIndirectCommand),
+                                              nullptr, nullptr, indirectBufferOffsetOut, nullptr));
+    *indirectBufferOut = mDynamicIndirectBuffer.getCurrentBuffer();
+
+    vk::BufferHelper *destIndexBuffer    = mDynamicIndexBuffer.getCurrentBuffer();
+    vk::BufferHelper *destIndirectBuffer = mDynamicIndirectBuffer.getCurrentBuffer();
+
+    // Copy relevant section of the source into destination at allocated offset.  Note that the
+    // offset returned by allocate() above is in bytes. As is the indices offset pointer.
+    UtilsVk::ConvertLineLoopIndexIndirectParameters params = {};
+    params.indirectBufferOffset    = static_cast<uint32_t>(indirectBufferOffset);
+    params.dstIndirectBufferOffset = static_cast<uint32_t>(*indirectBufferOffsetOut);
+    params.dstIndexBufferOffset    = static_cast<uint32_t>(*indexBufferOffsetOut);
+    params.is32Bit                 = unitSize == 4;
+
+    ANGLE_TRY(contextVk->getUtils().convertLineLoopIndexIndirectBuffer(
+        contextVk, indirectBuffer, destIndirectBuffer, destIndexBuffer, indexBuffer, params));
+
+    return angle::Result::Continue;
+}
+
 void LineLoopHelper::release(ContextVk *contextVk)
 {
-    mDynamicIndexBuffer.release(contextVk);
+    mDynamicIndexBuffer.release(contextVk->getRenderer());
+    mDynamicIndirectBuffer.release(contextVk->getRenderer());
 }
 
 void LineLoopHelper::destroy(VkDevice device)
 {
     mDynamicIndexBuffer.destroy(device);
+    mDynamicIndirectBuffer.destroy(device);
 }
 
 // static
@@ -1282,6 +1309,14 @@
                                  const VkBufferCreateInfo &createInfo,
                                  VkMemoryPropertyFlags memoryPropertyFlags)
 {
+    // TODO: Remove with anglebug.com/2162: Vulkan: Implement device memory sub-allocation
+    // Check if we have too many resources allocated already and need to free some before allocating
+    // more and (possibly) exceeding the device's limits.
+    if (contextVk->shouldFlush())
+    {
+        ANGLE_TRY(contextVk->flushImpl(nullptr));
+    }
+
     mSize = createInfo.size;
     ANGLE_VK_TRY(contextVk, mBuffer.init(contextVk->getDevice(), createInfo));
     return vk::AllocateBufferMemory(contextVk, memoryPropertyFlags, &mMemoryPropertyFlags, nullptr,
@@ -1299,26 +1334,13 @@
     mDeviceMemory.destroy(device);
 }
 
-void BufferHelper::release(ContextVk *contextVk)
+void BufferHelper::release(RendererVk *renderer)
 {
-    unmap(contextVk->getDevice());
+    unmap(renderer->getDevice());
     mSize       = 0;
     mViewFormat = nullptr;
 
-    contextVk->releaseObject(getStoredQueueSerial(), &mBuffer);
-    contextVk->releaseObject(getStoredQueueSerial(), &mBufferView);
-    contextVk->releaseObject(getStoredQueueSerial(), &mDeviceMemory);
-}
-
-void BufferHelper::release(DisplayVk *display, std::vector<GarbageObjectBase> *garbageQueue)
-{
-    unmap(display->getDevice());
-    mSize       = 0;
-    mViewFormat = nullptr;
-
-    mBuffer.dumpResources(garbageQueue);
-    mBufferView.dumpResources(garbageQueue);
-    mDeviceMemory.dumpResources(garbageQueue);
+    renderer->collectGarbageAndReinit(&mUse, &mBuffer, &mBufferView, &mDeviceMemory);
 }
 
 bool BufferHelper::needsOnWriteBarrier(VkAccessFlags readAccessType,
@@ -1464,6 +1486,8 @@
       mSamples(0),
       mCurrentLayout(ImageLayout::Undefined),
       mCurrentQueueFamilyIndex(std::numeric_limits<uint32_t>::max()),
+      mBaseLevel(0),
+      mMaxLevel(0),
       mLayerCount(0),
       mLevelCount(0)
 {}
@@ -1477,6 +1501,8 @@
       mSamples(other.mSamples),
       mCurrentLayout(other.mCurrentLayout),
       mCurrentQueueFamilyIndex(other.mCurrentQueueFamilyIndex),
+      mBaseLevel(other.mBaseLevel),
+      mMaxLevel(other.mMaxLevel),
       mLayerCount(other.mLayerCount),
       mLevelCount(other.mLevelCount),
       mStagingBuffer(std::move(other.mStagingBuffer)),
@@ -1484,6 +1510,8 @@
 {
     ASSERT(this != &other);
     other.mCurrentLayout = ImageLayout::Undefined;
+    other.mBaseLevel     = 0;
+    other.mMaxLevel      = 0;
     other.mLayerCount    = 0;
     other.mLevelCount    = 0;
 }
@@ -1508,11 +1536,14 @@
                                 const Format &format,
                                 GLint samples,
                                 VkImageUsageFlags usage,
+                                uint32_t baseLevel,
+                                uint32_t maxLevel,
                                 uint32_t mipLevels,
                                 uint32_t layerCount)
 {
     return initExternal(context, textureType, extents, format, samples, usage,
-                        ImageLayout::Undefined, nullptr, mipLevels, layerCount);
+                        ImageLayout::Undefined, nullptr, baseLevel, maxLevel, mipLevels,
+                        layerCount);
 }
 
 angle::Result ImageHelper::initExternal(Context *context,
@@ -1523,6 +1554,8 @@
                                         VkImageUsageFlags usage,
                                         ImageLayout initialLayout,
                                         const void *externalImageCreateInfo,
+                                        uint32_t baseLevel,
+                                        uint32_t maxLevel,
                                         uint32_t mipLevels,
                                         uint32_t layerCount)
 {
@@ -1531,6 +1564,8 @@
     mExtents    = extents;
     mFormat     = &format;
     mSamples    = samples;
+    mBaseLevel  = baseLevel;
+    mMaxLevel   = maxLevel;
     mLevelCount = mipLevels;
     mLayerCount = layerCount;
 
@@ -1565,38 +1600,19 @@
     return angle::Result::Continue;
 }
 
-void ImageHelper::releaseImage(ContextVk *contextVk)
+void ImageHelper::releaseImage(RendererVk *renderer)
 {
-    contextVk->releaseObject(getStoredQueueSerial(), &mImage);
-    contextVk->releaseObject(getStoredQueueSerial(), &mDeviceMemory);
+    renderer->collectGarbageAndReinit(&mUse, &mImage, &mDeviceMemory);
 }
 
-void ImageHelper::releaseImage(DisplayVk *display, std::vector<GarbageObjectBase> *garbageQueue)
-{
-    mImage.dumpResources(garbageQueue);
-    mDeviceMemory.dumpResources(garbageQueue);
-}
-
-void ImageHelper::releaseStagingBuffer(ContextVk *contextVk)
+void ImageHelper::releaseStagingBuffer(RendererVk *renderer)
 {
     // Remove updates that never made it to the texture.
     for (SubresourceUpdate &update : mSubresourceUpdates)
     {
-        update.release(contextVk);
+        update.release(renderer);
     }
-    mStagingBuffer.release(contextVk);
-    mSubresourceUpdates.clear();
-}
-
-void ImageHelper::releaseStagingBuffer(DisplayVk *display,
-                                       std::vector<GarbageObjectBase> *garbageQueue)
-{
-    // Remove updates that never made it to the texture.
-    for (SubresourceUpdate &update : mSubresourceUpdates)
-    {
-        update.release(display, garbageQueue);
-    }
-    mStagingBuffer.release(display, garbageQueue);
+    mStagingBuffer.release(renderer);
     mSubresourceUpdates.clear();
 }
 
@@ -1686,6 +1702,7 @@
 {
     mImage.destroy(device);
     mDeviceMemory.destroy(device);
+    mStagingBuffer.destroy(device);
     mCurrentLayout = ImageLayout::Undefined;
     mLayerCount    = 0;
     mLevelCount    = 0;
@@ -1755,12 +1772,6 @@
     return GetFormatAspectFlags(mFormat->imageFormat());
 }
 
-void ImageHelper::dumpResources(Serial serial, std::vector<GarbageObject> *garbageQueue)
-{
-    mImage.dumpResources(serial, garbageQueue);
-    mDeviceMemory.dumpResources(serial, garbageQueue);
-}
-
 VkImageLayout ImageHelper::getCurrentLayout() const
 {
     return kImageMemoryBarrierData[mCurrentLayout].layout;
@@ -1809,6 +1820,17 @@
     forceChangeLayoutAndQueue(aspectMask, newLayout, newQueueFamilyIndex, commandBuffer);
 }
 
+uint32_t ImageHelper::getBaseLevel()
+{
+    return mBaseLevel;
+}
+
+void ImageHelper::setBaseAndMaxLevels(uint32_t baseLevel, uint32_t maxLevel)
+{
+    mBaseLevel = baseLevel;
+    mMaxLevel  = maxLevel;
+}
+
 void ImageHelper::forceChangeLayoutAndQueue(VkImageAspectFlags aspectMask,
                                             ImageLayout newLayout,
                                             uint32_t newQueueFamilyIndex,
@@ -2021,8 +2043,13 @@
         mipWidth  = nextMipWidth;
         mipHeight = nextMipHeight;
 
-        commandBuffer->blitImage(mImage, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, mImage,
-                                 VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 1, &blit, VK_FILTER_LINEAR);
+        bool formatSupportsLinearFiltering = contextVk->getRenderer()->hasImageFormatFeatureBits(
+            getFormat().vkImageFormat, VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT);
+
+        commandBuffer->blitImage(
+            mImage, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, mImage,
+            VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 1, &blit,
+            formatSupportsLinearFiltering ? VK_FILTER_LINEAR : VK_FILTER_NEAREST);
     }
 
     // Transition the last mip level to the same layout as all the other ones, so we can declare
@@ -2064,7 +2091,7 @@
         auto update = mSubresourceUpdates.begin() + index;
         if (update->isUpdateToLayerLevel(layerIndex, levelIndex))
         {
-            update->release(contextVk);
+            update->release(contextVk->getRenderer());
             mSubresourceUpdates.erase(update);
         }
         else
@@ -2157,8 +2184,24 @@
 
             // The generic load functions don't handle tightly packing D32FS8 to D32F & S8 so call
             // special case load functions.
-            loadFunctionInfo.loadFunction = angle::LoadD32FS8X24ToD32F;
-            stencilLoadFunction           = angle::LoadX32S8ToS8;
+            switch (type)
+            {
+                case GL_UNSIGNED_INT:
+                    loadFunctionInfo.loadFunction = angle::LoadD32ToD32F;
+                    stencilLoadFunction           = nullptr;
+                    break;
+                case GL_DEPTH32F_STENCIL8:
+                case GL_FLOAT_32_UNSIGNED_INT_24_8_REV:
+                    loadFunctionInfo.loadFunction = angle::LoadD32FS8X24ToD32F;
+                    stencilLoadFunction           = angle::LoadX32S8ToS8;
+                    break;
+                case GL_UNSIGNED_INT_24_8_OES:
+                    loadFunctionInfo.loadFunction = angle::LoadD24S8ToD32F;
+                    stencilLoadFunction           = angle::LoadX24S8ToS8;
+                    break;
+                default:
+                    UNREACHABLE();
+            }
         }
         else
         {
@@ -2249,7 +2292,7 @@
         stencilCopy.imageOffset                     = copy.imageOffset;
         stencilCopy.imageExtent                     = copy.imageExtent;
         stencilCopy.imageSubresource.aspectMask     = VK_IMAGE_ASPECT_STENCIL_BIT;
-        mSubresourceUpdates.emplace_back(bufferHandle, stencilCopy);
+        mSubresourceUpdates.emplace_back(mStagingBuffer.getCurrentBuffer(), stencilCopy);
 
         aspectFlags &= ~VK_IMAGE_ASPECT_STENCIL_BIT;
     }
@@ -2273,7 +2316,7 @@
     if (aspectFlags)
     {
         copy.imageSubresource.aspectMask = aspectFlags;
-        mSubresourceUpdates.emplace_back(bufferHandle, copy);
+        mSubresourceUpdates.emplace_back(mStagingBuffer.getCurrentBuffer(), copy);
     }
 
     return angle::Result::Continue;
@@ -2306,7 +2349,39 @@
     gl_vk::GetOffset(offset, &copy.imageOffset);
     gl_vk::GetExtent(glExtents, &copy.imageExtent);
 
-    mSubresourceUpdates.emplace_back(bufferHandle, copy);
+    mSubresourceUpdates.emplace_back(mStagingBuffer.getCurrentBuffer(), copy);
+
+    return angle::Result::Continue;
+}
+
+angle::Result ImageHelper::stageSubresourceUpdateFromBuffer(ContextVk *contextVk,
+                                                            size_t allocationSize,
+                                                            uint32_t mipLevel,
+                                                            uint32_t baseArrayLayer,
+                                                            uint32_t layerCount,
+                                                            const gl::Extents &glExtents,
+                                                            const gl::Offset &offset,
+                                                            BufferHelper *bufferHelper,
+                                                            VkDeviceSize stagingOffset)
+{
+    // This function stages an update from explicitly provided handle and offset
+    // It is used when the texture base level has changed, and we need to propagate data
+
+    VkBufferImageCopy copy               = {};
+    copy.bufferOffset                    = stagingOffset;
+    copy.bufferRowLength                 = glExtents.width;
+    copy.bufferImageHeight               = glExtents.height;
+    copy.imageSubresource.aspectMask     = VK_IMAGE_ASPECT_COLOR_BIT;
+    copy.imageSubresource.mipLevel       = mipLevel;
+    copy.imageSubresource.baseArrayLayer = baseArrayLayer;
+    copy.imageSubresource.layerCount     = layerCount;
+
+    ASSERT(getAspectFlags() == VK_IMAGE_ASPECT_COLOR_BIT);
+
+    gl_vk::GetOffset(offset, &copy.imageOffset);
+    gl_vk::GetExtent(glExtents, &copy.imageExtent);
+
+    mSubresourceUpdates.emplace_back(bufferHelper, copy);
 
     return angle::Result::Continue;
 }
@@ -2404,7 +2479,7 @@
     gl_vk::GetExtent(dstExtent, &copyToImage.imageExtent);
 
     // 3- enqueue the destination image subresource update
-    mSubresourceUpdates.emplace_back(bufferHandle, copyToImage);
+    mSubresourceUpdates.emplace_back(mStagingBuffer.getCurrentBuffer(), copyToImage);
     return angle::Result::Continue;
 }
 
@@ -2489,12 +2564,15 @@
 angle::Result ImageHelper::allocateStagingMemory(ContextVk *contextVk,
                                                  size_t sizeInBytes,
                                                  uint8_t **ptrOut,
-                                                 VkBuffer *handleOut,
+                                                 BufferHelper **bufferOut,
                                                  VkDeviceSize *offsetOut,
                                                  bool *newBufferAllocatedOut)
 {
-    return mStagingBuffer.allocate(contextVk, sizeInBytes, ptrOut, handleOut, offsetOut,
-                                   newBufferAllocatedOut);
+    VkBuffer handle;
+    ANGLE_TRY(mStagingBuffer.allocate(contextVk, sizeInBytes, ptrOut, &handle, offsetOut,
+                                      newBufferAllocatedOut));
+    *bufferOut = mStagingBuffer.getCurrentBuffer();
+    return angle::Result::Continue;
 }
 
 angle::Result ImageHelper::flushStagedUpdates(ContextVk *contextVk,
@@ -2526,16 +2604,16 @@
 
     for (SubresourceUpdate &update : mSubresourceUpdates)
     {
-        ASSERT(update.updateSource == SubresourceUpdate::UpdateSource::Clear ||
-               (update.updateSource == SubresourceUpdate::UpdateSource::Buffer &&
-                update.buffer.bufferHandle != VK_NULL_HANDLE) ||
-               (update.updateSource == SubresourceUpdate::UpdateSource::Image &&
-                update.image.image != nullptr && update.image.image->valid()));
+        ASSERT(update.updateSource == UpdateSource::Clear ||
+               (update.updateSource == UpdateSource::Buffer &&
+                update.buffer.bufferHelper != nullptr) ||
+               (update.updateSource == UpdateSource::Image && update.image.image != nullptr &&
+                update.image.image->valid()));
 
         uint32_t updateMipLevel;
         uint32_t updateBaseLayer;
         uint32_t updateLayerCount;
-        if (update.updateSource == SubresourceUpdate::UpdateSource::Clear)
+        if (update.updateSource == UpdateSource::Clear)
         {
             updateMipLevel   = update.clear.levelIndex;
             updateBaseLayer  = update.clear.layerIndex;
@@ -2556,7 +2634,9 @@
 
         // If the update level is not within the requested range, skip the update.
         const bool isUpdateLevelOutsideRange =
-            updateMipLevel < levelStart || updateMipLevel >= levelEnd;
+            updateMipLevel < (levelStart + mBaseLevel) ||
+            (updateMipLevel >= (levelEnd + mBaseLevel) || updateMipLevel > mMaxLevel);
+
         // If the update layers don't intersect the requested layers, skip the update.
         const bool areUpdateLayersOutsideRange =
             updateBaseLayer + updateLayerCount <= layerStart || updateBaseLayer >= layerEnd;
@@ -2567,6 +2647,23 @@
             continue;
         }
 
+        if (mBaseLevel > 0)
+        {
+            // We need to shift the miplevel in the update to fall into the vkiamge
+            if (update.updateSource == UpdateSource::Clear)
+            {
+                update.clear.levelIndex -= mBaseLevel;
+            }
+            else if (update.updateSource == UpdateSource::Buffer)
+            {
+                update.buffer.copyRegion.imageSubresource.mipLevel -= mBaseLevel;
+            }
+            else if (update.updateSource == UpdateSource::Image)
+            {
+                update.image.copyRegion.dstSubresource.mipLevel -= mBaseLevel;
+            }
+        }
+
         if (updateLayerCount >= kMaxParallelSubresourceUpload)
         {
             // If there are more subresources than bits we can track, always insert a barrier.
@@ -2590,29 +2687,35 @@
             subresourceUploadsInProgress |= subresourceHash;
         }
 
-        if (update.updateSource == SubresourceUpdate::UpdateSource::Clear)
+        if (update.updateSource == UpdateSource::Clear)
         {
             clear(update.clear.value, updateMipLevel, updateBaseLayer, updateLayerCount,
                   commandBuffer);
         }
-        else if (update.updateSource == SubresourceUpdate::UpdateSource::Buffer)
+        else if (update.updateSource == UpdateSource::Buffer)
         {
-            commandBuffer->copyBufferToImage(update.buffer.bufferHandle, mImage, getCurrentLayout(),
-                                             1, &update.buffer.copyRegion);
+            BufferUpdate &bufferUpdate = update.buffer;
+
+            BufferHelper *currentBuffer = bufferUpdate.bufferHelper;
+            ASSERT(currentBuffer && currentBuffer->valid());
+            currentBuffer->onGraphAccess(contextVk->getCommandGraph());
+
+            commandBuffer->copyBufferToImage(currentBuffer->getBuffer().getHandle(), mImage,
+                                             getCurrentLayout(), 1, &update.buffer.copyRegion);
         }
         else
         {
             update.image.image->changeLayout(aspectFlags, vk::ImageLayout::TransferSrc,
                                              commandBuffer);
 
-            update.image.image->addReadDependency(this);
+            update.image.image->addReadDependency(contextVk, this);
 
             commandBuffer->copyImage(update.image.image->getImage(),
                                      update.image.image->getCurrentLayout(), mImage,
                                      getCurrentLayout(), 1, &update.image.copyRegion);
         }
 
-        update.release(contextVk);
+        update.release(contextVk->getRenderer());
     }
 
     // Only remove the updates that were actually applied to the image.
@@ -2634,17 +2737,59 @@
     return flushStagedUpdates(contextVk, 0, mLevelCount, 0, mLayerCount, commandBuffer);
 }
 
+bool ImageHelper::isUpdateStaged(uint32_t level, uint32_t layer)
+{
+    // Check to see if any updates are staged for the given level and layer
+
+    if (mSubresourceUpdates.empty())
+    {
+        return false;
+    }
+
+    for (SubresourceUpdate &update : mSubresourceUpdates)
+    {
+        uint32_t updateMipLevel;
+        uint32_t updateBaseLayer;
+        uint32_t updateLayerCount;
+
+        if (update.updateSource == UpdateSource::Clear)
+        {
+            updateMipLevel   = update.clear.levelIndex;
+            updateBaseLayer  = update.clear.layerIndex;
+            updateLayerCount = update.clear.layerCount;
+        }
+        else
+        {
+            const VkImageSubresourceLayers &dstSubresource = update.dstSubresource();
+            updateMipLevel                                 = dstSubresource.mipLevel;
+            updateBaseLayer                                = dstSubresource.baseArrayLayer;
+            updateLayerCount                               = dstSubresource.layerCount;
+        }
+
+        if (updateMipLevel == level)
+        {
+            if (layer >= updateBaseLayer && layer < (updateBaseLayer + updateLayerCount))
+            {
+                // The level matches, and the layer is within the range
+                return true;
+            }
+        }
+    }
+
+    return false;
+}
+
 // ImageHelper::SubresourceUpdate implementation
 ImageHelper::SubresourceUpdate::SubresourceUpdate()
     : updateSource(UpdateSource::Buffer), buffer{VK_NULL_HANDLE}
 {}
 
-ImageHelper::SubresourceUpdate::SubresourceUpdate(VkBuffer bufferHandleIn,
+ImageHelper::SubresourceUpdate::SubresourceUpdate(BufferHelper *bufferHelperIn,
                                                   const VkBufferImageCopy &copyRegionIn)
-    : updateSource(UpdateSource::Buffer), buffer{bufferHandleIn, copyRegionIn}
+    : updateSource(UpdateSource::Buffer), buffer{bufferHelperIn, copyRegionIn}
 {}
 
-ImageHelper::SubresourceUpdate::SubresourceUpdate(vk::ImageHelper *imageIn,
+ImageHelper::SubresourceUpdate::SubresourceUpdate(ImageHelper *imageIn,
                                                   const VkImageCopy &copyRegionIn)
     : updateSource(UpdateSource::Image), image{imageIn, copyRegionIn}
 {}
@@ -2676,23 +2821,12 @@
     }
 }
 
-void ImageHelper::SubresourceUpdate::release(ContextVk *contextVk)
+void ImageHelper::SubresourceUpdate::release(RendererVk *renderer)
 {
     if (updateSource == UpdateSource::Image)
     {
-        image.image->releaseImage(contextVk);
-        image.image->releaseStagingBuffer(contextVk);
-        SafeDelete(image.image);
-    }
-}
-
-void ImageHelper::SubresourceUpdate::release(DisplayVk *display,
-                                             std::vector<GarbageObjectBase> *garbageQueue)
-{
-    if (updateSource == UpdateSource::Image)
-    {
-        image.image->releaseImage(display, garbageQueue);
-        image.image->releaseStagingBuffer(display, garbageQueue);
+        image.image->releaseImage(renderer);
+        image.image->releaseStagingBuffer(renderer);
         SafeDelete(image.image);
     }
 }
@@ -2724,7 +2858,7 @@
 
 void FramebufferHelper::release(ContextVk *contextVk)
 {
-    contextVk->releaseObject(getStoredQueueSerial(), &mFramebuffer);
+    contextVk->addGarbage(&mFramebuffer);
 }
 
 // FramebufferHelper implementation.
@@ -2756,7 +2890,7 @@
 void ShaderProgramHelper::release(ContextVk *contextVk)
 {
     mGraphicsPipelines.release(contextVk);
-    contextVk->releaseObject(mComputePipeline.getSerial(), &mComputePipeline.get());
+    contextVk->addGarbage(&mComputePipeline.get());
     for (BindingPointer<ShaderAndSerial> &shader : mShaders)
     {
         shader.reset();
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_helpers.h b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_helpers.h
index b64cd5d..e183dda 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_helpers.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_helpers.h
@@ -82,8 +82,7 @@
     angle::Result invalidate(ContextVk *contextVk);
 
     // This releases resources when they might currently be in use.
-    void release(ContextVk *contextVk);
-    void release(DisplayVk *display, std::vector<GarbageObjectBase> *garbageQueue);
+    void release(RendererVk *renderer);
 
     // This releases all the buffers that have been allocated since this was last called.
     void releaseInFlightBuffers(ContextVk *contextVk);
@@ -101,10 +100,7 @@
   private:
     void reset();
     angle::Result allocateNewBuffer(ContextVk *contextVk);
-    void releaseBufferListToContext(ContextVk *contextVk, std::vector<BufferHelper *> *buffers);
-    void releaseBufferListToDisplay(DisplayVk *display,
-                                    std::vector<GarbageObjectBase> *garbageQueue,
-                                    std::vector<BufferHelper *> *buffers);
+    void releaseBufferListToRenderer(RendererVk *renderer, std::vector<BufferHelper *> *buffers);
     void destroyBufferList(VkDevice device, std::vector<BufferHelper *> *buffers);
 
     VkBufferUsageFlags mUsage;
@@ -406,7 +402,7 @@
     angle::Result getIndexBufferForDrawArrays(ContextVk *contextVk,
                                               uint32_t clampedVertexCount,
                                               GLint firstVertex,
-                                              vk::BufferHelper **bufferOut,
+                                              BufferHelper **bufferOut,
                                               VkDeviceSize *offsetOut);
 
     angle::Result getIndexBufferForElementArrayBuffer(ContextVk *contextVk,
@@ -414,7 +410,7 @@
                                                       gl::DrawElementsType glIndexType,
                                                       int indexCount,
                                                       intptr_t elementArrayOffset,
-                                                      vk::BufferHelper **bufferOut,
+                                                      BufferHelper **bufferOut,
                                                       VkDeviceSize *bufferOffsetOut,
                                                       uint32_t *indexCountOut);
 
@@ -422,17 +418,28 @@
                                 gl::DrawElementsType glIndexType,
                                 GLsizei indexCount,
                                 const uint8_t *srcPtr,
-                                vk::BufferHelper **bufferOut,
+                                BufferHelper **bufferOut,
                                 VkDeviceSize *bufferOffsetOut,
                                 uint32_t *indexCountOut);
 
+    angle::Result streamIndicesIndirect(ContextVk *contextVk,
+                                        gl::DrawElementsType glIndexType,
+                                        vk::BufferHelper *indexBuffer,
+                                        vk::BufferHelper *indirectBuffer,
+                                        VkDeviceSize indirectBufferOffset,
+                                        vk::BufferHelper **indexBufferOut,
+                                        VkDeviceSize *indexBufferOffsetOut,
+                                        vk::BufferHelper **indirectBufferOut,
+                                        VkDeviceSize *indirectBufferOffsetOut);
+
     void release(ContextVk *contextVk);
     void destroy(VkDevice device);
 
-    static void Draw(uint32_t count, vk::CommandBuffer *commandBuffer);
+    static void Draw(uint32_t count, CommandBuffer *commandBuffer);
 
   private:
     DynamicBuffer mDynamicIndexBuffer;
+    DynamicBuffer mDynamicIndirectBuffer;
 };
 
 class FramebufferHelper;
@@ -448,8 +455,7 @@
                        VkMemoryPropertyFlags memoryPropertyFlags);
     void destroy(VkDevice device);
 
-    void release(ContextVk *contextVk);
-    void release(DisplayVk *display, std::vector<GarbageObjectBase> *garbageQueue);
+    void release(RendererVk *renderer);
 
     bool valid() const { return mBuffer.valid(); }
     const Buffer &getBuffer() const { return mBuffer; }
@@ -460,9 +466,9 @@
     // made for dependencies to non-buffer resources, as only one of two resources participating in
     // the dependency would require a memory barrier.  Note that onWrite takes read access flags
     // too, as output buffers could be read as well.
-    void onRead(CommandGraphResource *reader, VkAccessFlags readAccessType)
+    void onRead(ContextVk *contextVk, CommandGraphResource *reader, VkAccessFlags readAccessType)
     {
-        addReadDependency(reader);
+        addReadDependency(contextVk, reader);
         onReadAccess(reader, readAccessType);
     }
     void onWrite(ContextVk *contextVk,
@@ -470,7 +476,7 @@
                  VkAccessFlags readAccessType,
                  VkAccessFlags writeAccessType)
     {
-        addWriteDependency(writer);
+        addWriteDependency(contextVk, writer);
         onWriteAccess(contextVk, readAccessType, writeAccessType);
     }
     // Helper for setting a graph dependency between two buffers.  This is a specialized function as
@@ -481,7 +487,7 @@
                         VkAccessFlags readAccessType,
                         VkAccessFlags writeAccessType)
     {
-        addReadDependency(reader);
+        addReadDependency(contextVk, reader);
         onReadAccess(reader, readAccessType);
         reader->onWriteAccess(contextVk, 0, writeAccessType);
     }
@@ -644,7 +650,7 @@
     ~ImageHelper() override;
 
     void initStagingBuffer(RendererVk *renderer,
-                           const vk::Format &format,
+                           const Format &format,
                            VkBufferUsageFlags usageFlags,
                            size_t initialSize);
 
@@ -654,6 +660,8 @@
                        const Format &format,
                        GLint samples,
                        VkImageUsageFlags usage,
+                       uint32_t baseLevel,
+                       uint32_t maxLevel,
                        uint32_t mipLevels,
                        uint32_t layerCount);
     angle::Result initExternal(Context *context,
@@ -664,6 +672,8 @@
                                VkImageUsageFlags usage,
                                ImageLayout initialLayout,
                                const void *externalImageCreateInfo,
+                               uint32_t baseLevel,
+                               uint32_t maxLevel,
                                uint32_t mipLevels,
                                uint32_t layerCount);
     angle::Result initMemory(Context *context,
@@ -703,17 +713,13 @@
                                 VkImageUsageFlags usage,
                                 uint32_t layerCount);
 
-    void releaseImage(ContextVk *contextVk);
-    void releaseImage(DisplayVk *display, std::vector<GarbageObjectBase> *garbageQueue);
-
-    void releaseStagingBuffer(ContextVk *contextVk);
-    void releaseStagingBuffer(DisplayVk *display, std::vector<GarbageObjectBase> *garbageQueue);
+    void releaseImage(RendererVk *rendererVk);
+    void releaseStagingBuffer(RendererVk *renderer);
 
     bool valid() const { return mImage.valid(); }
 
     VkImageAspectFlags getAspectFlags() const;
     void destroy(VkDevice device);
-    void dumpResources(Serial serial, std::vector<GarbageObject> *garbageQueue);
 
     void init2DWeakReference(VkImage handle,
                              const gl::Extents &glExtents,
@@ -741,7 +747,7 @@
                uint32_t mipLevel,
                uint32_t baseArrayLayer,
                uint32_t layerCount,
-               vk::CommandBuffer *commandBuffer);
+               CommandBuffer *commandBuffer);
 
     gl::Extents getSize(const gl::ImageIndex &index) const;
 
@@ -752,13 +758,13 @@
                      const gl::Extents &copySize,
                      const VkImageSubresourceLayers &srcSubresources,
                      const VkImageSubresourceLayers &dstSubresources,
-                     vk::CommandBuffer *commandBuffer);
+                     CommandBuffer *commandBuffer);
 
     angle::Result generateMipmapsWithBlit(ContextVk *contextVk, GLuint maxLevel);
 
     // Resolve this image into a destination image.  This image should be in the TransferSrc layout.
     // The destination image is automatically transitioned into TransferDst.
-    void resolve(ImageHelper *dest, const VkImageResolve &region, vk::CommandBuffer *commandBuffer);
+    void resolve(ImageHelper *dest, const VkImageResolve &region, CommandBuffer *commandBuffer);
 
     // Data staging
     void removeStagedUpdates(ContextVk *contextVk, const gl::ImageIndex &index);
@@ -771,7 +777,7 @@
                                          const gl::PixelUnpackState &unpack,
                                          GLenum type,
                                          const uint8_t *pixels,
-                                         const vk::Format &vkFormat);
+                                         const Format &vkFormat);
 
     angle::Result stageSubresourceUpdateAndGetData(ContextVk *contextVk,
                                                    size_t allocationSize,
@@ -780,6 +786,16 @@
                                                    const gl::Offset &offset,
                                                    uint8_t **destData);
 
+    angle::Result stageSubresourceUpdateFromBuffer(ContextVk *contextVk,
+                                                   size_t allocationSize,
+                                                   uint32_t mipLevel,
+                                                   uint32_t baseArrayLayer,
+                                                   uint32_t layerCount,
+                                                   const gl::Extents &glExtents,
+                                                   const gl::Offset &offset,
+                                                   BufferHelper *stagingBuffer,
+                                                   VkDeviceSize stagingOffset);
+
     angle::Result stageSubresourceUpdateFromFramebuffer(const gl::Context *context,
                                                         const gl::ImageIndex &index,
                                                         const gl::Rectangle &sourceArea,
@@ -788,7 +804,7 @@
                                                         const gl::InternalFormat &formatInfo,
                                                         FramebufferVk *framebufferVk);
 
-    void stageSubresourceUpdateFromImage(vk::ImageHelper *image,
+    void stageSubresourceUpdateFromImage(ImageHelper *image,
                                          const gl::ImageIndex &index,
                                          const gl::Offset &destOffset,
                                          const gl::Extents &glExtents,
@@ -810,7 +826,7 @@
     angle::Result allocateStagingMemory(ContextVk *contextVk,
                                         size_t sizeInBytes,
                                         uint8_t **ptrOut,
-                                        VkBuffer *handleOut,
+                                        BufferHelper **bufferOut,
                                         VkDeviceSize *offsetOut,
                                         bool *newBufferAllocatedOut);
 
@@ -822,12 +838,14 @@
                                      uint32_t levelEnd,
                                      uint32_t layerStart,
                                      uint32_t layerEnd,
-                                     vk::CommandBuffer *commandBuffer);
+                                     CommandBuffer *commandBuffer);
     // Creates a command buffer and flushes all staged updates.  This is used for one-time
     // initialization of resources that we don't expect to accumulate further staged updates, such
     // as with renderbuffers or surface images.
     angle::Result flushAllStagedUpdates(ContextVk *contextVk);
 
+    bool isUpdateStaged(uint32_t level, uint32_t layer);
+
     bool hasStagedUpdates() const { return !mSubresourceUpdates.empty(); }
 
     // changeLayout automatically skips the layout change if it's unnecessary.  This function can be
@@ -837,7 +855,7 @@
 
     void changeLayout(VkImageAspectFlags aspectMask,
                       ImageLayout newLayout,
-                      vk::CommandBuffer *commandBuffer);
+                      CommandBuffer *commandBuffer);
 
     bool isQueueChangeNeccesary(uint32_t newQueueFamilyIndex) const
     {
@@ -847,13 +865,16 @@
     void changeLayoutAndQueue(VkImageAspectFlags aspectMask,
                               ImageLayout newLayout,
                               uint32_t newQueueFamilyIndex,
-                              vk::CommandBuffer *commandBuffer);
+                              CommandBuffer *commandBuffer);
+
+    uint32_t getBaseLevel();
+    void setBaseAndMaxLevels(uint32_t baseLevel, uint32_t maxLevel);
 
   private:
     void forceChangeLayoutAndQueue(VkImageAspectFlags aspectMask,
                                    ImageLayout newLayout,
                                    uint32_t newQueueFamilyIndex,
-                                   vk::CommandBuffer *commandBuffer);
+                                   CommandBuffer *commandBuffer);
 
     void stageSubresourceClear(const gl::ImageIndex &index,
                                const angle::Format &format,
@@ -865,7 +886,7 @@
                     uint32_t levelCount,
                     uint32_t baseArrayLayer,
                     uint32_t layerCount,
-                    vk::CommandBuffer *commandBuffer);
+                    CommandBuffer *commandBuffer);
 
     void clearDepthStencil(VkImageAspectFlags imageAspectFlags,
                            VkImageAspectFlags clearAspectFlags,
@@ -874,18 +895,41 @@
                            uint32_t levelCount,
                            uint32_t baseArrayLayer,
                            uint32_t layerCount,
-                           vk::CommandBuffer *commandBuffer);
+                           CommandBuffer *commandBuffer);
+
+    enum class UpdateSource
+    {
+        Clear,
+        Buffer,
+        Image,
+    };
+    struct ClearUpdate
+    {
+        VkClearValue value;
+        uint32_t levelIndex;
+        uint32_t layerIndex;
+        uint32_t layerCount;
+    };
+    struct BufferUpdate
+    {
+        BufferHelper *bufferHelper;
+        VkBufferImageCopy copyRegion;
+    };
+    struct ImageUpdate
+    {
+        ImageHelper *image;
+        VkImageCopy copyRegion;
+    };
 
     struct SubresourceUpdate
     {
         SubresourceUpdate();
-        SubresourceUpdate(VkBuffer bufferHandle, const VkBufferImageCopy &copyRegion);
-        SubresourceUpdate(vk::ImageHelper *image, const VkImageCopy &copyRegion);
+        SubresourceUpdate(BufferHelper *bufferHelperIn, const VkBufferImageCopy &copyRegion);
+        SubresourceUpdate(ImageHelper *image, const VkImageCopy &copyRegion);
         SubresourceUpdate(const VkClearValue &clearValue, const gl::ImageIndex &imageIndex);
         SubresourceUpdate(const SubresourceUpdate &other);
 
-        void release(ContextVk *contextVk);
-        void release(DisplayVk *display, std::vector<GarbageObjectBase> *garbageQueue);
+        void release(RendererVk *renderer);
 
         const VkImageSubresourceLayers &dstSubresource() const
         {
@@ -895,30 +939,6 @@
         }
         bool isUpdateToLayerLevel(uint32_t layerIndex, uint32_t levelIndex) const;
 
-        enum class UpdateSource
-        {
-            Clear,
-            Buffer,
-            Image,
-        };
-        struct ClearUpdate
-        {
-            VkClearValue value;
-            uint32_t levelIndex;
-            uint32_t layerIndex;
-            uint32_t layerCount;
-        };
-        struct BufferUpdate
-        {
-            VkBuffer bufferHandle;
-            VkBufferImageCopy copyRegion;
-        };
-        struct ImageUpdate
-        {
-            vk::ImageHelper *image;
-            VkImageCopy copyRegion;
-        };
-
         UpdateSource updateSource;
         union
         {
@@ -942,11 +962,13 @@
     uint32_t mCurrentQueueFamilyIndex;
 
     // Cached properties.
+    uint32_t mBaseLevel;
+    uint32_t mMaxLevel;
     uint32_t mLayerCount;
     uint32_t mLevelCount;
 
     // Staging buffer
-    vk::DynamicBuffer mStagingBuffer;
+    DynamicBuffer mStagingBuffer;
     std::vector<SubresourceUpdate> mSubresourceUpdates;
 };
 
@@ -1004,13 +1026,13 @@
         return mShaders[gl::ShaderType::Vertex].valid();
     }
 
-    vk::ShaderAndSerial &getShader(gl::ShaderType shaderType) { return mShaders[shaderType].get(); }
+    ShaderAndSerial &getShader(gl::ShaderType shaderType) { return mShaders[shaderType].get(); }
 
     void setShader(gl::ShaderType shaderType, RefCounted<ShaderAndSerial> *shader);
 
-    // For getting a vk::Pipeline and from the pipeline cache.
+    // For getting a Pipeline and from the pipeline cache.
     ANGLE_INLINE angle::Result getGraphicsPipeline(
-        Context *context,
+        ContextVk *contextVk,
         RenderPassCache *renderPassCache,
         const PipelineCache &pipelineCache,
         Serial currentQueueSerial,
@@ -1018,23 +1040,27 @@
         const GraphicsPipelineDesc &pipelineDesc,
         const gl::AttributesMask &activeAttribLocationsMask,
         const gl::ComponentTypeMask &programAttribsTypeMask,
-        const vk::GraphicsPipelineDesc **descPtrOut,
+        const GraphicsPipelineDesc **descPtrOut,
         PipelineHelper **pipelineOut)
     {
         // Pull in a compatible RenderPass.
-        vk::RenderPass *compatibleRenderPass = nullptr;
-        ANGLE_TRY(renderPassCache->getCompatibleRenderPass(
-            context, currentQueueSerial, pipelineDesc.getRenderPassDesc(), &compatibleRenderPass));
+        RenderPass *compatibleRenderPass = nullptr;
+        ANGLE_TRY(renderPassCache->getCompatibleRenderPass(contextVk, currentQueueSerial,
+                                                           pipelineDesc.getRenderPassDesc(),
+                                                           &compatibleRenderPass));
 
         ShaderModule *vertexShader   = &mShaders[gl::ShaderType::Vertex].get().get();
         ShaderModule *fragmentShader = mShaders[gl::ShaderType::Fragment].valid()
                                            ? &mShaders[gl::ShaderType::Fragment].get().get()
                                            : nullptr;
+        ShaderModule *geometryShader = mShaders[gl::ShaderType::Geometry].valid()
+                                           ? &mShaders[gl::ShaderType::Geometry].get().get()
+                                           : nullptr;
 
-        return mGraphicsPipelines.getPipeline(context, pipelineCache, *compatibleRenderPass,
-                                              pipelineLayout, activeAttribLocationsMask,
-                                              programAttribsTypeMask, vertexShader, fragmentShader,
-                                              pipelineDesc, descPtrOut, pipelineOut);
+        return mGraphicsPipelines.getPipeline(
+            contextVk, pipelineCache, *compatibleRenderPass, pipelineLayout,
+            activeAttribLocationsMask, programAttribsTypeMask, vertexShader, fragmentShader,
+            geometryShader, pipelineDesc, descPtrOut, pipelineOut);
     }
 
     angle::Result getComputePipeline(Context *context,
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.cpp
index 2815289..83aade9 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.cpp
@@ -58,6 +58,10 @@
 #include "libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.0000000B.inc"
 #include "libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000000.inc"
 #include "libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000001.inc"
+#include "libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000002.inc"
+#include "libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000003.inc"
+#include "libANGLE/renderer/vulkan/shaders/gen/ConvertIndexIndirectLineLoop.comp.00000000.inc"
+#include "libANGLE/renderer/vulkan/shaders/gen/ConvertIndexIndirectLineLoop.comp.00000001.inc"
 #include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000000.inc"
 #include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000001.inc"
 #include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000002.inc"
@@ -84,6 +88,24 @@
 #include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000017.inc"
 #include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000018.inc"
 #include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000019.inc"
+#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000001A.inc"
+#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000001B.inc"
+#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000001C.inc"
+#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000001D.inc"
+#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000001E.inc"
+#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000001F.inc"
+#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000020.inc"
+#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000021.inc"
+#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000022.inc"
+#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000023.inc"
+#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000024.inc"
+#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000025.inc"
+#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000026.inc"
+#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000027.inc"
+#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000028.inc"
+#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000029.inc"
+#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000002A.inc"
+#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000002B.inc"
 #include "libANGLE/renderer/vulkan/shaders/gen/FullScreenQuad.vert.00000000.inc"
 #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000000.inc"
 #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000001.inc"
@@ -192,6 +214,14 @@
 constexpr ShaderBlob kConvertIndex_comp_shaders[] = {
     {kConvertIndex_comp_00000000, sizeof(kConvertIndex_comp_00000000)},
     {kConvertIndex_comp_00000001, sizeof(kConvertIndex_comp_00000001)},
+    {kConvertIndex_comp_00000002, sizeof(kConvertIndex_comp_00000002)},
+    {kConvertIndex_comp_00000003, sizeof(kConvertIndex_comp_00000003)},
+};
+constexpr ShaderBlob kConvertIndexIndirectLineLoop_comp_shaders[] = {
+    {kConvertIndexIndirectLineLoop_comp_00000000,
+     sizeof(kConvertIndexIndirectLineLoop_comp_00000000)},
+    {kConvertIndexIndirectLineLoop_comp_00000001,
+     sizeof(kConvertIndexIndirectLineLoop_comp_00000001)},
 };
 constexpr ShaderBlob kConvertVertex_comp_shaders[] = {
     {kConvertVertex_comp_00000000, sizeof(kConvertVertex_comp_00000000)},
@@ -220,6 +250,24 @@
     {kConvertVertex_comp_00000017, sizeof(kConvertVertex_comp_00000017)},
     {kConvertVertex_comp_00000018, sizeof(kConvertVertex_comp_00000018)},
     {kConvertVertex_comp_00000019, sizeof(kConvertVertex_comp_00000019)},
+    {kConvertVertex_comp_0000001A, sizeof(kConvertVertex_comp_0000001A)},
+    {kConvertVertex_comp_0000001B, sizeof(kConvertVertex_comp_0000001B)},
+    {kConvertVertex_comp_0000001C, sizeof(kConvertVertex_comp_0000001C)},
+    {kConvertVertex_comp_0000001D, sizeof(kConvertVertex_comp_0000001D)},
+    {kConvertVertex_comp_0000001E, sizeof(kConvertVertex_comp_0000001E)},
+    {kConvertVertex_comp_0000001F, sizeof(kConvertVertex_comp_0000001F)},
+    {kConvertVertex_comp_00000020, sizeof(kConvertVertex_comp_00000020)},
+    {kConvertVertex_comp_00000021, sizeof(kConvertVertex_comp_00000021)},
+    {kConvertVertex_comp_00000022, sizeof(kConvertVertex_comp_00000022)},
+    {kConvertVertex_comp_00000023, sizeof(kConvertVertex_comp_00000023)},
+    {kConvertVertex_comp_00000024, sizeof(kConvertVertex_comp_00000024)},
+    {kConvertVertex_comp_00000025, sizeof(kConvertVertex_comp_00000025)},
+    {kConvertVertex_comp_00000026, sizeof(kConvertVertex_comp_00000026)},
+    {kConvertVertex_comp_00000027, sizeof(kConvertVertex_comp_00000027)},
+    {kConvertVertex_comp_00000028, sizeof(kConvertVertex_comp_00000028)},
+    {kConvertVertex_comp_00000029, sizeof(kConvertVertex_comp_00000029)},
+    {kConvertVertex_comp_0000002A, sizeof(kConvertVertex_comp_0000002A)},
+    {kConvertVertex_comp_0000002B, sizeof(kConvertVertex_comp_0000002B)},
 };
 constexpr ShaderBlob kFullScreenQuad_vert_shaders[] = {
     {kFullScreenQuad_vert_00000000, sizeof(kFullScreenQuad_vert_00000000)},
@@ -333,6 +381,10 @@
     {
         shader.get().destroy(device);
     }
+    for (RefCounted<ShaderAndSerial> &shader : mConvertIndexIndirectLineLoop_comp_shaders)
+    {
+        shader.get().destroy(device);
+    }
     for (RefCounted<ShaderAndSerial> &shader : mConvertVertex_comp_shaders)
     {
         shader.get().destroy(device);
@@ -393,6 +445,16 @@
                      ArraySize(kConvertIndex_comp_shaders), shaderFlags, shaderOut);
 }
 
+angle::Result ShaderLibrary::getConvertIndexIndirectLineLoop_comp(
+    Context *context,
+    uint32_t shaderFlags,
+    RefCounted<ShaderAndSerial> **shaderOut)
+{
+    return GetShader(context, mConvertIndexIndirectLineLoop_comp_shaders,
+                     kConvertIndexIndirectLineLoop_comp_shaders,
+                     ArraySize(kConvertIndexIndirectLineLoop_comp_shaders), shaderFlags, shaderOut);
+}
+
 angle::Result ShaderLibrary::getConvertVertex_comp(Context *context,
                                                    uint32_t shaderFlags,
                                                    RefCounted<ShaderAndSerial> **shaderOut)
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.gni b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.gni
index 64a9f63..8b28069 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.gni
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.gni
@@ -9,123 +9,145 @@
 #   List of generated shaders for inclusion in ANGLE's build process.
 
 angle_vulkan_internal_shaders = [
-  "src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000000.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000001.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000002.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000003.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000004.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000005.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000006.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000007.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000008.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000009.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.0000000A.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.0000000B.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.0000000C.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.0000000D.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.0000000E.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.0000000F.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000010.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000011.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000012.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000013.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000014.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000015.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000016.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000017.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/BlitResolveStencilNoExport.comp.00000000.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/BlitResolveStencilNoExport.comp.00000001.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/BlitResolveStencilNoExport.comp.00000002.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/BlitResolveStencilNoExport.comp.00000003.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.00000000.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.00000001.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.00000002.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.00000003.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.00000004.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.00000005.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.00000006.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.00000007.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.00000008.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.00000009.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.0000000A.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.0000000B.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000000.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000001.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000000.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000001.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000002.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000003.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000004.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000005.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000006.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000007.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000008.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000009.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000000A.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000000B.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000000C.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000000D.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000000E.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000000F.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000010.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000011.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000012.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000013.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000014.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000015.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000016.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000017.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000018.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000019.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/FullScreenQuad.vert.00000000.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000000.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000001.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000002.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000003.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000004.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000005.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000006.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000007.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000008.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000009.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000000A.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000000B.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000000C.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000000D.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000000E.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000000F.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000010.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000011.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000012.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000013.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000014.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000015.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000016.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000017.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000000.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000001.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000002.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000003.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000004.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000005.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000008.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000009.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.0000000A.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.0000000B.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.0000000C.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.0000000D.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000010.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000011.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000012.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000013.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000014.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000015.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/OverlayCull.comp.00000000.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/OverlayCull.comp.00000001.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/OverlayCull.comp.00000002.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/OverlayCull.comp.00000003.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/OverlayCull.comp.00000004.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/OverlayCull.comp.00000005.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/OverlayDraw.comp.00000000.inc",
-  "src/libANGLE/renderer/vulkan/shaders/gen/OverlayDraw.comp.00000001.inc",
+  "shaders/gen/BlitResolve.frag.00000000.inc",
+  "shaders/gen/BlitResolve.frag.00000001.inc",
+  "shaders/gen/BlitResolve.frag.00000002.inc",
+  "shaders/gen/BlitResolve.frag.00000003.inc",
+  "shaders/gen/BlitResolve.frag.00000004.inc",
+  "shaders/gen/BlitResolve.frag.00000005.inc",
+  "shaders/gen/BlitResolve.frag.00000006.inc",
+  "shaders/gen/BlitResolve.frag.00000007.inc",
+  "shaders/gen/BlitResolve.frag.00000008.inc",
+  "shaders/gen/BlitResolve.frag.00000009.inc",
+  "shaders/gen/BlitResolve.frag.0000000A.inc",
+  "shaders/gen/BlitResolve.frag.0000000B.inc",
+  "shaders/gen/BlitResolve.frag.0000000C.inc",
+  "shaders/gen/BlitResolve.frag.0000000D.inc",
+  "shaders/gen/BlitResolve.frag.0000000E.inc",
+  "shaders/gen/BlitResolve.frag.0000000F.inc",
+  "shaders/gen/BlitResolve.frag.00000010.inc",
+  "shaders/gen/BlitResolve.frag.00000011.inc",
+  "shaders/gen/BlitResolve.frag.00000012.inc",
+  "shaders/gen/BlitResolve.frag.00000013.inc",
+  "shaders/gen/BlitResolve.frag.00000014.inc",
+  "shaders/gen/BlitResolve.frag.00000015.inc",
+  "shaders/gen/BlitResolve.frag.00000016.inc",
+  "shaders/gen/BlitResolve.frag.00000017.inc",
+  "shaders/gen/BlitResolveStencilNoExport.comp.00000000.inc",
+  "shaders/gen/BlitResolveStencilNoExport.comp.00000001.inc",
+  "shaders/gen/BlitResolveStencilNoExport.comp.00000002.inc",
+  "shaders/gen/BlitResolveStencilNoExport.comp.00000003.inc",
+  "shaders/gen/BufferUtils.comp.00000000.inc",
+  "shaders/gen/BufferUtils.comp.00000001.inc",
+  "shaders/gen/BufferUtils.comp.00000002.inc",
+  "shaders/gen/BufferUtils.comp.00000003.inc",
+  "shaders/gen/BufferUtils.comp.00000004.inc",
+  "shaders/gen/BufferUtils.comp.00000005.inc",
+  "shaders/gen/BufferUtils.comp.00000006.inc",
+  "shaders/gen/BufferUtils.comp.00000007.inc",
+  "shaders/gen/BufferUtils.comp.00000008.inc",
+  "shaders/gen/BufferUtils.comp.00000009.inc",
+  "shaders/gen/BufferUtils.comp.0000000A.inc",
+  "shaders/gen/BufferUtils.comp.0000000B.inc",
+  "shaders/gen/ConvertIndex.comp.00000000.inc",
+  "shaders/gen/ConvertIndex.comp.00000001.inc",
+  "shaders/gen/ConvertIndex.comp.00000002.inc",
+  "shaders/gen/ConvertIndex.comp.00000003.inc",
+  "shaders/gen/ConvertIndexIndirectLineLoop.comp.00000000.inc",
+  "shaders/gen/ConvertIndexIndirectLineLoop.comp.00000001.inc",
+  "shaders/gen/ConvertVertex.comp.00000000.inc",
+  "shaders/gen/ConvertVertex.comp.00000001.inc",
+  "shaders/gen/ConvertVertex.comp.00000002.inc",
+  "shaders/gen/ConvertVertex.comp.00000003.inc",
+  "shaders/gen/ConvertVertex.comp.00000004.inc",
+  "shaders/gen/ConvertVertex.comp.00000005.inc",
+  "shaders/gen/ConvertVertex.comp.00000006.inc",
+  "shaders/gen/ConvertVertex.comp.00000007.inc",
+  "shaders/gen/ConvertVertex.comp.00000008.inc",
+  "shaders/gen/ConvertVertex.comp.00000009.inc",
+  "shaders/gen/ConvertVertex.comp.0000000A.inc",
+  "shaders/gen/ConvertVertex.comp.0000000B.inc",
+  "shaders/gen/ConvertVertex.comp.0000000C.inc",
+  "shaders/gen/ConvertVertex.comp.0000000D.inc",
+  "shaders/gen/ConvertVertex.comp.0000000E.inc",
+  "shaders/gen/ConvertVertex.comp.0000000F.inc",
+  "shaders/gen/ConvertVertex.comp.00000010.inc",
+  "shaders/gen/ConvertVertex.comp.00000011.inc",
+  "shaders/gen/ConvertVertex.comp.00000012.inc",
+  "shaders/gen/ConvertVertex.comp.00000013.inc",
+  "shaders/gen/ConvertVertex.comp.00000014.inc",
+  "shaders/gen/ConvertVertex.comp.00000015.inc",
+  "shaders/gen/ConvertVertex.comp.00000016.inc",
+  "shaders/gen/ConvertVertex.comp.00000017.inc",
+  "shaders/gen/ConvertVertex.comp.00000018.inc",
+  "shaders/gen/ConvertVertex.comp.00000019.inc",
+  "shaders/gen/ConvertVertex.comp.0000001A.inc",
+  "shaders/gen/ConvertVertex.comp.0000001B.inc",
+  "shaders/gen/ConvertVertex.comp.0000001C.inc",
+  "shaders/gen/ConvertVertex.comp.0000001D.inc",
+  "shaders/gen/ConvertVertex.comp.0000001E.inc",
+  "shaders/gen/ConvertVertex.comp.0000001F.inc",
+  "shaders/gen/ConvertVertex.comp.00000020.inc",
+  "shaders/gen/ConvertVertex.comp.00000021.inc",
+  "shaders/gen/ConvertVertex.comp.00000022.inc",
+  "shaders/gen/ConvertVertex.comp.00000023.inc",
+  "shaders/gen/ConvertVertex.comp.00000024.inc",
+  "shaders/gen/ConvertVertex.comp.00000025.inc",
+  "shaders/gen/ConvertVertex.comp.00000026.inc",
+  "shaders/gen/ConvertVertex.comp.00000027.inc",
+  "shaders/gen/ConvertVertex.comp.00000028.inc",
+  "shaders/gen/ConvertVertex.comp.00000029.inc",
+  "shaders/gen/ConvertVertex.comp.0000002A.inc",
+  "shaders/gen/ConvertVertex.comp.0000002B.inc",
+  "shaders/gen/FullScreenQuad.vert.00000000.inc",
+  "shaders/gen/ImageClear.frag.00000000.inc",
+  "shaders/gen/ImageClear.frag.00000001.inc",
+  "shaders/gen/ImageClear.frag.00000002.inc",
+  "shaders/gen/ImageClear.frag.00000003.inc",
+  "shaders/gen/ImageClear.frag.00000004.inc",
+  "shaders/gen/ImageClear.frag.00000005.inc",
+  "shaders/gen/ImageClear.frag.00000006.inc",
+  "shaders/gen/ImageClear.frag.00000007.inc",
+  "shaders/gen/ImageClear.frag.00000008.inc",
+  "shaders/gen/ImageClear.frag.00000009.inc",
+  "shaders/gen/ImageClear.frag.0000000A.inc",
+  "shaders/gen/ImageClear.frag.0000000B.inc",
+  "shaders/gen/ImageClear.frag.0000000C.inc",
+  "shaders/gen/ImageClear.frag.0000000D.inc",
+  "shaders/gen/ImageClear.frag.0000000E.inc",
+  "shaders/gen/ImageClear.frag.0000000F.inc",
+  "shaders/gen/ImageClear.frag.00000010.inc",
+  "shaders/gen/ImageClear.frag.00000011.inc",
+  "shaders/gen/ImageClear.frag.00000012.inc",
+  "shaders/gen/ImageClear.frag.00000013.inc",
+  "shaders/gen/ImageClear.frag.00000014.inc",
+  "shaders/gen/ImageClear.frag.00000015.inc",
+  "shaders/gen/ImageClear.frag.00000016.inc",
+  "shaders/gen/ImageClear.frag.00000017.inc",
+  "shaders/gen/ImageCopy.frag.00000000.inc",
+  "shaders/gen/ImageCopy.frag.00000001.inc",
+  "shaders/gen/ImageCopy.frag.00000002.inc",
+  "shaders/gen/ImageCopy.frag.00000003.inc",
+  "shaders/gen/ImageCopy.frag.00000004.inc",
+  "shaders/gen/ImageCopy.frag.00000005.inc",
+  "shaders/gen/ImageCopy.frag.00000008.inc",
+  "shaders/gen/ImageCopy.frag.00000009.inc",
+  "shaders/gen/ImageCopy.frag.0000000A.inc",
+  "shaders/gen/ImageCopy.frag.0000000B.inc",
+  "shaders/gen/ImageCopy.frag.0000000C.inc",
+  "shaders/gen/ImageCopy.frag.0000000D.inc",
+  "shaders/gen/ImageCopy.frag.00000010.inc",
+  "shaders/gen/ImageCopy.frag.00000011.inc",
+  "shaders/gen/ImageCopy.frag.00000012.inc",
+  "shaders/gen/ImageCopy.frag.00000013.inc",
+  "shaders/gen/ImageCopy.frag.00000014.inc",
+  "shaders/gen/ImageCopy.frag.00000015.inc",
+  "shaders/gen/OverlayCull.comp.00000000.inc",
+  "shaders/gen/OverlayCull.comp.00000001.inc",
+  "shaders/gen/OverlayCull.comp.00000002.inc",
+  "shaders/gen/OverlayCull.comp.00000003.inc",
+  "shaders/gen/OverlayCull.comp.00000004.inc",
+  "shaders/gen/OverlayCull.comp.00000005.inc",
+  "shaders/gen/OverlayDraw.comp.00000000.inc",
+  "shaders/gen/OverlayDraw.comp.00000001.inc",
 ]
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.h b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.h
index 56f7c76..fbc5c64 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.h
@@ -73,9 +73,19 @@
 enum flags
 {
     kIsPrimitiveRestartEnabled = 0x00000001,
+    kIsIndirect                = 0x00000002,
+};
+constexpr size_t kArrayLen = 0x00000004;
+}  // namespace ConvertIndex_comp
+
+namespace ConvertIndexIndirectLineLoop_comp
+{
+enum flags
+{
+    kIs32Bit = 0x00000001,
 };
 constexpr size_t kArrayLen = 0x00000002;
-}  // namespace ConvertIndex_comp
+}  // namespace ConvertIndexIndirectLineLoop_comp
 
 namespace ConvertVertex_comp
 {
@@ -85,21 +95,30 @@
 };
 enum Conversion
 {
-    kSintToSint          = 0x00000000,
-    kUintToUint          = 0x00000002,
-    kSintToFloat         = 0x00000004,
-    kUintToFloat         = 0x00000006,
-    kSnormToFloat        = 0x00000008,
-    kUnormToFloat        = 0x0000000A,
-    kFixedToFloat        = 0x0000000C,
-    kFloatToFloat        = 0x0000000E,
-    kA2BGR10SintToSint   = 0x00000010,
-    kA2BGR10UintToUint   = 0x00000012,
-    kA2BGR10SintToFloat  = 0x00000014,
-    kA2BGR10UintToFloat  = 0x00000016,
-    kA2BGR10SnormToFloat = 0x00000018,
+    kSintToSint           = 0x00000000,
+    kUintToUint           = 0x00000002,
+    kSintToFloat          = 0x00000004,
+    kUintToFloat          = 0x00000006,
+    kSnormToFloat         = 0x00000008,
+    kUnormToFloat         = 0x0000000A,
+    kFixedToFloat         = 0x0000000C,
+    kFloatToFloat         = 0x0000000E,
+    kA2BGR10SintToSint    = 0x00000010,
+    kA2BGR10UintToUint    = 0x00000012,
+    kA2BGR10SintToFloat   = 0x00000014,
+    kA2BGR10UintToFloat   = 0x00000016,
+    kA2BGR10SnormToFloat  = 0x00000018,
+    kRGB10A2SintToFloat   = 0x0000001A,
+    kRGB10A2UintToFloat   = 0x0000001C,
+    kRGB10A2SnormToFloat  = 0x0000001E,
+    kRGB10A2UnormToFloat  = 0x00000020,
+    kRGB10X2SintToFloat   = 0x00000022,
+    kRGB10X2UintToFloat   = 0x00000024,
+    kRGB10X2SnormToFloat  = 0x00000026,
+    kRGB10X2UnormToFloat  = 0x00000028,
+    kHalfFloatToHalfFloat = 0x0000002A,
 };
-constexpr size_t kArrayLen = 0x0000001A;
+constexpr size_t kArrayLen = 0x0000002C;
 }  // namespace ConvertVertex_comp
 
 namespace FullScreenQuad_vert
@@ -198,6 +217,9 @@
     angle::Result getConvertIndex_comp(Context *context,
                                        uint32_t shaderFlags,
                                        RefCounted<ShaderAndSerial> **shaderOut);
+    angle::Result getConvertIndexIndirectLineLoop_comp(Context *context,
+                                                       uint32_t shaderFlags,
+                                                       RefCounted<ShaderAndSerial> **shaderOut);
     angle::Result getConvertVertex_comp(Context *context,
                                         uint32_t shaderFlags,
                                         RefCounted<ShaderAndSerial> **shaderOut);
@@ -226,6 +248,8 @@
         mBufferUtils_comp_shaders[InternalShader::BufferUtils_comp::kArrayLen];
     RefCounted<ShaderAndSerial>
         mConvertIndex_comp_shaders[InternalShader::ConvertIndex_comp::kArrayLen];
+    RefCounted<ShaderAndSerial> mConvertIndexIndirectLineLoop_comp_shaders
+        [InternalShader::ConvertIndexIndirectLineLoop_comp::kArrayLen];
     RefCounted<ShaderAndSerial>
         mConvertVertex_comp_shaders[InternalShader::ConvertVertex_comp::kArrayLen];
     RefCounted<ShaderAndSerial>
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_utils.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_utils.cpp
index 2399bf1..d332b87 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_utils.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_utils.cpp
@@ -52,9 +52,10 @@
 
 namespace rx
 {
-// Mirrors std_validation_str in loader.c
-const char *g_VkStdValidationLayerName = "VK_LAYER_LUNARG_standard_validation";
-const char *g_VkValidationLayerNames[] = {
+// Unified layer that includes full validation layer stack
+const char *g_VkKhronosValidationLayerName  = "VK_LAYER_KHRONOS_validation";
+const char *g_VkStandardValidationLayerName = "VK_LAYER_LUNARG_standard_validation";
+const char *g_VkValidationLayerNames[]      = {
     "VK_LAYER_GOOGLE_threading", "VK_LAYER_LUNARG_parameter_validation",
     "VK_LAYER_LUNARG_object_tracker", "VK_LAYER_LUNARG_core_validation",
     "VK_LAYER_GOOGLE_unique_objects"};
@@ -72,9 +73,14 @@
     return false;
 }
 
+bool HasKhronosValidationLayer(const std::vector<VkLayerProperties> &layerProps)
+{
+    return HasValidationLayer(layerProps, g_VkKhronosValidationLayerName);
+}
+
 bool HasStandardValidationLayer(const std::vector<VkLayerProperties> &layerProps)
 {
-    return HasValidationLayer(layerProps, g_VkStdValidationLayerName);
+    return HasValidationLayer(layerProps, g_VkStandardValidationLayerName);
 }
 
 bool HasValidationLayers(const std::vector<VkLayerProperties> &layerProps)
@@ -215,9 +221,14 @@
                                   bool mustHaveLayers,
                                   VulkanLayerVector *enabledLayerNames)
 {
-    if (HasStandardValidationLayer(layerProps))
+    // Favor unified Khronos layer, but fallback to standard validation
+    if (HasKhronosValidationLayer(layerProps))
     {
-        enabledLayerNames->push_back(g_VkStdValidationLayerName);
+        enabledLayerNames->push_back(g_VkKhronosValidationLayerName);
+    }
+    else if (HasStandardValidationLayer(layerProps))
+    {
+        enabledLayerNames->push_back(g_VkStandardValidationLayerName);
     }
     else if (HasValidationLayers(layerProps))
     {
@@ -330,8 +341,16 @@
     mSize = 0;
 }
 
-angle::Result StagingBuffer::init(Context *context, VkDeviceSize size, StagingUsage usage)
+angle::Result StagingBuffer::init(ContextVk *contextVk, VkDeviceSize size, StagingUsage usage)
 {
+    // TODO: Remove with anglebug.com/2162: Vulkan: Implement device memory sub-allocation
+    // Check if we have too many resources allocated already and need to free some before allocating
+    // more and (possibly) exceeding the device's limits.
+    if (contextVk->shouldFlush())
+    {
+        ANGLE_TRY(contextVk->flushImpl(nullptr));
+    }
+
     VkBufferCreateInfo createInfo    = {};
     createInfo.sType                 = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO;
     createInfo.flags                 = 0;
@@ -344,17 +363,17 @@
     VkMemoryPropertyFlags flags =
         (VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT);
 
-    ANGLE_VK_TRY(context, mBuffer.init(context->getDevice(), createInfo));
+    ANGLE_VK_TRY(contextVk, mBuffer.init(contextVk->getDevice(), createInfo));
     VkMemoryPropertyFlags flagsOut = 0;
-    ANGLE_TRY(AllocateBufferMemory(context, flags, &flagsOut, nullptr, &mBuffer, &mDeviceMemory));
+    ANGLE_TRY(AllocateBufferMemory(contextVk, flags, &flagsOut, nullptr, &mBuffer, &mDeviceMemory));
     mSize = static_cast<size_t>(size);
     return angle::Result::Continue;
 }
 
-void StagingBuffer::dumpResources(Serial serial, std::vector<vk::GarbageObject> *garbageQueue)
+void StagingBuffer::release(ContextVk *contextVk)
 {
-    mBuffer.dumpResources(serial, garbageQueue);
-    mDeviceMemory.dumpResources(serial, garbageQueue);
+    contextVk->addGarbage(&mBuffer);
+    contextVk->addGarbage(&mDeviceMemory);
 }
 
 angle::Result AllocateBufferMemory(vk::Context *context,
@@ -435,11 +454,26 @@
     }
 }
 
-GarbageObjectBase::GarbageObjectBase() : mHandleType(HandleType::Invalid), mHandle(VK_NULL_HANDLE)
+GarbageObject::GarbageObject() : mHandleType(HandleType::Invalid), mHandle(VK_NULL_HANDLE) {}
+
+GarbageObject::GarbageObject(HandleType handleType, GarbageHandle handle)
+    : mHandleType(handleType), mHandle(handle)
 {}
 
-// GarbageObjectBase implementation
-void GarbageObjectBase::destroy(VkDevice device)
+GarbageObject::GarbageObject(GarbageObject &&other) : GarbageObject()
+{
+    *this = std::move(other);
+}
+
+GarbageObject &GarbageObject::operator=(GarbageObject &&rhs)
+{
+    std::swap(mHandle, rhs.mHandle);
+    std::swap(mHandleType, rhs.mHandleType);
+    return *this;
+}
+
+// GarbageObject implementation
+void GarbageObject::destroy(VkDevice device)
 {
     switch (mHandleType)
     {
@@ -508,24 +542,6 @@
     }
 }
 
-// GarbageObject implementation.
-GarbageObject::GarbageObject() : mSerial() {}
-
-GarbageObject::GarbageObject(const GarbageObject &other) = default;
-
-GarbageObject &GarbageObject::operator=(const GarbageObject &other) = default;
-
-bool GarbageObject::destroyIfComplete(VkDevice device, Serial completedSerial)
-{
-    if (completedSerial >= mSerial)
-    {
-        destroy(device);
-        return true;
-    }
-
-    return false;
-}
-
 bool SamplerNameContainsNonZeroArrayElement(const std::string &name)
 {
     constexpr char kZERO_ELEMENT[] = "[0]";
@@ -678,10 +694,10 @@
 {
     switch (filter)
     {
-        case GL_LINEAR:
         case GL_LINEAR_MIPMAP_LINEAR:
         case GL_NEAREST_MIPMAP_LINEAR:
             return VK_SAMPLER_MIPMAP_MODE_LINEAR;
+        case GL_LINEAR:
         case GL_NEAREST:
         case GL_NEAREST_MIPMAP_NEAREST:
         case GL_LINEAR_MIPMAP_NEAREST:
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_utils.h b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_utils.h
index e836c62..b3e91f0 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_utils.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_utils.h
@@ -108,6 +108,7 @@
 {
     Default,
     Mock,
+    SwiftShader,
 };
 
 // Abstracts error handling. Implemented by both ContextVk for GL and DisplayVk for EGL errors.
@@ -186,83 +187,6 @@
     return nullptr;
 }
 
-class GarbageObjectBase
-{
-  public:
-    template <typename ObjectT>
-    GarbageObjectBase(const ObjectT &object)
-        : mHandleType(HandleTypeHelper<ObjectT>::kHandleType),
-          mHandle(reinterpret_cast<VkDevice>(object.getHandle()))
-    {}
-    GarbageObjectBase();
-
-    void destroy(VkDevice device);
-
-  private:
-    HandleType mHandleType;
-    VkDevice mHandle;
-};
-
-class GarbageObject final : public GarbageObjectBase
-{
-  public:
-    template <typename ObjectT>
-    GarbageObject(Serial serial, const ObjectT &object) : GarbageObjectBase(object), mSerial(serial)
-    {}
-
-    GarbageObject();
-    GarbageObject(const GarbageObject &other);
-    GarbageObject &operator=(const GarbageObject &other);
-
-    bool destroyIfComplete(VkDevice device, Serial completedSerial);
-
-  private:
-    // TODO(jmadill): Since many objects will have the same serial, it might be more efficient to
-    // store the serial outside of the garbage object itself. We could index ranges of garbage
-    // objects in the Renderer, using a circular buffer.
-    Serial mSerial;
-};
-
-class MemoryProperties final : angle::NonCopyable
-{
-  public:
-    MemoryProperties();
-
-    void init(VkPhysicalDevice physicalDevice);
-    angle::Result findCompatibleMemoryIndex(Context *context,
-                                            const VkMemoryRequirements &memoryRequirements,
-                                            VkMemoryPropertyFlags requestedMemoryPropertyFlags,
-                                            VkMemoryPropertyFlags *memoryPropertyFlagsOut,
-                                            uint32_t *indexOut) const;
-    void destroy();
-
-  private:
-    VkPhysicalDeviceMemoryProperties mMemoryProperties;
-};
-
-// Similar to StagingImage, for Buffers.
-class StagingBuffer final : angle::NonCopyable
-{
-  public:
-    StagingBuffer();
-    void destroy(VkDevice device);
-
-    angle::Result init(Context *context, VkDeviceSize size, StagingUsage usage);
-
-    Buffer &getBuffer() { return mBuffer; }
-    const Buffer &getBuffer() const { return mBuffer; }
-    DeviceMemory &getDeviceMemory() { return mDeviceMemory; }
-    const DeviceMemory &getDeviceMemory() const { return mDeviceMemory; }
-    size_t getSize() const { return mSize; }
-
-    void dumpResources(Serial serial, std::vector<GarbageObject> *garbageQueue);
-
-  private:
-    Buffer mBuffer;
-    DeviceMemory mDeviceMemory;
-    size_t mSize;
-};
-
 template <typename ObjT>
 class ObjectAndSerial final : angle::NonCopyable
 {
@@ -300,19 +224,101 @@
     Serial mSerial;
 };
 
-angle::Result AllocateBufferMemory(vk::Context *context,
+// Reference to a deleted object. The object is due to be destroyed at some point in the future.
+// |mHandleType| determines the type of the object and which destroy function should be called.
+class GarbageObject
+{
+  public:
+    GarbageObject();
+    GarbageObject(GarbageObject &&other);
+    GarbageObject &operator=(GarbageObject &&rhs);
+
+    bool valid() const { return mHandle != VK_NULL_HANDLE; }
+    void destroy(VkDevice device);
+
+    template <typename DerivedT, typename HandleT>
+    static GarbageObject Get(WrappedObject<DerivedT, HandleT> *object)
+    {
+        return GarbageObject(HandleTypeHelper<DerivedT>::kHandleType,
+                             reinterpret_cast<GarbageHandle>(object->release()));
+    }
+
+  private:
+    VK_DEFINE_HANDLE(GarbageHandle)
+    GarbageObject(HandleType handleType, GarbageHandle handle);
+
+    HandleType mHandleType;
+    GarbageHandle mHandle;
+};
+
+template <typename T>
+GarbageObject GetGarbage(T *obj)
+{
+    return GarbageObject::Get(obj);
+}
+
+// A list of garbage objects. Has no object lifetime information.
+using GarbageList = std::vector<GarbageObject>;
+
+// A list of garbage objects and the associated serial after which the objects can be destroyed.
+using GarbageAndSerial = ObjectAndSerial<GarbageList>;
+
+// Houses multiple lists of garbage objects. Each sub-list has a different lifetime. They should
+// be sorted such that later-living garbage is ordered later in the list.
+using GarbageQueue = std::vector<GarbageAndSerial>;
+
+class MemoryProperties final : angle::NonCopyable
+{
+  public:
+    MemoryProperties();
+
+    void init(VkPhysicalDevice physicalDevice);
+    angle::Result findCompatibleMemoryIndex(Context *context,
+                                            const VkMemoryRequirements &memoryRequirements,
+                                            VkMemoryPropertyFlags requestedMemoryPropertyFlags,
+                                            VkMemoryPropertyFlags *memoryPropertyFlagsOut,
+                                            uint32_t *indexOut) const;
+    void destroy();
+
+  private:
+    VkPhysicalDeviceMemoryProperties mMemoryProperties;
+};
+
+// Similar to StagingImage, for Buffers.
+class StagingBuffer final : angle::NonCopyable
+{
+  public:
+    StagingBuffer();
+    void release(ContextVk *contextVk);
+    void destroy(VkDevice device);
+
+    angle::Result init(ContextVk *context, VkDeviceSize size, StagingUsage usage);
+
+    Buffer &getBuffer() { return mBuffer; }
+    const Buffer &getBuffer() const { return mBuffer; }
+    DeviceMemory &getDeviceMemory() { return mDeviceMemory; }
+    const DeviceMemory &getDeviceMemory() const { return mDeviceMemory; }
+    size_t getSize() const { return mSize; }
+
+  private:
+    Buffer mBuffer;
+    DeviceMemory mDeviceMemory;
+    size_t mSize;
+};
+
+angle::Result AllocateBufferMemory(Context *context,
                                    VkMemoryPropertyFlags requestedMemoryPropertyFlags,
                                    VkMemoryPropertyFlags *memoryPropertyFlagsOut,
                                    const void *extraAllocationInfo,
                                    Buffer *buffer,
                                    DeviceMemory *deviceMemoryOut);
 
-angle::Result AllocateImageMemory(vk::Context *context,
+angle::Result AllocateImageMemory(Context *context,
                                   VkMemoryPropertyFlags memoryPropertyFlags,
                                   const void *extraAllocationInfo,
                                   Image *image,
                                   DeviceMemory *deviceMemoryOut);
-angle::Result AllocateImageMemoryWithRequirements(vk::Context *context,
+angle::Result AllocateImageMemoryWithRequirements(Context *context,
                                                   VkMemoryPropertyFlags memoryPropertyFlags,
                                                   const VkMemoryRequirements &memoryRequirements,
                                                   const void *extraAllocationInfo,
@@ -372,6 +378,23 @@
     T mVar;
 };
 
+template <typename T>
+class RendererScoped final : angle::NonCopyable
+{
+  public:
+    RendererScoped(RendererVk *renderer) : mRenderer(renderer) {}
+    ~RendererScoped() { mVar.release(mRenderer); }
+
+    const T &get() const { return mVar; }
+    T &get() { return mVar; }
+
+    T &&release() { return std::move(mVar); }
+
+  private:
+    RendererVk *mRenderer;
+    T mVar;
+};
+
 // This is a very simple RefCount class that has no autoreleasing. Used in the descriptor set and
 // pipeline layout caches.
 template <typename T>
@@ -571,7 +594,7 @@
 std::string GetMappedSamplerName(const std::string &originalName);
 
 // A vector of image views, such as one per level or one per layer.
-using ImageViewVector = std::vector<vk::ImageView>;
+using ImageViewVector = std::vector<ImageView>;
 // A vector of vector of image views.  Primary index is layer, secondary index is level.
 using LayerLevelImageViewVector = std::vector<ImageViewVector>;
 
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_wrapper.h b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_wrapper.h
index 829b8f7..c9fe77b 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_wrapper.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_wrapper.h
@@ -19,56 +19,6 @@
 {
 namespace vk
 {
-// Base class for all wrapped vulkan objects. Implements several common helper routines.
-template <typename DerivedT, typename HandleT>
-class WrappedObject : angle::NonCopyable
-{
-  public:
-    HandleT getHandle() const { return mHandle; }
-    bool valid() const { return (mHandle != VK_NULL_HANDLE); }
-
-    const HandleT *ptr() const { return &mHandle; }
-
-    template <typename ResourceOutType>
-    void dumpResources(Serial serial, std::vector<ResourceOutType> *outQueue)
-    {
-        if (valid())
-        {
-            outQueue->emplace_back(serial, *static_cast<DerivedT *>(this));
-            mHandle = VK_NULL_HANDLE;
-        }
-    }
-
-    template <typename ResourceOutType>
-    void dumpResources(std::vector<ResourceOutType> *outQueue)
-    {
-        if (valid())
-        {
-            outQueue->emplace_back(*static_cast<DerivedT *>(this));
-            mHandle = VK_NULL_HANDLE;
-        }
-    }
-
-  protected:
-    WrappedObject() : mHandle(VK_NULL_HANDLE) {}
-    ~WrappedObject() { ASSERT(!valid()); }
-
-    WrappedObject(WrappedObject &&other) : mHandle(other.mHandle)
-    {
-        other.mHandle = VK_NULL_HANDLE;
-    }
-
-    // Only works to initialize empty objects, since we don't have the device handle.
-    WrappedObject &operator=(WrappedObject &&other)
-    {
-        ASSERT(!valid());
-        std::swap(mHandle, other.mHandle);
-        return *this;
-    }
-
-    HandleT mHandle;
-};
-
 // Helper macros that apply to all the wrapped object types.
 // Unimplemented handle types:
 // Instance
@@ -137,6 +87,43 @@
 
 #undef ANGLE_HANDLE_TYPE_HELPER_FUNC
 
+// Base class for all wrapped vulkan objects. Implements several common helper routines.
+template <typename DerivedT, typename HandleT>
+class WrappedObject : angle::NonCopyable
+{
+  public:
+    HandleT getHandle() const { return mHandle; }
+    bool valid() const { return (mHandle != VK_NULL_HANDLE); }
+
+    const HandleT *ptr() const { return &mHandle; }
+
+    HandleT release()
+    {
+        HandleT handle = mHandle;
+        mHandle        = VK_NULL_HANDLE;
+        return handle;
+    }
+
+  protected:
+    WrappedObject() : mHandle(VK_NULL_HANDLE) {}
+    ~WrappedObject() { ASSERT(!valid()); }
+
+    WrappedObject(WrappedObject &&other) : mHandle(other.mHandle)
+    {
+        other.mHandle = VK_NULL_HANDLE;
+    }
+
+    // Only works to initialize empty objects, since we don't have the device handle.
+    WrappedObject &operator=(WrappedObject &&other)
+    {
+        ASSERT(!valid());
+        std::swap(mHandle, other.mHandle);
+        return *this;
+    }
+
+    HandleT mHandle;
+};
+
 class CommandPool final : public WrappedObject<CommandPool, VkCommandPool>
 {
   public:
@@ -189,7 +176,7 @@
 
     static bool SupportsQueries(const VkPhysicalDeviceFeatures &features)
     {
-        return features.inheritedQueries;
+        return (features.inheritedQueries == VK_TRUE);
     }
 
     // Vulkan command buffers are executed as secondary command buffers within a primary command
@@ -290,13 +277,21 @@
                                                     uint32_t firstIndex,
                                                     int32_t vertexOffset,
                                                     uint32_t firstInstance);
+    void drawIndexedIndirect(const Buffer &buffer,
+                             VkDeviceSize offset,
+                             uint32_t drawCount,
+                             uint32_t stride);
+    void drawIndirect(const Buffer &buffer,
+                      VkDeviceSize offset,
+                      uint32_t drawCount,
+                      uint32_t stride);
 
     VkResult end();
     void endQuery(VkQueryPool queryPool, uint32_t query);
     void endRenderPass();
     void executeCommands(uint32_t commandBufferCount, const CommandBuffer *commandBuffers);
 
-    void getMemoryUsageStats(size_t *usedMemoryOut, size_t *allocatedMemoryOut);
+    void getMemoryUsageStats(size_t *usedMemoryOut, size_t *allocatedMemoryOut) const;
 
     void executionBarrier(VkPipelineStageFlags stageMask);
 
@@ -817,7 +812,7 @@
 }
 
 ANGLE_INLINE void CommandBuffer::getMemoryUsageStats(size_t *usedMemoryOut,
-                                                     size_t *allocatedMemoryOut)
+                                                     size_t *allocatedMemoryOut) const
 {
     // No data available.
     *usedMemoryOut      = 0;
@@ -979,6 +974,24 @@
     vkCmdDrawIndexed(mHandle, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance);
 }
 
+ANGLE_INLINE void CommandBuffer::drawIndexedIndirect(const Buffer &buffer,
+                                                     VkDeviceSize offset,
+                                                     uint32_t drawCount,
+                                                     uint32_t stride)
+{
+    ASSERT(valid());
+    vkCmdDrawIndexedIndirect(mHandle, buffer.getHandle(), offset, drawCount, stride);
+}
+
+ANGLE_INLINE void CommandBuffer::drawIndirect(const Buffer &buffer,
+                                              VkDeviceSize offset,
+                                              uint32_t drawCount,
+                                              uint32_t stride)
+{
+    ASSERT(valid());
+    vkCmdDrawIndirect(mHandle, buffer.getHandle(), offset, drawCount, stride);
+}
+
 ANGLE_INLINE void CommandBuffer::dispatch(uint32_t groupCountX,
                                           uint32_t groupCountY,
                                           uint32_t groupCountZ)
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/validationEGL.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/validationEGL.cpp
index e6d1e45..2d98369 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/validationEGL.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/validationEGL.cpp
@@ -387,6 +387,7 @@
     {
         EGLAttrib platformType       = EGL_PLATFORM_ANGLE_TYPE_DEFAULT_ANGLE;
         bool enableAutoTrimSpecified = false;
+        bool enableD3D11on12         = false;
         bool presentPathSpecified    = false;
 
         Optional<EGLAttrib> majorVersion;
@@ -433,6 +434,25 @@
                     enableAutoTrimSpecified = true;
                     break;
 
+                case EGL_PLATFORM_ANGLE_D3D11ON12_ANGLE:
+                    if (!clientExtensions.platformANGLED3D ||
+                        !clientExtensions.platformANGLED3D11ON12)
+                    {
+                        return EglBadAttribute()
+                               << "EGL_PLATFORM_ANGLE_D3D11ON12_ANGLE extension not active.";
+                    }
+
+                    switch (value)
+                    {
+                        case EGL_TRUE:
+                        case EGL_FALSE:
+                            break;
+                        default:
+                            return EglBadAttribute() << "Invalid D3D11on12 attribute";
+                    }
+                    enableD3D11on12 = true;
+                    break;
+
                 case EGL_EXPERIMENTAL_PRESENT_PATH_ANGLE:
                     if (!clientExtensions.experimentalPresentPath)
                     {
@@ -468,6 +488,14 @@
                             }
                             break;
 
+                        case EGL_PLATFORM_ANGLE_DEVICE_TYPE_SWIFTSHADER_ANGLE:
+                            if (!clientExtensions.platformANGLEDeviceTypeSwiftShader)
+                            {
+                                return EglBadAttribute() << "EGL_ANGLE_platform_angle_device_type_"
+                                                            "swiftshader is not supported";
+                            }
+                            break;
+
                         default:
                             return EglBadAttribute() << "Invalid value for "
                                                         "EGL_PLATFORM_ANGLE_DEVICE_TYPE_ANGLE "
@@ -542,6 +570,24 @@
                                         "EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE.";
         }
 
+        if (enableD3D11on12)
+        {
+            if (platformType != EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE)
+            {
+                return EglBadAttribute() << "EGL_PLATFORM_ANGLE_D3D11ON12_ANGLE "
+                                            "requires a platform type of "
+                                            "EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE.";
+            }
+
+            if (deviceType.valid() && deviceType != EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE &&
+                deviceType != EGL_PLATFORM_ANGLE_DEVICE_TYPE_D3D_WARP_ANGLE)
+            {
+                return EglBadAttribute() << "EGL_PLATFORM_ANGLE_D3D11ON12_ANGLE requires a device "
+                                            "type of EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE "
+                                            "or EGL_PLATFORM_ANGLE_DEVICE_TYPE_D3D_WARP_ANGLE";
+            }
+        }
+
         if (presentPathSpecified && platformType != EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE)
         {
             return EglBadAttribute() << "EGL_EXPERIMENTAL_PRESENT_PATH_ANGLE requires a "
@@ -563,6 +609,16 @@
                                   "EGL_PLATFORM_ANGLE_TYPE_D3D9_ANGLE.";
                     }
                     break;
+
+                case EGL_PLATFORM_ANGLE_DEVICE_TYPE_SWIFTSHADER_ANGLE:
+                    if (platformType != EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE)
+                    {
+                        return EglBadAttribute()
+                               << "This device type requires a "
+                                  "platform type of EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE.";
+                    }
+                    break;
+
                 default:
                     break;
             }
@@ -968,7 +1024,19 @@
                             gl::Context *shareContext,
                             const AttributeMap &attributes)
 {
-    ANGLE_TRY(ValidateConfig(display, configuration));
+    if (configuration)
+    {
+        ANGLE_TRY(ValidateConfig(display, configuration));
+    }
+    else
+    {
+        ANGLE_TRY(ValidateDisplay(display));
+        const DisplayExtensions &displayExtensions = display->getExtensions();
+        if (!displayExtensions.noConfigContext)
+        {
+            return EglBadConfig();
+        }
+    }
 
     // Get the requested client version (default is 1) and check it is 2 or 3.
     EGLAttrib clientMajorVersion = 1;
@@ -1191,7 +1259,12 @@
             {
                 return EglBadAttribute();
             }
-            if (!(configuration->renderableType & EGL_OPENGL_ES_BIT))
+            if (configuration == EGL_NO_CONFIG_KHR)
+            {
+                return EglBadMatch();
+            }
+            if ((configuration != EGL_NO_CONFIG_KHR) &&
+                !(configuration->renderableType & EGL_OPENGL_ES_BIT))
             {
                 return EglBadMatch();
             }
@@ -1202,7 +1275,8 @@
             {
                 return EglBadAttribute();
             }
-            if (!(configuration->renderableType & EGL_OPENGL_ES2_BIT))
+            if ((configuration != EGL_NO_CONFIG_KHR) &&
+                !(configuration->renderableType & EGL_OPENGL_ES2_BIT))
             {
                 return EglBadMatch();
             }
@@ -1212,7 +1286,8 @@
             {
                 return EglBadAttribute();
             }
-            if (!(configuration->renderableType & EGL_OPENGL_ES3_BIT))
+            if ((configuration != EGL_NO_CONFIG_KHR) &&
+                !(configuration->renderableType & EGL_OPENGL_ES3_BIT))
             {
                 return EglBadMatch();
             }
@@ -1774,32 +1849,65 @@
     if (read != EGL_NO_SURFACE)
     {
         ANGLE_TRY(ValidateSurface(display, read));
-        ANGLE_TRY(ValidateCompatibleConfigs(display, read->getConfig(), read, context->getConfig(),
-                                            read->getType()));
+        ANGLE_TRY(ValidateCompatibleSurface(display, context, read));
     }
 
     if (draw != read)
     {
         if (draw)
         {
-            ANGLE_TRY(ValidateCompatibleConfigs(display, draw->getConfig(), draw,
-                                                context->getConfig(), draw->getType()));
+            ANGLE_TRY(ValidateCompatibleSurface(display, context, draw));
         }
         if (read)
         {
-            ANGLE_TRY(ValidateCompatibleConfigs(display, read->getConfig(), read,
-                                                context->getConfig(), read->getType()));
+            ANGLE_TRY(ValidateCompatibleSurface(display, context, read));
         }
     }
     return NoError();
 }
 
-Error ValidateCompatibleConfigs(const Display *display,
-                                const Config *surfaceConfig,
-                                const Surface *surface,
-                                const Config *contextConfig,
-                                EGLint surfaceType)
+Error ValidateCompatibleSurface(const Display *display,
+                                gl::Context *context,
+                                const Surface *surface)
 {
+    const Config *contextConfig = context->getConfig();
+    const Config *surfaceConfig = surface->getConfig();
+
+    // Surface compatible with client API - only OPENGL_ES supported
+    switch (context->getClientMajorVersion())
+    {
+        case 1:
+            if (!(surfaceConfig->renderableType & EGL_OPENGL_ES_BIT))
+            {
+                return EglBadMatch() << "Surface not compatible with OpenGL ES 1.x.";
+            }
+            break;
+        case 2:
+            if (!(surfaceConfig->renderableType & EGL_OPENGL_ES2_BIT))
+            {
+                return EglBadMatch() << "Surface not compatible with OpenGL ES 2.x.";
+            }
+            break;
+        case 3:
+            if (!(surfaceConfig->renderableType & (EGL_OPENGL_ES2_BIT | EGL_OPENGL_ES3_BIT)))
+            {
+                return EglBadMatch() << "Surface not compatible with OpenGL ES 3.x.";
+            }
+            break;
+        default:
+            return EglBadMatch() << "Surface not compatible with Context API.";
+    }
+
+    // EGL KHR no config context
+    if (context->getConfig() == EGL_NO_CONFIG_KHR)
+    {
+        const DisplayExtensions &displayExtensions = display->getExtensions();
+        if (displayExtensions.noConfigContext)
+        {
+            return NoError();
+        }
+        return EglBadMatch() << "Context with no config is not supported.";
+    }
 
     if (!surface->flexibleSurfaceCompatibilityRequested())
     {
@@ -1836,11 +1944,10 @@
         }
     }
 
-    bool surfaceTypeCompat =
-        (surfaceConfig->surfaceType & contextConfig->surfaceType & surfaceType) != 0;
+    bool surfaceTypeCompat = (surfaceConfig->surfaceType & contextConfig->surfaceType) != 0;
     if (!surfaceTypeCompat)
     {
-        return EglBadMatch() << "Surface types are not compatible.";
+        return EglBadMatch() << "Surface type is not compatible.";
     }
 
     return NoError();
@@ -2539,7 +2646,7 @@
 
     // Lookup the texture and ensure it is correct
     gl::Texture *texture = context->getState().getTargetTexture(gl::TextureType::External);
-    if (texture == nullptr || texture->getId() == 0)
+    if (texture == nullptr || texture->id().value == 0)
     {
         return EglBadAccess() << "No external texture bound";
     }
@@ -2744,7 +2851,7 @@
 
         // Lookup the texture and ensure it is correct
         gl::Texture *texture = context->getState().getTargetTexture(gl::TextureType::External);
-        if (texture == nullptr || texture->getId() == 0)
+        if (texture == nullptr || texture->id().value == 0)
         {
             return EglBadAccess() << "No external texture bound";
         }
@@ -2779,7 +2886,7 @@
             {
                 gl::Texture *texture = context->getState().getSamplerTexture(
                     static_cast<unsigned int>(plane[i]), gl::TextureType::External);
-                if (texture == nullptr || texture->getId() == 0)
+                if (texture == nullptr || texture->id().value == 0)
                 {
                     return EglBadAccess()
                            << "No external texture bound at one or more specified texture units";
@@ -3872,6 +3979,7 @@
         case EGL_FEATURE_DESCRIPTION_ANGLE:
         case EGL_FEATURE_BUG_ANGLE:
         case EGL_FEATURE_STATUS_ANGLE:
+        case EGL_FEATURE_CONDITION_ANGLE:
             break;
         default:
             return EglBadParameter() << "name is not valid.";
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/validationEGL.h b/Source/ThirdParty/ANGLE/src/libANGLE/validationEGL.h
index 8b37738..e2c39db 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/validationEGL.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/validationEGL.h
@@ -233,11 +233,9 @@
 Error ValidateGetConfigs(const Display *display, EGLint configSize, EGLint *numConfig);
 
 // Other validation
-Error ValidateCompatibleConfigs(const Display *display,
-                                const Config *config1,
-                                const Surface *surface,
-                                const Config *config2,
-                                EGLint surfaceType);
+Error ValidateCompatibleSurface(const Display *display,
+                                gl::Context *context,
+                                const Surface *surface);
 
 Error ValidateGetPlatformDisplay(EGLenum platform,
                                  void *native_display,
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/validationES.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/validationES.cpp
index 3e62c6c..66c4dc9 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/validationES.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/validationES.cpp
@@ -1205,8 +1205,8 @@
         return false;
     }
 
-    GLuint handle = context->getState().getRenderbufferId();
-    if (handle == 0)
+    RenderbufferID id = context->getState().getRenderbufferId();
+    if (id.value == 0)
     {
         context->validationError(GL_INVALID_OPERATION, kInvalidRenderbufferTarget);
         return false;
@@ -6361,7 +6361,7 @@
     }
 
     Texture *texture = context->getTextureByType(target);
-    if (!texture || texture->id() == 0)
+    if (!texture || texture->id().value == 0)
     {
         context->validationError(GL_INVALID_OPERATION, kZeroBoundToTarget);
         return false;
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/validationES.h b/Source/ThirdParty/ANGLE/src/libANGLE/validationES.h
index c06468e..3fd6d89 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/validationES.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/validationES.h
@@ -547,6 +547,14 @@
                 return false;
             }
             break;
+        case VertexAttribTypeCase::ValidSize3or4:
+            if (size != 3 && size != 4)
+            {
+                context->validationError(GL_INVALID_OPERATION,
+                                         err::kInvalidVertexAttribSize1010102);
+                return false;
+            }
+            break;
     }
 
     return true;
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/validationES2.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/validationES2.cpp
index 3b8eebd..afab5ee 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/validationES2.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/validationES2.cpp
@@ -2039,7 +2039,7 @@
     }
 
     gl::Texture *texture = context->getTextureByType(target);
-    if (!texture || texture->id() == 0)
+    if (!texture || texture->id().value == 0)
     {
         context->validationError(GL_INVALID_OPERATION, kMissingTexture);
         return false;
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/validationES3.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/validationES3.cpp
index a8d92e0..f399686 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/validationES3.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/validationES3.cpp
@@ -1178,7 +1178,7 @@
     }
 
     gl::Texture *texture = context->getTextureByType(target);
-    if (!texture || texture->id() == 0)
+    if (!texture || texture->id().value == 0)
     {
         context->validationError(GL_INVALID_OPERATION, kMissingTexture);
         return false;
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/validationES31.cpp b/Source/ThirdParty/ANGLE/src/libANGLE/validationES31.cpp
index 91dd1d57..587b204 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/validationES31.cpp
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/validationES31.cpp
@@ -267,7 +267,8 @@
     switch (programInterface)
     {
         case GL_PROGRAM_INPUT:
-            return (index < static_cast<GLuint>(programObject->getActiveAttributeCount()));
+            return (index <
+                    static_cast<GLuint>(programObject->getState().getProgramInputs().size()));
 
         case GL_PROGRAM_OUTPUT:
             return (index < static_cast<GLuint>(programObject->getOutputResourceCount()));
diff --git a/Source/ThirdParty/ANGLE/src/libGLESv2.gni b/Source/ThirdParty/ANGLE/src/libGLESv2.gni
index ba759a2..5cee07e 100644
--- a/Source/ThirdParty/ANGLE/src/libGLESv2.gni
+++ b/Source/ThirdParty/ANGLE/src/libGLESv2.gni
@@ -88,20 +88,27 @@
 }
 
 if (is_win) {
-  angle_system_utils_sources += [ "src/common/system_utils_win.cpp" ]
+  if (current_os == "winuwp") {
+    angle_system_utils_sources += [ "src/common/system_utils_winuwp.cpp" ]
+  } else {
+    angle_system_utils_sources += [ "src/common/system_utils_win.cpp" ]
+  }
 }
 
-libangle_image_util_sources = [
-  "src/image_util/copyimage.cpp",
+libangle_image_util_headers = [
   "src/image_util/copyimage.h",
   "src/image_util/copyimage.inc",
   "src/image_util/generatemip.h",
   "src/image_util/generatemip.inc",
-  "src/image_util/imageformats.cpp",
   "src/image_util/imageformats.h",
-  "src/image_util/loadimage.cpp",
   "src/image_util/loadimage.h",
   "src/image_util/loadimage.inc",
+]
+
+libangle_image_util_sources = [
+  "src/image_util/copyimage.cpp",
+  "src/image_util/imageformats.cpp",
+  "src/image_util/loadimage.cpp",
   "src/image_util/loadimage_etc.cpp",
 ]
 
@@ -146,8 +153,6 @@
   "include/GLES3/gl31.h",
   "include/GLES3/gl31ext_explicit_context_autogen.inc",
   "include/GLES3/gl32.h",
-  "include/GLSLANG/ShaderLang.h",
-  "include/GLSLANG/ShaderVars.h",
   "include/KHR/khrplatform.h",
   "include/WGL/wgl.h",
   "include/platform/Feature.h",
@@ -158,24 +163,17 @@
   "include/platform/Platform.h",
 ]
 
-libangle_sources = [
-  "src/libANGLE/AttributeMap.cpp",
+libangle_headers = [
   "src/libANGLE/AttributeMap.h",
   "src/libANGLE/BinaryStream.h",
-  "src/libANGLE/BlobCache.cpp",
   "src/libANGLE/BlobCache.h",
-  "src/libANGLE/Buffer.cpp",
   "src/libANGLE/Buffer.h",
-  "src/libANGLE/Caps.cpp",
   "src/libANGLE/Caps.h",
-  "src/libANGLE/Compiler.cpp",
   "src/libANGLE/Compiler.h",
-  "src/libANGLE/Config.cpp",
   "src/libANGLE/Config.h",
   "src/libANGLE/Constants.h",
-  "src/libANGLE/Context.cpp",
-  "src/libANGLE/Context_gl.cpp",
-  "src/libANGLE/Context_gles_1_0.cpp",
+  "src/libANGLE/Context.h",
+  "src/libANGLE/Context.inl.h",
   "src/libANGLE/Context_gl_1_0_autogen.h",
   "src/libANGLE/Context_gl_1_1_autogen.h",
   "src/libANGLE/Context_gl_1_2_autogen.h",
@@ -200,48 +198,27 @@
   "src/libANGLE/Context_gles_3_0_autogen.h",
   "src/libANGLE/Context_gles_3_1_autogen.h",
   "src/libANGLE/Context_gles_ext_autogen.h",
-  "src/libANGLE/Context.h",
-  "src/libANGLE/Context.inl.h",
-  "src/libANGLE/Debug.cpp",
   "src/libANGLE/Debug.h",
-  "src/libANGLE/Device.cpp",
   "src/libANGLE/Device.h",
-  "src/libANGLE/Display.cpp",
   "src/libANGLE/Display.h",
-  "src/libANGLE/EGLSync.cpp",
   "src/libANGLE/EGLSync.h",
-  "src/libANGLE/Error.cpp",
   "src/libANGLE/Error.h",
   "src/libANGLE/Error.inc",
   "src/libANGLE/ErrorStrings.h",
-  "src/libANGLE/Fence.cpp",
   "src/libANGLE/Fence.h",
-  "src/libANGLE/Framebuffer.cpp",
   "src/libANGLE/Framebuffer.h",
-  "src/libANGLE/FramebufferAttachment.cpp",
   "src/libANGLE/FramebufferAttachment.h",
-  "src/libANGLE/GLES1Renderer.cpp",
   "src/libANGLE/GLES1Renderer.h",
   "src/libANGLE/GLES1Shaders.inc",
-  "src/libANGLE/GLES1State.cpp",
   "src/libANGLE/GLES1State.h",
-  "src/libANGLE/HandleAllocator.cpp",
   "src/libANGLE/HandleAllocator.h",
   "src/libANGLE/HandleRangeAllocator.h",
-  "src/libANGLE/HandleRangeAllocator.cpp",
   "src/libANGLE/Image.h",
-  "src/libANGLE/Image.cpp",
   "src/libANGLE/ImageIndex.h",
-  "src/libANGLE/ImageIndex.cpp",
-  "src/libANGLE/IndexRangeCache.cpp",
   "src/libANGLE/IndexRangeCache.h",
-  "src/libANGLE/LoggingAnnotator.cpp",
   "src/libANGLE/LoggingAnnotator.h",
-  "src/libANGLE/MemoryObject.cpp",
   "src/libANGLE/MemoryObject.h",
-  "src/libANGLE/MemoryProgramCache.cpp",
   "src/libANGLE/MemoryProgramCache.h",
-  "src/libANGLE/Observer.cpp",
   "src/libANGLE/Observer.h",
   "src/libANGLE/Overlay.cpp",
   "src/libANGLE/Overlay.h",
@@ -251,87 +228,52 @@
   "src/libANGLE/Overlay_font_autogen.cpp",
   "src/libANGLE/Overlay_font_autogen.h",
   "src/libANGLE/Path.h",
-  "src/libANGLE/Path.cpp",
-  "src/libANGLE/Platform.cpp",
-  "src/libANGLE/Program.cpp",
   "src/libANGLE/Program.h",
-  "src/libANGLE/ProgramLinkedResources.cpp",
   "src/libANGLE/ProgramLinkedResources.h",
-  "src/libANGLE/ProgramPipeline.cpp",
   "src/libANGLE/ProgramPipeline.h",
-  "src/libANGLE/Query.cpp",
   "src/libANGLE/Query.h",
   "src/libANGLE/RefCountObject.h",
-  "src/libANGLE/Renderbuffer.cpp",
   "src/libANGLE/Renderbuffer.h",
-  "src/libANGLE/ResourceManager.cpp",
   "src/libANGLE/ResourceManager.h",
   "src/libANGLE/ResourceMap.h",
-  "src/libANGLE/Sampler.cpp",
   "src/libANGLE/Sampler.h",
-  "src/libANGLE/Semaphore.cpp",
   "src/libANGLE/Semaphore.h",
-  "src/libANGLE/Shader.cpp",
   "src/libANGLE/Shader.h",
   "src/libANGLE/SizedMRUCache.h",
-  "src/libANGLE/State.cpp",
   "src/libANGLE/State.h",
-  "src/libANGLE/Stream.cpp",
   "src/libANGLE/Stream.h",
-  "src/libANGLE/Surface.cpp",
   "src/libANGLE/Surface.h",
-  "src/libANGLE/Texture.cpp",
   "src/libANGLE/Texture.h",
-  "src/libANGLE/Thread.cpp",
   "src/libANGLE/Thread.h",
-  "src/libANGLE/TransformFeedback.cpp",
   "src/libANGLE/TransformFeedback.h",
-  "src/libANGLE/Uniform.cpp",
   "src/libANGLE/Uniform.h",
-  "src/libANGLE/VaryingPacking.cpp",
   "src/libANGLE/VaryingPacking.h",
   "src/libANGLE/Version.h",
   "src/libANGLE/Version.inc",
-  "src/libANGLE/VertexArray.cpp",
   "src/libANGLE/VertexArray.h",
-  "src/libANGLE/VertexAttribute.cpp",
   "src/libANGLE/VertexAttribute.h",
   "src/libANGLE/VertexAttribute.inc",
-  "src/libANGLE/WorkerThread.cpp",
   "src/libANGLE/WorkerThread.h",
-  "src/libANGLE/angletypes.cpp",
   "src/libANGLE/angletypes.h",
   "src/libANGLE/angletypes.inc",
-  "src/libANGLE/entry_points_enum_autogen.cpp",
   "src/libANGLE/entry_points_enum_autogen.h",
   "src/libANGLE/entry_points_utils.h",
-  "src/libANGLE/es3_copy_conversion_table_autogen.cpp",
   "src/libANGLE/features.h",
-  "src/libANGLE/format_map_autogen.cpp",
-  "src/libANGLE/format_map_desktop.cpp",
-  "src/libANGLE/formatutils.cpp",
   "src/libANGLE/formatutils.h",
   "src/libANGLE/histogram_macros.h",
-  "src/libANGLE/queryconversions.cpp",
   "src/libANGLE/queryconversions.h",
-  "src/libANGLE/queryutils.cpp",
   "src/libANGLE/queryutils.h",
   "src/libANGLE/trace.h",
   "src/libANGLE/renderer/BufferImpl.h",
   "src/libANGLE/renderer/CompilerImpl.h",
-  "src/libANGLE/renderer/ContextImpl.cpp",
   "src/libANGLE/renderer/ContextImpl.h",
-  "src/libANGLE/renderer/driver_utils.cpp",
   "src/libANGLE/renderer/driver_utils.h",
-  "src/libANGLE/renderer/DeviceImpl.cpp",
   "src/libANGLE/renderer/DeviceImpl.h",
-  "src/libANGLE/renderer/DisplayImpl.cpp",
   "src/libANGLE/renderer/DisplayImpl.h",
   "src/libANGLE/renderer/EGLImplFactory.h",
   "src/libANGLE/renderer/EGLSyncImpl.h",
   "src/libANGLE/renderer/FenceNVImpl.h",
   "src/libANGLE/renderer/FormatID_autogen.h",
-  "src/libANGLE/renderer/Format_table_autogen.cpp",
   "src/libANGLE/renderer/Format.h",
   "src/libANGLE/renderer/FramebufferAttachmentObjectImpl.h",
   "src/libANGLE/renderer/FramebufferImpl.h",
@@ -342,85 +284,151 @@
   "src/libANGLE/renderer/PathImpl.h",
   "src/libANGLE/renderer/ProgramImpl.h",
   "src/libANGLE/renderer/ProgramPipelineImpl.h",
-  "src/libANGLE/renderer/QueryImpl.cpp",
   "src/libANGLE/renderer/QueryImpl.h",
   "src/libANGLE/renderer/RenderbufferImpl.h",
   "src/libANGLE/renderer/RenderTargetCache.h",
   "src/libANGLE/renderer/SamplerImpl.h",
   "src/libANGLE/renderer/SemaphoreImpl.h",
-  "src/libANGLE/renderer/ShaderImpl.cpp",
   "src/libANGLE/renderer/ShaderImpl.h",
   "src/libANGLE/renderer/StreamProducerImpl.h",
-  "src/libANGLE/renderer/SurfaceImpl.cpp",
   "src/libANGLE/renderer/SurfaceImpl.h",
   "src/libANGLE/renderer/SyncImpl.h",
-  "src/libANGLE/renderer/TextureImpl.cpp",
   "src/libANGLE/renderer/TextureImpl.h",
   "src/libANGLE/renderer/TransformFeedbackImpl.h",
   "src/libANGLE/renderer/VertexArrayImpl.h",
   "src/libANGLE/renderer/copyvertex.h",
   "src/libANGLE/renderer/copyvertex.inc.h",
   "src/libANGLE/renderer/load_functions_table.h",
+  "src/libANGLE/renderer/renderer_utils.h",
+  "src/libANGLE/validationEGL.h",
+  "src/libANGLE/validationES.h",
+  "src/libANGLE/validationES1.h",
+  "src/libANGLE/validationES1_autogen.h",
+  "src/libANGLE/validationES2.h",
+  "src/libANGLE/validationES2_autogen.h",
+  "src/libANGLE/validationES3.h",
+  "src/libANGLE/validationES31.h",
+  "src/libANGLE/validationES31_autogen.h",
+  "src/libANGLE/validationES3_autogen.h",
+  "src/libANGLE/validationESEXT.h",
+  "src/libANGLE/validationESEXT_autogen.h",
+  "src/libANGLE/validationGL11_autogen.h",
+  "src/libANGLE/validationGL12_autogen.h",
+  "src/libANGLE/validationGL13_autogen.h",
+  "src/libANGLE/validationGL14_autogen.h",
+  "src/libANGLE/validationGL15_autogen.h",
+  "src/libANGLE/validationGL1_autogen.h",
+  "src/libANGLE/validationGL21_autogen.h",
+  "src/libANGLE/validationGL2_autogen.h",
+  "src/libANGLE/validationGL31_autogen.h",
+  "src/libANGLE/validationGL32_autogen.h",
+  "src/libANGLE/validationGL33_autogen.h",
+  "src/libANGLE/validationGL3_autogen.h",
+  "src/libANGLE/validationGL41_autogen.h",
+  "src/libANGLE/validationGL42_autogen.h",
+  "src/libANGLE/validationGL43_autogen.h",
+  "src/libANGLE/validationGL44_autogen.h",
+  "src/libANGLE/validationGL45_autogen.h",
+  "src/libANGLE/validationGL46_autogen.h",
+  "src/libANGLE/validationGL4_autogen.h",
+  "src/third_party/trace_event/trace_event.h",
+]
+
+libangle_sources = [
+  "src/libANGLE/AttributeMap.cpp",
+  "src/libANGLE/BlobCache.cpp",
+  "src/libANGLE/Buffer.cpp",
+  "src/libANGLE/Caps.cpp",
+  "src/libANGLE/Compiler.cpp",
+  "src/libANGLE/Config.cpp",
+  "src/libANGLE/Context.cpp",
+  "src/libANGLE/Context_gl.cpp",
+  "src/libANGLE/Context_gles_1_0.cpp",
+  "src/libANGLE/Debug.cpp",
+  "src/libANGLE/Device.cpp",
+  "src/libANGLE/Display.cpp",
+  "src/libANGLE/EGLSync.cpp",
+  "src/libANGLE/Error.cpp",
+  "src/libANGLE/Fence.cpp",
+  "src/libANGLE/Framebuffer.cpp",
+  "src/libANGLE/FramebufferAttachment.cpp",
+  "src/libANGLE/GLES1Renderer.cpp",
+  "src/libANGLE/GLES1State.cpp",
+  "src/libANGLE/HandleAllocator.cpp",
+  "src/libANGLE/HandleRangeAllocator.cpp",
+  "src/libANGLE/Image.cpp",
+  "src/libANGLE/ImageIndex.cpp",
+  "src/libANGLE/IndexRangeCache.cpp",
+  "src/libANGLE/LoggingAnnotator.cpp",
+  "src/libANGLE/MemoryObject.cpp",
+  "src/libANGLE/MemoryProgramCache.cpp",
+  "src/libANGLE/Observer.cpp",
+  "src/libANGLE/Path.cpp",
+  "src/libANGLE/Platform.cpp",
+  "src/libANGLE/Program.cpp",
+  "src/libANGLE/ProgramLinkedResources.cpp",
+  "src/libANGLE/ProgramPipeline.cpp",
+  "src/libANGLE/Query.cpp",
+  "src/libANGLE/Renderbuffer.cpp",
+  "src/libANGLE/ResourceManager.cpp",
+  "src/libANGLE/Sampler.cpp",
+  "src/libANGLE/Semaphore.cpp",
+  "src/libANGLE/Shader.cpp",
+  "src/libANGLE/State.cpp",
+  "src/libANGLE/Stream.cpp",
+  "src/libANGLE/Surface.cpp",
+  "src/libANGLE/Texture.cpp",
+  "src/libANGLE/Thread.cpp",
+  "src/libANGLE/TransformFeedback.cpp",
+  "src/libANGLE/Uniform.cpp",
+  "src/libANGLE/VaryingPacking.cpp",
+  "src/libANGLE/VertexArray.cpp",
+  "src/libANGLE/VertexAttribute.cpp",
+  "src/libANGLE/WorkerThread.cpp",
+  "src/libANGLE/angletypes.cpp",
+  "src/libANGLE/entry_points_enum_autogen.cpp",
+  "src/libANGLE/es3_copy_conversion_table_autogen.cpp",
+  "src/libANGLE/format_map_autogen.cpp",
+  "src/libANGLE/format_map_desktop.cpp",
+  "src/libANGLE/formatutils.cpp",
+  "src/libANGLE/queryconversions.cpp",
+  "src/libANGLE/queryutils.cpp",
+  "src/libANGLE/renderer/ContextImpl.cpp",
+  "src/libANGLE/renderer/driver_utils.cpp",
+  "src/libANGLE/renderer/DeviceImpl.cpp",
+  "src/libANGLE/renderer/DisplayImpl.cpp",
+  "src/libANGLE/renderer/Format_table_autogen.cpp",
+  "src/libANGLE/renderer/QueryImpl.cpp",
+  "src/libANGLE/renderer/ShaderImpl.cpp",
+  "src/libANGLE/renderer/SurfaceImpl.cpp",
+  "src/libANGLE/renderer/TextureImpl.cpp",
   "src/libANGLE/renderer/load_functions_table_autogen.cpp",
   "src/libANGLE/renderer/renderer_utils.cpp",
-  "src/libANGLE/renderer/renderer_utils.h",
   "src/libANGLE/validationEGL.cpp",
-  "src/libANGLE/validationEGL.h",
   "src/libANGLE/validationES.cpp",
-  "src/libANGLE/validationES.h",
   "src/libANGLE/validationES1.cpp",
-  "src/libANGLE/validationES1_autogen.h",
-  "src/libANGLE/validationES1.h",
   "src/libANGLE/validationES2.cpp",
-  "src/libANGLE/validationES2_autogen.h",
-  "src/libANGLE/validationES2.h",
   "src/libANGLE/validationES3.cpp",
   "src/libANGLE/validationES31.cpp",
-  "src/libANGLE/validationES31_autogen.h",
-  "src/libANGLE/validationES31.h",
-  "src/libANGLE/validationES3_autogen.h",
-  "src/libANGLE/validationES3.h",
-  "src/libANGLE/validationESEXT_autogen.h",
-  "src/libANGLE/validationESEXT.h",
   "src/libANGLE/validationGL1.cpp",
-  "src/libANGLE/validationGL1_autogen.h",
   "src/libANGLE/validationGL2.cpp",
-  "src/libANGLE/validationGL2_autogen.h",
   "src/libANGLE/validationGL3.cpp",
-  "src/libANGLE/validationGL3_autogen.h",
   "src/libANGLE/validationGL4.cpp",
-  "src/libANGLE/validationGL4_autogen.h",
   "src/libANGLE/validationGL11.cpp",
-  "src/libANGLE/validationGL11_autogen.h",
   "src/libANGLE/validationGL12.cpp",
-  "src/libANGLE/validationGL12_autogen.h",
-  "src/libANGLE/validationGL13.cpp",
-  "src/libANGLE/validationGL13_autogen.h",
   "src/libANGLE/validationGL14.cpp",
-  "src/libANGLE/validationGL14_autogen.h",
   "src/libANGLE/validationGL15.cpp",
-  "src/libANGLE/validationGL15_autogen.h",
+  "src/libANGLE/validationGL13.cpp",
   "src/libANGLE/validationGL21.cpp",
-  "src/libANGLE/validationGL21_autogen.h",
   "src/libANGLE/validationGL31.cpp",
-  "src/libANGLE/validationGL31_autogen.h",
   "src/libANGLE/validationGL32.cpp",
-  "src/libANGLE/validationGL32_autogen.h",
   "src/libANGLE/validationGL33.cpp",
-  "src/libANGLE/validationGL33_autogen.h",
   "src/libANGLE/validationGL41.cpp",
-  "src/libANGLE/validationGL41_autogen.h",
   "src/libANGLE/validationGL42.cpp",
-  "src/libANGLE/validationGL42_autogen.h",
   "src/libANGLE/validationGL43.cpp",
-  "src/libANGLE/validationGL43_autogen.h",
   "src/libANGLE/validationGL44.cpp",
-  "src/libANGLE/validationGL44_autogen.h",
   "src/libANGLE/validationGL45.cpp",
-  "src/libANGLE/validationGL45_autogen.h",
   "src/libANGLE/validationGL46.cpp",
-  "src/libANGLE/validationGL46_autogen.h",
-  "src/third_party/trace_event/trace_event.h",
 ]
 
 libangle_d3d_shared_sources = [
@@ -669,7 +677,7 @@
   "src/third_party/systeminfo/SystemInfo.h",
 ]
 
-libangle_d3d11_winrt_sources = [
+libangle_d3d11_winuwp_sources = [
   "src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.cpp",
   "src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.h",
   "src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.cpp",
@@ -834,6 +842,8 @@
 libangle_gl_cgl_sources = [
   "src/libANGLE/renderer/gl/cgl/ContextCGL.cpp",
   "src/libANGLE/renderer/gl/cgl/ContextCGL.h",
+  "src/libANGLE/renderer/gl/cgl/DeviceCGL.cpp",
+  "src/libANGLE/renderer/gl/cgl/DeviceCGL.h",
   "src/libANGLE/renderer/gl/cgl/DisplayCGL.mm",
   "src/libANGLE/renderer/gl/cgl/DisplayCGL.h",
   "src/libANGLE/renderer/gl/cgl/IOSurfaceSurfaceCGL.mm",
@@ -848,82 +858,6 @@
 
 libangle_mac_sources = [ "src/libANGLE/renderer/driver_utils_mac.mm" ]
 
-libangle_vulkan_sources = [
-  "src/libANGLE/renderer/vulkan/BufferVk.cpp",
-  "src/libANGLE/renderer/vulkan/BufferVk.h",
-  "src/libANGLE/renderer/vulkan/CommandGraph.cpp",
-  "src/libANGLE/renderer/vulkan/CommandGraph.h",
-  "src/libANGLE/renderer/vulkan/CompilerVk.cpp",
-  "src/libANGLE/renderer/vulkan/CompilerVk.h",
-  "src/libANGLE/renderer/vulkan/ContextVk.cpp",
-  "src/libANGLE/renderer/vulkan/ContextVk.h",
-  "src/libANGLE/renderer/vulkan/DeviceVk.cpp",
-  "src/libANGLE/renderer/vulkan/DeviceVk.h",
-  "src/libANGLE/renderer/vulkan/DisplayVk.cpp",
-  "src/libANGLE/renderer/vulkan/DisplayVk.h",
-  "src/libANGLE/renderer/vulkan/FenceNVVk.cpp",
-  "src/libANGLE/renderer/vulkan/FenceNVVk.h",
-  "src/libANGLE/renderer/vulkan/FramebufferVk.cpp",
-  "src/libANGLE/renderer/vulkan/FramebufferVk.h",
-  "src/libANGLE/renderer/vulkan/GlslangWrapper.cpp",
-  "src/libANGLE/renderer/vulkan/GlslangWrapper.h",
-  "src/libANGLE/renderer/vulkan/ImageVk.cpp",
-  "src/libANGLE/renderer/vulkan/ImageVk.h",
-  "src/libANGLE/renderer/vulkan/MemoryObjectVk.cpp",
-  "src/libANGLE/renderer/vulkan/MemoryObjectVk.h",
-  "src/libANGLE/renderer/vulkan/OverlayVk.cpp",
-  "src/libANGLE/renderer/vulkan/OverlayVk.h",
-  "src/libANGLE/renderer/vulkan/PersistentCommandPool.cpp",
-  "src/libANGLE/renderer/vulkan/PersistentCommandPool.h",
-  "src/libANGLE/renderer/vulkan/ProgramVk.cpp",
-  "src/libANGLE/renderer/vulkan/ProgramVk.h",
-  "src/libANGLE/renderer/vulkan/ProgramPipelineVk.cpp",
-  "src/libANGLE/renderer/vulkan/ProgramPipelineVk.h",
-  "src/libANGLE/renderer/vulkan/QueryVk.cpp",
-  "src/libANGLE/renderer/vulkan/QueryVk.h",
-  "src/libANGLE/renderer/vulkan/RenderbufferVk.cpp",
-  "src/libANGLE/renderer/vulkan/RenderbufferVk.h",
-  "src/libANGLE/renderer/vulkan/RendererVk.cpp",
-  "src/libANGLE/renderer/vulkan/RendererVk.h",
-  "src/libANGLE/renderer/vulkan/RenderTargetVk.cpp",
-  "src/libANGLE/renderer/vulkan/RenderTargetVk.h",
-  "src/libANGLE/renderer/vulkan/SamplerVk.cpp",
-  "src/libANGLE/renderer/vulkan/SamplerVk.h",
-  "src/libANGLE/renderer/vulkan/SecondaryCommandBuffer.cpp",
-  "src/libANGLE/renderer/vulkan/SecondaryCommandBuffer.h",
-  "src/libANGLE/renderer/vulkan/SemaphoreVk.cpp",
-  "src/libANGLE/renderer/vulkan/SemaphoreVk.h",
-  "src/libANGLE/renderer/vulkan/ShaderVk.cpp",
-  "src/libANGLE/renderer/vulkan/ShaderVk.h",
-  "src/libANGLE/renderer/vulkan/SurfaceVk.cpp",
-  "src/libANGLE/renderer/vulkan/SurfaceVk.h",
-  "src/libANGLE/renderer/vulkan/SyncVk.cpp",
-  "src/libANGLE/renderer/vulkan/SyncVk.h",
-  "src/libANGLE/renderer/vulkan/TextureVk.cpp",
-  "src/libANGLE/renderer/vulkan/TextureVk.h",
-  "src/libANGLE/renderer/vulkan/TransformFeedbackVk.cpp",
-  "src/libANGLE/renderer/vulkan/TransformFeedbackVk.h",
-  "src/libANGLE/renderer/vulkan/UtilsVk.cpp",
-  "src/libANGLE/renderer/vulkan/UtilsVk.h",
-  "src/libANGLE/renderer/vulkan/VertexArrayVk.cpp",
-  "src/libANGLE/renderer/vulkan/VertexArrayVk.h",
-  "src/libANGLE/renderer/vulkan/vk_cache_utils.cpp",
-  "src/libANGLE/renderer/vulkan/vk_cache_utils.h",
-  "src/libANGLE/renderer/vulkan/vk_caps_utils.cpp",
-  "src/libANGLE/renderer/vulkan/vk_caps_utils.h",
-  "src/libANGLE/renderer/vulkan/vk_format_table_autogen.cpp",
-  "src/libANGLE/renderer/vulkan/vk_format_utils.h",
-  "src/libANGLE/renderer/vulkan/vk_format_utils.cpp",
-  "src/libANGLE/renderer/vulkan/vk_helpers.cpp",
-  "src/libANGLE/renderer/vulkan/vk_helpers.h",
-  "src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.h",
-  "src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.cpp",
-  "src/libANGLE/renderer/vulkan/vk_mandatory_format_support_table_autogen.cpp",
-  "src/libANGLE/renderer/vulkan/vk_utils.cpp",
-  "src/libANGLE/renderer/vulkan/vk_utils.h",
-  "src/libANGLE/renderer/vulkan/vk_wrapper.h",
-]
-
 # The frame capture headers are always visible to libANGLE.
 libangle_sources += [
   "src/libANGLE/FrameCapture.h",
@@ -953,36 +887,6 @@
   "src/libANGLE/gl_enum_utils_autogen.cpp",
 ]
 
-libangle_vulkan_android_sources = [
-  "src/libANGLE/renderer/vulkan/android/DisplayVkAndroid.cpp",
-  "src/libANGLE/renderer/vulkan/android/DisplayVkAndroid.h",
-  "src/libANGLE/renderer/vulkan/android/HardwareBufferImageSiblingVkAndroid.cpp",
-  "src/libANGLE/renderer/vulkan/android/HardwareBufferImageSiblingVkAndroid.h",
-  "src/libANGLE/renderer/vulkan/android/WindowSurfaceVkAndroid.cpp",
-  "src/libANGLE/renderer/vulkan/android/WindowSurfaceVkAndroid.h",
-]
-
-libangle_vulkan_win32_sources = [
-  "src/libANGLE/renderer/vulkan/win32/DisplayVkWin32.cpp",
-  "src/libANGLE/renderer/vulkan/win32/DisplayVkWin32.h",
-  "src/libANGLE/renderer/vulkan/win32/WindowSurfaceVkWin32.cpp",
-  "src/libANGLE/renderer/vulkan/win32/WindowSurfaceVkWin32.h",
-]
-
-libangle_vulkan_xcb_sources = [
-  "src/libANGLE/renderer/vulkan/xcb/DisplayVkXcb.cpp",
-  "src/libANGLE/renderer/vulkan/xcb/DisplayVkXcb.h",
-  "src/libANGLE/renderer/vulkan/xcb/WindowSurfaceVkXcb.cpp",
-  "src/libANGLE/renderer/vulkan/xcb/WindowSurfaceVkXcb.h",
-]
-
-libangle_vulkan_fuchsia_sources = [
-  "src/libANGLE/renderer/vulkan/fuchsia/DisplayVkFuchsia.cpp",
-  "src/libANGLE/renderer/vulkan/fuchsia/DisplayVkFuchsia.h",
-  "src/libANGLE/renderer/vulkan/fuchsia/WindowSurfaceVkFuchsia.cpp",
-  "src/libANGLE/renderer/vulkan/fuchsia/WindowSurfaceVkFuchsia.h",
-]
-
 libangle_null_sources = [
   "src/libANGLE/renderer/null/BufferNULL.cpp",
   "src/libANGLE/renderer/null/BufferNULL.h",
diff --git a/Source/ThirdParty/ANGLE/src/libGLESv2/entry_points_egl_ext.cpp b/Source/ThirdParty/ANGLE/src/libGLESv2/entry_points_egl_ext.cpp
index dea94e8..64142da 100644
--- a/Source/ThirdParty/ANGLE/src/libGLESv2/entry_points_egl_ext.cpp
+++ b/Source/ThirdParty/ANGLE/src/libGLESv2/entry_points_egl_ext.cpp
@@ -299,13 +299,17 @@
                                  GetDeviceIfValid(dev));
                 return EGL_FALSE;
             }
-            error = dev->getDevice(value);
-            if (error.isError())
+            error = dev->getAttribute(attribute, value);
+            break;
+        case EGL_CGL_CONTEXT_ANGLE:
+        case EGL_CGL_PIXEL_FORMAT_ANGLE:
+            if (!dev->getExtensions().deviceCGL)
             {
-                thread->setError(error, GetDebug(), "eglQueryDeviceAttribEXT",
+                thread->setError(EglBadAttribute(), GetDebug(), "eglQueryDeviceAttribEXT",
                                  GetDeviceIfValid(dev));
                 return EGL_FALSE;
             }
+            error = dev->getAttribute(attribute, value);
             break;
         default:
             thread->setError(EglBadAttribute(), GetDebug(), "eglQueryDeviceAttribEXT",
@@ -313,6 +317,11 @@
             return EGL_FALSE;
     }
 
+    if (error.isError())
+    {
+        thread->setError(error, GetDebug(), "eglQueryDeviceAttribEXT", GetDeviceIfValid(dev));
+        return EGL_FALSE;
+    }
     thread->setSuccess();
     return EGL_TRUE;
 }
diff --git a/Source/ThirdParty/ANGLE/src/tests/BUILD.gn b/Source/ThirdParty/ANGLE/src/tests/BUILD.gn
index 80c2f77..1ac3b58 100644
--- a/Source/ThirdParty/ANGLE/src/tests/BUILD.gn
+++ b/Source/ThirdParty/ANGLE/src/tests/BUILD.gn
@@ -13,16 +13,7 @@
   build_angle_gles1_conform_tests = false
 }
 
-googletest_deps = [
-  "//testing/gmock",
-  "//testing/gtest",
-  "//third_party/googletest:gmock",
-  "//third_party/googletest:gtest",
-]
-
-if (build_with_chromium) {
-  googletest_deps += [ "//base/test:test_support" ]
-} else {
+if (!build_with_chromium) {
   group("all") {
     testonly = true
     deps = [
@@ -54,43 +45,7 @@
   }
 }
 
-# Helper template for including "main" files in Chromium.
-template("angle_tests_main") {
-  source_set(target_name) {
-    testonly = true
-    public_deps = googletest_deps
-    deps = [
-      "${angle_root}:includes",
-    ]
-
-    main = invoker.main
-
-    if (build_with_chromium) {
-      sources = [
-        "//gpu/$main.cc",
-      ]
-    } else {
-      sources = [
-        "$main.cpp",
-      ]
-    }
-  }
-}
-
-# Should fix the naming here once we migrate away from Chromium "main" files.
-angle_tests_main("angle_unittests_main") {
-  main = "angle_unittest_main"
-}
-
-angle_tests_main("angle_end2end_tests_main") {
-  main = "angle_end2end_tests_main"
-}
-
-angle_tests_main("angle_perftests_main") {
-  main = "angle_perftests_main"
-}
-
-angle_test("angle_unittests_helper") {
+angle_executable("angle_unittests_helper") {
   sources = angle_unittests_helper_sources
 
   deps = [
@@ -131,20 +86,20 @@
 
 angle_test("angle_unittests") {
   sources = angle_unittests_sources
+  main = "angle_unittest_main"
 
   if (angle_enable_hlsl) {
     sources += angle_unittests_hlsl_sources
     defines = [ "ANGLE_ENABLE_HLSL" ]
   }
 
-  deps = googletest_deps + [
-           "${angle_root}:libANGLE",
-           ":angle_test_expectations",
-           "${angle_root}:preprocessor",
-           "${angle_root}:translator",
-           "${angle_root}:libfeature_support",
-           ":angle_unittests_main",
-         ]
+  deps = [
+    ":angle_test_expectations",
+    "${angle_root}:libANGLE",
+    "${angle_root}:libfeature_support",
+    "${angle_root}:preprocessor",
+    "${angle_root}:translator",
+  ]
   if (!is_android && !is_fuchsia) {
     # SystemUtils.RunApp, the only unittest using a helper binary, is not supported on these
     # platforms yet.
@@ -161,6 +116,7 @@
     include_dirs = [ "." ]
 
     sources = angle_end2end_tests_sources
+    main = "angle_end2end_tests_main"
     libs = []
 
     if (is_mac) {
@@ -186,7 +142,6 @@
     ]
 
     deps = [
-      ":angle_end2end_tests_main",
       ":angle_test_expectations",
       "${angle_root}:angle_gpu_info_util",
       "${angle_root}:angle_image_util",
@@ -204,7 +159,7 @@
       use_native_activity = true
     }
     if (angle_enable_vulkan) {
-      deps += [ "${angle_root}:angle_vulkan" ]
+      deps += [ "${angle_root}/src/libANGLE/renderer/vulkan:angle_vulkan" ]
     }
   }
 }
@@ -215,6 +170,7 @@
   angle_test("angle_white_box_tests") {
     include_dirs = [ "." ]
     sources = angle_white_box_tests_sources
+    main = "angle_end2end_tests_main"
 
     if (is_win) {
       sources += angle_white_box_tests_win_sources
@@ -230,7 +186,6 @@
     ]
 
     deps = [
-      ":angle_end2end_tests_main",
       "${angle_root}:angle_util_static",
       "${angle_root}:libANGLE",
       "${angle_root}:libEGL_static",
@@ -252,9 +207,9 @@
   angle_test("angle_white_box_perftests") {
     include_dirs = [ "." ]
     sources = angle_white_box_perf_tests_sources
+    main = "angle_perftests_main"
 
     deps = [
-      ":angle_perftests_main",
       "${angle_jsoncpp_dir}:jsoncpp",
       "${angle_root}:angle_util_static",
       "${angle_root}:libANGLE",
@@ -290,9 +245,9 @@
   angle_test("angle_perftests") {
     include_dirs = [ "." ]
     sources = angle_perf_tests_sources
+    main = "angle_perftests_main"
 
     deps = [
-      ":angle_perftests_main",
       "${angle_jsoncpp_dir}:jsoncpp",
       "${angle_root}:angle_common",
       "${angle_root}:angle_gpu_info_util",
@@ -352,6 +307,11 @@
       "NULLWS",
     ]
 
+    # This is used by the tests to typedef uint32_t. For some reason only needed on mac.
+    if (is_mac) {
+      defines += [ "__linux" ]
+    }
+
     cflags = []
     if (is_clang) {
       # Remove when crbug.com/428099 is resolved.
@@ -367,6 +327,8 @@
         # Upstream tests do null pointer arithmetic, so disable those warnings.
         "-Wno-null-pointer-arithmetic",
       ]
+    } else {
+      cflags += [ "/wd4101" ]  # unreferenced local variable
     }
   }
 
@@ -523,7 +485,6 @@
 
   angle_test("angle_gles1_conformance_tests") {
     deps = [
-      ":angle_end2end_tests_main",
       ":angle_gles1_conformance_no_gtest",
     ]
 
@@ -539,6 +500,7 @@
       "test_utils/angle_test_instantiate.h",
       "test_utils/gl_raii.h",
     ]
+    main = "angle_end2end_tests_main"
 
     configs += [
       "${angle_root}:libANGLE_config",
@@ -559,10 +521,6 @@
 if (build_angle_deqp_tests && !is_fuchsia) {
   import("deqp.gni")
 
-  angle_tests_main("angle_deqp_tests_main") {
-    main = "angle_deqp_tests_main"
-  }
-
   config("angle_deqp_support") {
     include_dirs = deqp_include_dirs
     if (is_win && !is_clang) {
@@ -615,9 +573,6 @@
         "-Wno-string-conversion",  # implicit conversion turns string literal into bool
         "-Wno-unused-local-typedef",
         "-Wno-unused-result",  # ignoring return value of function declared with 'nodiscard' attribute
-
-        # Suppress a spurious header warning. http://crbug.com/995046
-        "-Wno-nonportable-include-path",
       ]
     }
 
@@ -652,12 +607,20 @@
   set_defaults("angle_deqp_source_set") {
     public_configs = []
     configs = angle_common_configs
+    cflags = []
   }
 
   template("angle_deqp_source_set") {
     angle_source_set(target_name) {
       forward_variables_from(invoker, "*")
       suppressed_configs += deqp_undefine_configs
+
+      if (is_clang) {
+        cflags += [
+          # Suppress a spurious header warning. http://crbug.com/995046
+          "-Wno-nonportable-include-path",
+        ]
+      }
     }
   }
 
@@ -835,19 +798,6 @@
     }
   }
 
-  angle_source_set("angle_deqp_gtest_support") {
-    testonly = true
-
-    public_deps = [
-      ":angle_deqp_tests_main",
-      ":angle_test_expectations",
-      "${angle_root}:angle_common",
-      "${angle_root}:angle_util",
-    ]
-
-    libs = []
-  }
-
   set_defaults("angle_deqp_gtest") {
     deps = []
     sources = []
@@ -903,13 +853,16 @@
     angle_test("angle_deqp_${_api}_tests") {
       deps = [
         ":${shared_library_name}",
-        ":angle_deqp_gtest_support",
+        ":angle_test_expectations",
+        "${angle_root}:angle_common",
+        "${angle_root}:angle_util",
       ]
 
       # Must be included outside of the source set for the define
       sources = [
         "deqp_support/angle_deqp_gtest.cpp",
       ]
+      main = "angle_deqp_tests_main"
 
       data = [
         "deqp_support/deqp_${_api}_test_expectations.txt",
diff --git a/Source/ThirdParty/ANGLE/src/tests/angle_end2end_tests.gni b/Source/ThirdParty/ANGLE/src/tests/angle_end2end_tests.gni
index 9729b9a..9b7bed6 100644
--- a/Source/ThirdParty/ANGLE/src/tests/angle_end2end_tests.gni
+++ b/Source/ThirdParty/ANGLE/src/tests/angle_end2end_tests.gni
@@ -138,6 +138,7 @@
   "egl_tests/EGLContextSharingTest.cpp",
   "egl_tests/EGLCreateContextAttribsTest.cpp",
   "egl_tests/EGLDebugTest.cpp",
+  "egl_tests/EGLNoConfigContextTest.cpp",
   "egl_tests/EGLProgramCacheControlTest.cpp",
   "egl_tests/EGLQueryContextTest.cpp",
   "egl_tests/EGLRecordableTest.cpp",
@@ -157,8 +158,10 @@
   "test_utils/angle_test_instantiate.h",
   "test_utils/gl_raii.h",
 ]
-angle_end2end_tests_mac_sources =
-    [ "egl_tests/EGLIOSurfaceClientBufferTest.cpp" ]
+angle_end2end_tests_mac_sources = [
+  "egl_tests/EGLDeviceCGLTest.cpp",
+  "egl_tests/EGLIOSurfaceClientBufferTest.cpp",
+]
 angle_end2end_tests_win_sources = [
   "gl_tests/D3DImageFormatConversionTest.cpp",
   "egl_tests/EGLDeviceTest.cpp",
diff --git a/Source/ThirdParty/ANGLE/src/tests/compiler_tests/DebugShaderPrecision_test.cpp b/Source/ThirdParty/ANGLE/src/tests/compiler_tests/DebugShaderPrecision_test.cpp
index b390bae..d5fbde46 100644
--- a/Source/ThirdParty/ANGLE/src/tests/compiler_tests/DebugShaderPrecision_test.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/compiler_tests/DebugShaderPrecision_test.cpp
@@ -306,7 +306,7 @@
         foundInHLSLCode("float4 angle_compound_add_frm(inout float4 x, in float4 y) {\n"
                         "    x = angle_frm(angle_frm(x) + y);"));
     ASSERT_TRUE(foundInAllGLSLCode("angle_compound_add_frm(_uv, angle_frm(_uu2));"));
-    ASSERT_TRUE(foundInHLSLCodeRegex("angle_compound_add_frm\\(_v(\\d)*, angle_frm\\(_u2\\)\\);"));
+    ASSERT_TRUE(foundInHLSLCodeRegex(R"(angle_compound_add_frm\(_v(\d)*, angle_frm\(_u2\)\);)"));
     ASSERT_TRUE(notFoundInCode("+="));
 }
 
@@ -1055,7 +1055,7 @@
         "}\n";
     compile(shaderString);
     ASSERT_TRUE(foundInAllGLSLCode("modf(angle_frm(_uu), _uo)"));
-    ASSERT_TRUE(foundInHLSLCodeRegex("modf\\(angle_frm\\(_u\\), _o(\\d)*)"));
+    ASSERT_TRUE(foundInHLSLCodeRegex(R"(modf\(angle_frm\(_u\), _o(\d)*)"));
 }
 
 #if defined(ANGLE_ENABLE_HLSL)
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 d3f1c00..acff961 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
@@ -17,17 +17,17 @@
 TEST(ImmutableStringTest, ScriptGeneratedHashesMatch)
 {
     ASSERT_EQ(0x0000026cu, ImmutableString("radians(00B").mangledNameHash());
-    ASSERT_EQ(0x00000147u, ImmutableString("radians(10B").mangledNameHash());
-    ASSERT_EQ(0x00000109u, ImmutableString("radians(20B").mangledNameHash());
+    ASSERT_EQ(0x00000146u, ImmutableString("radians(10B").mangledNameHash());
+    ASSERT_EQ(0x00000108u, ImmutableString("radians(20B").mangledNameHash());
     ASSERT_EQ(0x0000039bu, ImmutableString("radians(30B").mangledNameHash());
-    ASSERT_EQ(0x000001dau, ImmutableString("degrees(00B").mangledNameHash());
+    ASSERT_EQ(0x000001d8u, ImmutableString("degrees(00B").mangledNameHash());
     ASSERT_EQ(0x0000031cu, ImmutableString("degrees(10B").mangledNameHash());
     ASSERT_EQ(0x00000046u, ImmutableString("degrees(20B").mangledNameHash());
-    ASSERT_EQ(0x0000016au, ImmutableString("degrees(30B").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(0x00000110u, ImmutableString("sin(30B").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());
@@ -35,123 +35,123 @@
     ASSERT_EQ(0x00000206u, ImmutableString("tan(00B").mangledNameHash());
     ASSERT_EQ(0x0000034du, ImmutableString("tan(10B").mangledNameHash());
     ASSERT_EQ(0x0000039du, ImmutableString("tan(20B").mangledNameHash());
-    ASSERT_EQ(0x000000f5u, ImmutableString("tan(30B").mangledNameHash());
+    ASSERT_EQ(0x000000f4u, ImmutableString("tan(30B").mangledNameHash());
     ASSERT_EQ(0x00000231u, ImmutableString("asin(00B").mangledNameHash());
     ASSERT_EQ(0x00000378u, ImmutableString("asin(10B").mangledNameHash());
     ASSERT_EQ(0x00000018u, ImmutableString("asin(20B").mangledNameHash());
-    ASSERT_EQ(0x00000137u, ImmutableString("asin(30B").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(0x00000168u, ImmutableString("acos(30B").mangledNameHash());
-    ASSERT_EQ(0x000001f4u, ImmutableString("atan(00B00B").mangledNameHash());
+    ASSERT_EQ(0x00000166u, ImmutableString("acos(30B").mangledNameHash());
+    ASSERT_EQ(0x000001f2u, ImmutableString("atan(00B00B").mangledNameHash());
     ASSERT_EQ(0x00000031u, ImmutableString("atan(10B10B").mangledNameHash());
-    ASSERT_EQ(0x000001c9u, ImmutableString("atan(20B20B").mangledNameHash());
-    ASSERT_EQ(0x00000132u, ImmutableString("atan(30B30B").mangledNameHash());
-    ASSERT_EQ(0x000001e1u, ImmutableString("atan(00B").mangledNameHash());
+    ASSERT_EQ(0x000001c7u, ImmutableString("atan(20B20B").mangledNameHash());
+    ASSERT_EQ(0x00000131u, ImmutableString("atan(30B30B").mangledNameHash());
+    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(0x00000180u, ImmutableString("sinh(20B").mangledNameHash());
-    ASSERT_EQ(0x000000edu, ImmutableString("sinh(30B").mangledNameHash());
-    ASSERT_EQ(0x0000015au, ImmutableString("cosh(00B").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(0x00000047u, ImmutableString("tanh(00B").mangledNameHash());
-    ASSERT_EQ(0x00000169u, ImmutableString("tanh(10B").mangledNameHash());
+    ASSERT_EQ(0x00000167u, ImmutableString("tanh(10B").mangledNameHash());
     ASSERT_EQ(0x0000027cu, 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(0x000000f2u, ImmutableString("asinh(20B").mangledNameHash());
+    ASSERT_EQ(0x000000f1u, ImmutableString("asinh(20B").mangledNameHash());
     ASSERT_EQ(0x0000020au, ImmutableString("asinh(30B").mangledNameHash());
-    ASSERT_EQ(0x0000017du, ImmutableString("acosh(00B").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(0x00000082u, ImmutableString("atanh(00B").mangledNameHash());
     ASSERT_EQ(0x0000001eu, ImmutableString("atanh(10B").mangledNameHash());
     ASSERT_EQ(0x000002cbu, ImmutableString("atanh(20B").mangledNameHash());
-    ASSERT_EQ(0x00000195u, ImmutableString("atanh(30B").mangledNameHash());
-    ASSERT_EQ(0x0000018fu, ImmutableString("pow(00B00B").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(0x00000077u, ImmutableString("exp(10B").mangledNameHash());
-    ASSERT_EQ(0x0000017au, ImmutableString("exp(20B").mangledNameHash());
+    ASSERT_EQ(0x00000178u, ImmutableString("exp(20B").mangledNameHash());
     ASSERT_EQ(0x00000295u, ImmutableString("exp(30B").mangledNameHash());
     ASSERT_EQ(0x0000029cu, ImmutableString("log(00B").mangledNameHash());
-    ASSERT_EQ(0x0000017eu, ImmutableString("log(10B").mangledNameHash());
-    ASSERT_EQ(0x00000136u, ImmutableString("log(20B").mangledNameHash());
-    ASSERT_EQ(0x000000cdu, ImmutableString("log(30B").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(0x000000fau, ImmutableString("exp2(10B").mangledNameHash());
-    ASSERT_EQ(0x00000145u, ImmutableString("exp2(20B").mangledNameHash());
+    ASSERT_EQ(0x000000f9u, ImmutableString("exp2(10B").mangledNameHash());
+    ASSERT_EQ(0x00000144u, ImmutableString("exp2(20B").mangledNameHash());
     ASSERT_EQ(0x00000258u, ImmutableString("exp2(30B").mangledNameHash());
-    ASSERT_EQ(0x00000164u, ImmutableString("log2(00B").mangledNameHash());
+    ASSERT_EQ(0x00000162u, ImmutableString("log2(00B").mangledNameHash());
     ASSERT_EQ(0x0000008au, ImmutableString("log2(10B").mangledNameHash());
     ASSERT_EQ(0x00000317u, ImmutableString("log2(20B").mangledNameHash());
-    ASSERT_EQ(0x000001b5u, ImmutableString("log2(30B").mangledNameHash());
-    ASSERT_EQ(0x000001d6u, ImmutableString("sqrt(00B").mangledNameHash());
-    ASSERT_EQ(0x000000b9u, ImmutableString("sqrt(10B").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(0x0000004cu, ImmutableString("inversesqrt(00B").mangledNameHash());
     ASSERT_EQ(0x000002e4u, ImmutableString("inversesqrt(10B").mangledNameHash());
     ASSERT_EQ(0x0000023eu, ImmutableString("inversesqrt(20B").mangledNameHash());
-    ASSERT_EQ(0x00000170u, ImmutableString("inversesqrt(30B").mangledNameHash());
+    ASSERT_EQ(0x0000016eu, ImmutableString("inversesqrt(30B").mangledNameHash());
     ASSERT_EQ(0x00000280u, ImmutableString("abs(00B").mangledNameHash());
-    ASSERT_EQ(0x00000167u, ImmutableString("abs(10B").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(0x00000166u, ImmutableString("abs(10D").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(0x0000007fu, ImmutableString("sign(20B").mangledNameHash());
-    ASSERT_EQ(0x0000018du, ImmutableString("sign(30B").mangledNameHash());
+    ASSERT_EQ(0x0000018bu, ImmutableString("sign(30B").mangledNameHash());
     ASSERT_EQ(0x0000029eu, ImmutableString("sign(00D").mangledNameHash());
     ASSERT_EQ(0x00000309u, ImmutableString("sign(10D").mangledNameHash());
     ASSERT_EQ(0x00000081u, ImmutableString("sign(20D").mangledNameHash());
-    ASSERT_EQ(0x0000018eu, ImmutableString("sign(30D").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(0x00000111u, ImmutableString("floor(30B").mangledNameHash());
-    ASSERT_EQ(0x000000ecu, ImmutableString("trunc(00B").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(0x000001fbu, ImmutableString("trunc(30B").mangledNameHash());
-    ASSERT_EQ(0x000000d1u, ImmutableString("round(00B").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(0x0000010du, ImmutableString("round(30B").mangledNameHash());
+    ASSERT_EQ(0x0000010cu, ImmutableString("round(30B").mangledNameHash());
     ASSERT_EQ(0x000002c8u, ImmutableString("roundEven(00B").mangledNameHash());
-    ASSERT_EQ(0x00000193u, ImmutableString("roundEven(10B").mangledNameHash());
-    ASSERT_EQ(0x0000013cu, ImmutableString("roundEven(20B").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(0x00000098u, ImmutableString("ceil(20B").mangledNameHash());
-    ASSERT_EQ(0x0000014du, ImmutableString("ceil(30B").mangledNameHash());
-    ASSERT_EQ(0x00000177u, ImmutableString("fract(00B").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(0x000001b8u, ImmutableString("fract(30B").mangledNameHash());
-    ASSERT_EQ(0x00000190u, ImmutableString("mod(00B00B").mangledNameHash());
-    ASSERT_EQ(0x00000156u, ImmutableString("mod(10B00B").mangledNameHash());
-    ASSERT_EQ(0x000000b4u, ImmutableString("mod(20B00B").mangledNameHash());
-    ASSERT_EQ(0x000001a1u, ImmutableString("mod(30B00B").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(0x0000018bu, ImmutableString("mod(30B30B").mangledNameHash());
-    ASSERT_EQ(0x000001d2u, ImmutableString("min(00B00B").mangledNameHash());
+    ASSERT_EQ(0x00000189u, ImmutableString("mod(30B30B").mangledNameHash());
+    ASSERT_EQ(0x000001d0u, ImmutableString("min(00B00B").mangledNameHash());
     ASSERT_EQ(0x00000319u, ImmutableString("min(10B00B").mangledNameHash());
     ASSERT_EQ(0x000000aeu, ImmutableString("min(20B00B").mangledNameHash());
     ASSERT_EQ(0x00000072u, ImmutableString("min(30B00B").mangledNameHash());
@@ -168,64 +168,64 @@
     ASSERT_EQ(0x0000030cu, ImmutableString("min(00E00E").mangledNameHash());
     ASSERT_EQ(0x0000035cu, ImmutableString("min(10E10E").mangledNameHash());
     ASSERT_EQ(0x00000017u, ImmutableString("min(20E20E").mangledNameHash());
-    ASSERT_EQ(0x000001ceu, ImmutableString("min(30E30E").mangledNameHash());
-    ASSERT_EQ(0x000000ccu, ImmutableString("min(10E00E").mangledNameHash());
-    ASSERT_EQ(0x000001dcu, ImmutableString("min(20E00E").mangledNameHash());
-    ASSERT_EQ(0x00000179u, ImmutableString("min(30E00E").mangledNameHash());
-    ASSERT_EQ(0x0000013bu, ImmutableString("max(00B00B").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(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(0x0000011du, ImmutableString("max(30B30B").mangledNameHash());
-    ASSERT_EQ(0x0000014bu, ImmutableString("max(00D00D").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(0x0000010bu, ImmutableString("max(10D00D").mangledNameHash());
-    ASSERT_EQ(0x000000bdu, ImmutableString("max(20D00D").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(0x0000011cu, ImmutableString("max(10E10E").mangledNameHash());
-    ASSERT_EQ(0x0000015du, ImmutableString("max(20E20E").mangledNameHash());
-    ASSERT_EQ(0x000001c5u, ImmutableString("max(30E30E").mangledNameHash());
-    ASSERT_EQ(0x000001ebu, ImmutableString("max(10E00E").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(0x00000144u, ImmutableString("max(30E00E").mangledNameHash());
-    ASSERT_EQ(0x00000173u, ImmutableString("clamp(00B00B00B").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(0x00000101u, ImmutableString("clamp(30B00B00B").mangledNameHash());
+    ASSERT_EQ(0x00000100u, ImmutableString("clamp(30B00B00B").mangledNameHash());
     ASSERT_EQ(0x00000020u, ImmutableString("clamp(10B10B10B").mangledNameHash());
     ASSERT_EQ(0x0000033au, ImmutableString("clamp(20B20B20B").mangledNameHash());
     ASSERT_EQ(0x00000033u, ImmutableString("clamp(30B30B30B").mangledNameHash());
-    ASSERT_EQ(0x0000010fu, ImmutableString("clamp(00D00D00D").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(0x0000009au, ImmutableString("clamp(10D10D10D").mangledNameHash());
-    ASSERT_EQ(0x000001e8u, ImmutableString("clamp(20D20D20D").mangledNameHash());
+    ASSERT_EQ(0x000001e6u, ImmutableString("clamp(20D20D20D").mangledNameHash());
     ASSERT_EQ(0x000002f1u, 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(0x0000011eu, ImmutableString("clamp(10E10E10E").mangledNameHash());
-    ASSERT_EQ(0x000000bbu, ImmutableString("clamp(20E20E20E").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(0x0000001fu, ImmutableString("mix(20B20B00B").mangledNameHash());
     ASSERT_EQ(0x0000031au, ImmutableString("mix(30B30B00B").mangledNameHash());
-    ASSERT_EQ(0x000001b1u, ImmutableString("mix(10B10B10B").mangledNameHash());
+    ASSERT_EQ(0x000001afu, ImmutableString("mix(10B10B10B").mangledNameHash());
     ASSERT_EQ(0x0000024fu, ImmutableString("mix(20B20B20B").mangledNameHash());
     ASSERT_EQ(0x00000357u, ImmutableString("mix(30B30B30B").mangledNameHash());
     ASSERT_EQ(0x00000055u, ImmutableString("mix(00B00B00F").mangledNameHash());
-    ASSERT_EQ(0x000001b0u, ImmutableString("mix(10B10B10F").mangledNameHash());
+    ASSERT_EQ(0x000001aeu, ImmutableString("mix(10B10B10F").mangledNameHash());
     ASSERT_EQ(0x0000024cu, ImmutableString("mix(20B20B20F").mangledNameHash());
     ASSERT_EQ(0x000002fbu, ImmutableString("mix(30B30B30F").mangledNameHash());
-    ASSERT_EQ(0x00000199u, ImmutableString("step(00B00B").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());
@@ -236,101 +236,101 @@
     ASSERT_EQ(0x00000219u, ImmutableString("smoothstep(10B10B10B").mangledNameHash());
     ASSERT_EQ(0x00000390u, ImmutableString("smoothstep(20B20B20B").mangledNameHash());
     ASSERT_EQ(0x00000338u, ImmutableString("smoothstep(30B30B30B").mangledNameHash());
-    ASSERT_EQ(0x000001ecu, ImmutableString("smoothstep(00B00B10B").mangledNameHash());
-    ASSERT_EQ(0x000000d2u, ImmutableString("smoothstep(00B00B20B").mangledNameHash());
+    ASSERT_EQ(0x000001eau, ImmutableString("smoothstep(00B00B10B").mangledNameHash());
+    ASSERT_EQ(0x000000d1u, ImmutableString("smoothstep(00B00B20B").mangledNameHash());
     ASSERT_EQ(0x00000314u, 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(0x00000139u, ImmutableString("modf(30B30B").mangledNameHash());
+    ASSERT_EQ(0x00000138u, ImmutableString("modf(30B30B").mangledNameHash());
     ASSERT_EQ(0x0000022cu, ImmutableString("isnan(00B").mangledNameHash());
     ASSERT_EQ(0x00000370u, ImmutableString("isnan(10B").mangledNameHash());
-    ASSERT_EQ(0x0000013au, ImmutableString("isnan(20B").mangledNameHash());
-    ASSERT_EQ(0x000001c6u, ImmutableString("isnan(30B").mangledNameHash());
-    ASSERT_EQ(0x0000019cu, ImmutableString("isinf(00B").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(0x000000c2u, ImmutableString("isinf(30B").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(0x00000141u, ImmutableString("floatBitsToInt(30B").mangledNameHash());
+    ASSERT_EQ(0x00000140u, ImmutableString("floatBitsToInt(30B").mangledNameHash());
     ASSERT_EQ(0x00000395u, ImmutableString("floatBitsToUint(00B").mangledNameHash());
-    ASSERT_EQ(0x000000b7u, ImmutableString("floatBitsToUint(10B").mangledNameHash());
+    ASSERT_EQ(0x000000b6u, ImmutableString("floatBitsToUint(10B").mangledNameHash());
     ASSERT_EQ(0x00000041u, ImmutableString("floatBitsToUint(20B").mangledNameHash());
     ASSERT_EQ(0x0000025du, ImmutableString("floatBitsToUint(30B").mangledNameHash());
     ASSERT_EQ(0x00000063u, ImmutableString("intBitsToFloat(00D").mangledNameHash());
-    ASSERT_EQ(0x000001a9u, ImmutableString("intBitsToFloat(10D").mangledNameHash());
-    ASSERT_EQ(0x00000176u, ImmutableString("intBitsToFloat(20D").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(0x00000157u, ImmutableString("uintBitsToFloat(10E").mangledNameHash());
+    ASSERT_EQ(0x00000155u, ImmutableString("uintBitsToFloat(10E").mangledNameHash());
     ASSERT_EQ(0x000002a6u, ImmutableString("uintBitsToFloat(20E").mangledNameHash());
     ASSERT_EQ(0x00000026u, ImmutableString("uintBitsToFloat(30E").mangledNameHash());
     ASSERT_EQ(0x00000093u, ImmutableString("frexp(00B00D").mangledNameHash());
-    ASSERT_EQ(0x000001eau, ImmutableString("frexp(10B10D").mangledNameHash());
-    ASSERT_EQ(0x00000175u, ImmutableString("frexp(20B20D").mangledNameHash());
-    ASSERT_EQ(0x000001ccu, ImmutableString("frexp(30B30D").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(0x000001f1u, ImmutableString("unpackSnorm2x16(00E").mangledNameHash());
-    ASSERT_EQ(0x00000104u, ImmutableString("unpackHalf2x16(00E").mangledNameHash());
+    ASSERT_EQ(0x000001efu, ImmutableString("unpackSnorm2x16(00E").mangledNameHash());
+    ASSERT_EQ(0x00000103u, ImmutableString("unpackHalf2x16(00E").mangledNameHash());
     ASSERT_EQ(0x000002afu, 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(0x00000133u, ImmutableString("unpackSnorm4x8(00E").mangledNameHash());
-    ASSERT_EQ(0x000001fdu, ImmutableString("length(00B").mangledNameHash());
-    ASSERT_EQ(0x000000eeu, ImmutableString("length(10B").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(0x00000154u, ImmutableString("distance(10B10B").mangledNameHash());
-    ASSERT_EQ(0x0000019eu, ImmutableString("distance(20B20B").mangledNameHash());
-    ASSERT_EQ(0x000000e8u, ImmutableString("distance(30B30B").mangledNameHash());
-    ASSERT_EQ(0x000000f1u, ImmutableString("dot(00B00B").mangledNameHash());
-    ASSERT_EQ(0x00000103u, ImmutableString("dot(10B10B").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(0x000000f3u, ImmutableString("dot(30B30B").mangledNameHash());
+    ASSERT_EQ(0x000000f2u, ImmutableString("dot(30B30B").mangledNameHash());
     ASSERT_EQ(0x00000279u, ImmutableString("cross(20B20B").mangledNameHash());
     ASSERT_EQ(0x000000a7u, ImmutableString("normalize(00B").mangledNameHash());
-    ASSERT_EQ(0x000001f0u, ImmutableString("normalize(10B").mangledNameHash());
-    ASSERT_EQ(0x000001d7u, ImmutableString("normalize(20B").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(0x000000b3u, ImmutableString("reflect(00B00B").mangledNameHash());
-    ASSERT_EQ(0x000000b6u, ImmutableString("reflect(10B10B").mangledNameHash());
-    ASSERT_EQ(0x00000155u, ImmutableString("reflect(20B20B").mangledNameHash());
-    ASSERT_EQ(0x00000182u, ImmutableString("reflect(30B30B").mangledNameHash());
-    ASSERT_EQ(0x000001adu, ImmutableString("refract(00B00B00B").mangledNameHash());
-    ASSERT_EQ(0x000000dau, ImmutableString("refract(10B10B00B").mangledNameHash());
-    ASSERT_EQ(0x000001abu, ImmutableString("refract(20B20B00B").mangledNameHash());
+    ASSERT_EQ(0x000000b2u, ImmutableString("reflect(00B00B").mangledNameHash());
+    ASSERT_EQ(0x000000b5u, ImmutableString("reflect(10B10B").mangledNameHash());
+    ASSERT_EQ(0x00000153u, ImmutableString("reflect(20B20B").mangledNameHash());
+    ASSERT_EQ(0x00000180u, ImmutableString("reflect(30B30B").mangledNameHash());
+    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(0x00000105u, ImmutableString("matrixCompMult(A0BA0B").mangledNameHash());
+    ASSERT_EQ(0x00000104u, ImmutableString("matrixCompMult(A0BA0B").mangledNameHash());
     ASSERT_EQ(0x0000027eu, ImmutableString("matrixCompMult(F0BF0B").mangledNameHash());
     ASSERT_EQ(0x00000227u, ImmutableString("matrixCompMult(90B90B").mangledNameHash());
-    ASSERT_EQ(0x000001eeu, ImmutableString("matrixCompMult(60B60B").mangledNameHash());
+    ASSERT_EQ(0x000001ecu, ImmutableString("matrixCompMult(60B60B").mangledNameHash());
     ASSERT_EQ(0x0000004du, ImmutableString("matrixCompMult(D0BD0B").mangledNameHash());
-    ASSERT_EQ(0x0000015eu, ImmutableString("matrixCompMult(70B70B").mangledNameHash());
-    ASSERT_EQ(0x000001fcu, ImmutableString("matrixCompMult(E0BE0B").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(0x00000131u, ImmutableString("outerProduct(20B20B").mangledNameHash());
+    ASSERT_EQ(0x00000130u, ImmutableString("outerProduct(20B20B").mangledNameHash());
     ASSERT_EQ(0x00000292u, ImmutableString("outerProduct(30B30B").mangledNameHash());
-    ASSERT_EQ(0x00000186u, ImmutableString("outerProduct(20B10B").mangledNameHash());
-    ASSERT_EQ(0x000000fdu, ImmutableString("outerProduct(10B20B").mangledNameHash());
-    ASSERT_EQ(0x00000140u, ImmutableString("outerProduct(30B10B").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(0x00000183u, ImmutableString("outerProduct(30B20B").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());
@@ -338,23 +338,23 @@
     ASSERT_EQ(0x000002a0u, ImmutableString("transpose(60B").mangledNameHash());
     ASSERT_EQ(0x0000032cu, ImmutableString("transpose(90B").mangledNameHash());
     ASSERT_EQ(0x0000002au, ImmutableString("transpose(70B").mangledNameHash());
-    ASSERT_EQ(0x000001b4u, ImmutableString("transpose(D0B").mangledNameHash());
+    ASSERT_EQ(0x000001b2u, ImmutableString("transpose(D0B").mangledNameHash());
     ASSERT_EQ(0x00000311u, ImmutableString("transpose(B0B").mangledNameHash());
-    ASSERT_EQ(0x00000278u, ImmutableString("transpose(E0B").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(0x00000102u, ImmutableString("inverse(50B").mangledNameHash());
-    ASSERT_EQ(0x000001c2u, ImmutableString("inverse(A0B").mangledNameHash());
-    ASSERT_EQ(0x000001dbu, ImmutableString("inverse(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(0x00000074u, ImmutableString("lessThan(20B20B").mangledNameHash());
-    ASSERT_EQ(0x000000c4u, ImmutableString("lessThan(30B30B").mangledNameHash());
-    ASSERT_EQ(0x00000125u, ImmutableString("lessThan(10D10D").mangledNameHash());
-    ASSERT_EQ(0x000000b5u, ImmutableString("lessThan(20D20D").mangledNameHash());
-    ASSERT_EQ(0x000001f3u, ImmutableString("lessThan(30D30D").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(0x00000062u, ImmutableString("lessThan(20E20E").mangledNameHash());
+    ASSERT_EQ(0x00000278u, 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());
@@ -364,27 +364,27 @@
     ASSERT_EQ(0x0000025eu, ImmutableString("lessThanEqual(30D30D").mangledNameHash());
     ASSERT_EQ(0x0000023du, ImmutableString("lessThanEqual(10E10E").mangledNameHash());
     ASSERT_EQ(0x00000293u, ImmutableString("lessThanEqual(20E20E").mangledNameHash());
-    ASSERT_EQ(0x000000cau, ImmutableString("lessThanEqual(30E30E").mangledNameHash());
+    ASSERT_EQ(0x000000c9u, ImmutableString("lessThanEqual(30E30E").mangledNameHash());
     ASSERT_EQ(0x00000377u, ImmutableString("greaterThan(10B10B").mangledNameHash());
     ASSERT_EQ(0x00000069u, ImmutableString("greaterThan(20B20B").mangledNameHash());
-    ASSERT_EQ(0x000000ebu, ImmutableString("greaterThan(30B30B").mangledNameHash());
-    ASSERT_EQ(0x000000ddu, ImmutableString("greaterThan(10D10D").mangledNameHash());
-    ASSERT_EQ(0x000000e9u, ImmutableString("greaterThan(20D20D").mangledNameHash());
-    ASSERT_EQ(0x000000dcu, ImmutableString("greaterThan(30D30D").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(0x000001a6u, ImmutableString("greaterThan(20E20E").mangledNameHash());
-    ASSERT_EQ(0x000001e9u, ImmutableString("greaterThan(30E30E").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(0x00000161u, ImmutableString("greaterThanEqual(10D10D").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(0x00000124u, ImmutableString("greaterThanEqual(20E20E").mangledNameHash());
+    ASSERT_EQ(0x00000123u, ImmutableString("greaterThanEqual(20E20E").mangledNameHash());
     ASSERT_EQ(0x00000249u, ImmutableString("greaterThanEqual(30E30E").mangledNameHash());
     ASSERT_EQ(0x0000036du, ImmutableString("equal(10B10B").mangledNameHash());
-    ASSERT_EQ(0x0000017bu, ImmutableString("equal(20B20B").mangledNameHash());
+    ASSERT_EQ(0x00000179u, ImmutableString("equal(20B20B").mangledNameHash());
     ASSERT_EQ(0x0000036au, ImmutableString("equal(30B30B").mangledNameHash());
     ASSERT_EQ(0x00000052u, ImmutableString("equal(10D10D").mangledNameHash());
     ASSERT_EQ(0x000002b8u, ImmutableString("equal(20D20D").mangledNameHash());
@@ -392,183 +392,183 @@
     ASSERT_EQ(0x0000035bu, ImmutableString("equal(10E10E").mangledNameHash());
     ASSERT_EQ(0x0000021fu, ImmutableString("equal(20E20E").mangledNameHash());
     ASSERT_EQ(0x0000029au, ImmutableString("equal(30E30E").mangledNameHash());
-    ASSERT_EQ(0x00000159u, ImmutableString("equal(10F10F").mangledNameHash());
+    ASSERT_EQ(0x00000157u, ImmutableString("equal(10F10F").mangledNameHash());
     ASSERT_EQ(0x00000368u, ImmutableString("equal(20F20F").mangledNameHash());
     ASSERT_EQ(0x000002deu, ImmutableString("equal(30F30F").mangledNameHash());
-    ASSERT_EQ(0x000001f7u, ImmutableString("notEqual(10B10B").mangledNameHash());
+    ASSERT_EQ(0x000001f5u, ImmutableString("notEqual(10B10B").mangledNameHash());
     ASSERT_EQ(0x00000352u, ImmutableString("notEqual(20B20B").mangledNameHash());
-    ASSERT_EQ(0x00000192u, ImmutableString("notEqual(30B30B").mangledNameHash());
+    ASSERT_EQ(0x00000190u, ImmutableString("notEqual(30B30B").mangledNameHash());
     ASSERT_EQ(0x000002acu, ImmutableString("notEqual(10D10D").mangledNameHash());
     ASSERT_EQ(0x00000007u, ImmutableString("notEqual(20D20D").mangledNameHash());
-    ASSERT_EQ(0x000000d9u, ImmutableString("notEqual(30D30D").mangledNameHash());
+    ASSERT_EQ(0x000000d8u, ImmutableString("notEqual(30D30D").mangledNameHash());
     ASSERT_EQ(0x00000365u, ImmutableString("notEqual(10E10E").mangledNameHash());
-    ASSERT_EQ(0x000001c0u, ImmutableString("notEqual(20E20E").mangledNameHash());
+    ASSERT_EQ(0x000001beu, ImmutableString("notEqual(20E20E").mangledNameHash());
     ASSERT_EQ(0x0000023bu, ImmutableString("notEqual(30E30E").mangledNameHash());
     ASSERT_EQ(0x0000032fu, ImmutableString("notEqual(10F10F").mangledNameHash());
-    ASSERT_EQ(0x0000018au, ImmutableString("notEqual(20F20F").mangledNameHash());
+    ASSERT_EQ(0x00000188u, ImmutableString("notEqual(20F20F").mangledNameHash());
     ASSERT_EQ(0x000002e1u, ImmutableString("notEqual(30F30F").mangledNameHash());
     ASSERT_EQ(0x00000254u, ImmutableString("any(10F").mangledNameHash());
-    ASSERT_EQ(0x000001feu, ImmutableString("any(20F").mangledNameHash());
-    ASSERT_EQ(0x000000e7u, ImmutableString("any(30F").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(0x00000049u, ImmutableString("all(30F").mangledNameHash());
     ASSERT_EQ(0x00000095u, ImmutableString("not(10F").mangledNameHash());
-    ASSERT_EQ(0x0000012au, ImmutableString("not(20F").mangledNameHash());
+    ASSERT_EQ(0x00000129u, ImmutableString("not(20F").mangledNameHash());
     ASSERT_EQ(0x0000032du, ImmutableString("not(30F").mangledNameHash());
     ASSERT_EQ(0x000002dfu, ImmutableString("bitfieldExtract(00D00D00D").mangledNameHash());
-    ASSERT_EQ(0x0000018cu, ImmutableString("bitfieldExtract(10D00D00D").mangledNameHash());
-    ASSERT_EQ(0x000001f5u, ImmutableString("bitfieldExtract(20D00D00D").mangledNameHash());
+    ASSERT_EQ(0x0000018au, ImmutableString("bitfieldExtract(10D00D00D").mangledNameHash());
+    ASSERT_EQ(0x000001f3u, ImmutableString("bitfieldExtract(20D00D00D").mangledNameHash());
     ASSERT_EQ(0x000002c2u, ImmutableString("bitfieldExtract(30D00D00D").mangledNameHash());
-    ASSERT_EQ(0x000001f9u, ImmutableString("bitfieldExtract(00E00D00D").mangledNameHash());
-    ASSERT_EQ(0x000000e0u, ImmutableString("bitfieldExtract(10E00D00D").mangledNameHash());
+    ASSERT_EQ(0x000001f7u, ImmutableString("bitfieldExtract(00E00D00D").mangledNameHash());
+    ASSERT_EQ(0x000000dfu, ImmutableString("bitfieldExtract(10E00D00D").mangledNameHash());
     ASSERT_EQ(0x000002a5u, ImmutableString("bitfieldExtract(20E00D00D").mangledNameHash());
-    ASSERT_EQ(0x0000015fu, ImmutableString("bitfieldExtract(30E00D00D").mangledNameHash());
+    ASSERT_EQ(0x0000015du, ImmutableString("bitfieldExtract(30E00D00D").mangledNameHash());
     ASSERT_EQ(0x0000001au, ImmutableString("bitfieldInsert(00D00D00D00D").mangledNameHash());
     ASSERT_EQ(0x00000339u, ImmutableString("bitfieldInsert(10D10D00D00D").mangledNameHash());
     ASSERT_EQ(0x00000042u, ImmutableString("bitfieldInsert(20D20D00D00D").mangledNameHash());
-    ASSERT_EQ(0x000000d5u, ImmutableString("bitfieldInsert(30D30D00D00D").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(0x0000015bu, ImmutableString("bitfieldReverse(00D").mangledNameHash());
+    ASSERT_EQ(0x00000159u, ImmutableString("bitfieldReverse(00D").mangledNameHash());
     ASSERT_EQ(0x00000275u, ImmutableString("bitfieldReverse(10D").mangledNameHash());
     ASSERT_EQ(0x0000004fu, ImmutableString("bitfieldReverse(20D").mangledNameHash());
-    ASSERT_EQ(0x0000016fu, ImmutableString("bitfieldReverse(30D").mangledNameHash());
-    ASSERT_EQ(0x0000015cu, ImmutableString("bitfieldReverse(00E").mangledNameHash());
+    ASSERT_EQ(0x0000016du, ImmutableString("bitfieldReverse(30D").mangledNameHash());
+    ASSERT_EQ(0x0000015au, ImmutableString("bitfieldReverse(00E").mangledNameHash());
     ASSERT_EQ(0x00000274u, ImmutableString("bitfieldReverse(10E").mangledNameHash());
     ASSERT_EQ(0x00000050u, ImmutableString("bitfieldReverse(20E").mangledNameHash());
-    ASSERT_EQ(0x0000016eu, ImmutableString("bitfieldReverse(30E").mangledNameHash());
+    ASSERT_EQ(0x0000016cu, ImmutableString("bitfieldReverse(30E").mangledNameHash());
     ASSERT_EQ(0x00000023u, ImmutableString("bitCount(00D").mangledNameHash());
     ASSERT_EQ(0x00000299u, ImmutableString("bitCount(10D").mangledNameHash());
-    ASSERT_EQ(0x00000198u, ImmutableString("bitCount(20D").mangledNameHash());
+    ASSERT_EQ(0x00000196u, ImmutableString("bitCount(20D").mangledNameHash());
     ASSERT_EQ(0x0000007au, ImmutableString("bitCount(30D").mangledNameHash());
-    ASSERT_EQ(0x000000f4u, ImmutableString("bitCount(00E").mangledNameHash());
-    ASSERT_EQ(0x00000150u, ImmutableString("bitCount(10E").mangledNameHash());
+    ASSERT_EQ(0x000000f3u, ImmutableString("bitCount(00E").mangledNameHash());
+    ASSERT_EQ(0x0000014eu, ImmutableString("bitCount(10E").mangledNameHash());
     ASSERT_EQ(0x000002b6u, ImmutableString("bitCount(20E").mangledNameHash());
-    ASSERT_EQ(0x00000134u, ImmutableString("bitCount(30E").mangledNameHash());
+    ASSERT_EQ(0x00000133u, ImmutableString("bitCount(30E").mangledNameHash());
     ASSERT_EQ(0x000002d7u, ImmutableString("findLSB(00D").mangledNameHash());
-    ASSERT_EQ(0x000001aeu, ImmutableString("findLSB(10D").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(0x000001afu, ImmutableString("findLSB(10E").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(0x000000f0u, ImmutableString("findMSB(10D").mangledNameHash());
-    ASSERT_EQ(0x0000012cu, ImmutableString("findMSB(20D").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(0x000000efu, ImmutableString("findMSB(10E").mangledNameHash());
-    ASSERT_EQ(0x0000012du, ImmutableString("findMSB(20E").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(0x000001a0u, ImmutableString("uaddCarry(30E30E30E").mangledNameHash());
-    ASSERT_EQ(0x000001cau, ImmutableString("usubBorrow(00E00E00E").mangledNameHash());
+    ASSERT_EQ(0x0000019eu, ImmutableString("uaddCarry(30E30E30E").mangledNameHash());
+    ASSERT_EQ(0x000001c8u, ImmutableString("usubBorrow(00E00E00E").mangledNameHash());
     ASSERT_EQ(0x0000036cu, ImmutableString("usubBorrow(10E10E10E").mangledNameHash());
-    ASSERT_EQ(0x000000f7u, ImmutableString("usubBorrow(20E20E20E").mangledNameHash());
+    ASSERT_EQ(0x000000f6u, ImmutableString("usubBorrow(20E20E20E").mangledNameHash());
     ASSERT_EQ(0x0000026bu, ImmutableString("usubBorrow(30E30E30E").mangledNameHash());
     ASSERT_EQ(0x0000030eu, ImmutableString("umulExtended(00E00E00E00E").mangledNameHash());
-    ASSERT_EQ(0x00000187u, ImmutableString("umulExtended(10E10E10E10E").mangledNameHash());
+    ASSERT_EQ(0x00000185u, ImmutableString("umulExtended(10E10E10E10E").mangledNameHash());
     ASSERT_EQ(0x000002b1u, ImmutableString("umulExtended(20E20E20E20E").mangledNameHash());
     ASSERT_EQ(0x0000022du, ImmutableString("umulExtended(30E30E30E30E").mangledNameHash());
-    ASSERT_EQ(0x000001c7u, ImmutableString("imulExtended(00D00D00D00D").mangledNameHash());
+    ASSERT_EQ(0x000001c5u, ImmutableString("imulExtended(00D00D00D00D").mangledNameHash());
     ASSERT_EQ(0x00000085u, ImmutableString("imulExtended(10D10D10D10D").mangledNameHash());
-    ASSERT_EQ(0x000000e6u, ImmutableString("imulExtended(20D20D20D20D").mangledNameHash());
+    ASSERT_EQ(0x000000e5u, ImmutableString("imulExtended(20D20D20D20D").mangledNameHash());
     ASSERT_EQ(0x00000027u, ImmutableString("imulExtended(30D30D30D30D").mangledNameHash());
     ASSERT_EQ(0x00000094u, ImmutableString("texture2D(00I10B").mangledNameHash());
-    ASSERT_EQ(0x00000128u, ImmutableString("texture2DProj(00I20B").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(0x000000e5u, ImmutableString("texture2DRect(00O10B").mangledNameHash());
+    ASSERT_EQ(0x000000e4u, ImmutableString("texture2DRect(00O10B").mangledNameHash());
     ASSERT_EQ(0x0000039cu, ImmutableString("texture2DRectProj(00O20B").mangledNameHash());
-    ASSERT_EQ(0x00000108u, ImmutableString("texture2DRectProj(00O30B").mangledNameHash());
+    ASSERT_EQ(0x00000107u, ImmutableString("texture2DRectProj(00O30B").mangledNameHash());
     ASSERT_EQ(0x0000009cu, ImmutableString("texture(00O10B").mangledNameHash());
-    ASSERT_EQ(0x000000fbu, ImmutableString("textureProj(00O20B").mangledNameHash());
+    ASSERT_EQ(0x000000fau, ImmutableString("textureProj(00O20B").mangledNameHash());
     ASSERT_EQ(0x0000021au, ImmutableString("textureProj(00O30B").mangledNameHash());
     ASSERT_EQ(0x00000066u, ImmutableString("texture2DGradEXT(00I10B10B10B").mangledNameHash());
     ASSERT_EQ(0x000002ffu, ImmutableString("texture2DProjGradEXT(00I20B10B10B").mangledNameHash());
     ASSERT_EQ(0x0000006cu, ImmutableString("texture2DProjGradEXT(00I30B10B10B").mangledNameHash());
-    ASSERT_EQ(0x000001d0u, ImmutableString("textureCubeGradEXT(00K20B20B20B").mangledNameHash());
-    ASSERT_EQ(0x000001e6u, ImmutableString("texture2D(00I10B00B").mangledNameHash());
+    ASSERT_EQ(0x000001ceu, ImmutableString("textureCubeGradEXT(00K20B20B20B").mangledNameHash());
+    ASSERT_EQ(0x000001e4u, ImmutableString("texture2D(00I10B00B").mangledNameHash());
     ASSERT_EQ(0x000002d5u, ImmutableString("texture2DProj(00I20B00B").mangledNameHash());
-    ASSERT_EQ(0x000001cfu, ImmutableString("texture2DProj(00I30B00B").mangledNameHash());
+    ASSERT_EQ(0x000001cdu, ImmutableString("texture2DProj(00I30B00B").mangledNameHash());
     ASSERT_EQ(0x0000032au, ImmutableString("textureCube(00K20B00B").mangledNameHash());
     ASSERT_EQ(0x0000027du, ImmutableString("dFdx(00B").mangledNameHash());
-    ASSERT_EQ(0x0000016cu, ImmutableString("dFdx(10B").mangledNameHash());
-    ASSERT_EQ(0x0000011au, ImmutableString("dFdx(20B").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(0x0000013fu, ImmutableString("dFdy(10B").mangledNameHash());
-    ASSERT_EQ(0x00000196u, ImmutableString("dFdy(20B").mangledNameHash());
+    ASSERT_EQ(0x0000013eu, ImmutableString("dFdy(10B").mangledNameHash());
+    ASSERT_EQ(0x00000194u, ImmutableString("dFdy(20B").mangledNameHash());
     ASSERT_EQ(0x000002cau, ImmutableString("dFdy(30B").mangledNameHash());
-    ASSERT_EQ(0x0000013du, ImmutableString("fwidth(00B").mangledNameHash());
-    ASSERT_EQ(0x000000d7u, ImmutableString("fwidth(10B").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(0x00000194u, ImmutableString("texture2DProjLodEXT(00I30B00B").mangledNameHash());
+    ASSERT_EQ(0x00000192u, ImmutableString("texture2DProjLodEXT(00I30B00B").mangledNameHash());
     ASSERT_EQ(0x00000349u, ImmutableString("textureCubeLodEXT(00K20B00B").mangledNameHash());
-    ASSERT_EQ(0x000001b3u, ImmutableString("texture3D(00J20B").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(0x00000129u, ImmutableString("texture3DProjLod(00J30B00B").mangledNameHash());
+    ASSERT_EQ(0x00000128u, ImmutableString("texture3DProjLod(00J30B00B").mangledNameHash());
     ASSERT_EQ(0x0000028cu, ImmutableString("texture2DLod(00I10B00B").mangledNameHash());
-    ASSERT_EQ(0x00000106u, ImmutableString("texture2DProjLod(00I20B00B").mangledNameHash());
+    ASSERT_EQ(0x00000105u, ImmutableString("texture2DProjLod(00I20B00B").mangledNameHash());
     ASSERT_EQ(0x0000036fu, ImmutableString("texture2DProjLod(00I30B00B").mangledNameHash());
     ASSERT_EQ(0x00000391u, ImmutableString("textureCubeLod(00K20B00B").mangledNameHash());
-    ASSERT_EQ(0x000001d1u, ImmutableString("texture(00I10B").mangledNameHash());
+    ASSERT_EQ(0x000001cfu, ImmutableString("texture(00I10B").mangledNameHash());
     ASSERT_EQ(0x00000269u, ImmutableString("texture(00R10B").mangledNameHash());
     ASSERT_EQ(0x000002f9u, ImmutableString("texture(00X10B").mangledNameHash());
-    ASSERT_EQ(0x00000118u, ImmutableString("texture(00J20B").mangledNameHash());
-    ASSERT_EQ(0x00000185u, ImmutableString("texture(00S20B").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(0x00000089u, ImmutableString("texture(00T20B").mangledNameHash());
     ASSERT_EQ(0x00000044u, ImmutableString("texture(00Z20B").mangledNameHash());
-    ASSERT_EQ(0x00000121u, ImmutableString("texture(00L20B").mangledNameHash());
-    ASSERT_EQ(0x000000deu, ImmutableString("texture(00U20B").mangledNameHash());
+    ASSERT_EQ(0x00000120u, ImmutableString("texture(00L20B").mangledNameHash());
+    ASSERT_EQ(0x000000ddu, ImmutableString("texture(00U20B").mangledNameHash());
     ASSERT_EQ(0x00000235u, 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(0x00000059u, ImmutableString("textureProj(00I20B").mangledNameHash());
     ASSERT_EQ(0x00000384u, ImmutableString("textureProj(00R20B").mangledNameHash());
-    ASSERT_EQ(0x0000011bu, ImmutableString("textureProj(00X20B").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(0x00000142u, ImmutableString("textureProj(00J30B").mangledNameHash());
+    ASSERT_EQ(0x00000141u, ImmutableString("textureProj(00J30B").mangledNameHash());
     ASSERT_EQ(0x000002c7u, ImmutableString("textureProj(00S30B").mangledNameHash());
-    ASSERT_EQ(0x00000197u, ImmutableString("textureProj(00Y30B").mangledNameHash());
+    ASSERT_EQ(0x00000195u, ImmutableString("textureProj(00Y30B").mangledNameHash());
     ASSERT_EQ(0x000002fau, ImmutableString("textureProj(00d30B").mangledNameHash());
-    ASSERT_EQ(0x00000160u, ImmutableString("textureLod(00I10B00B").mangledNameHash());
+    ASSERT_EQ(0x0000015eu, ImmutableString("textureLod(00I10B00B").mangledNameHash());
     ASSERT_EQ(0x00000281u, ImmutableString("textureLod(00R10B00B").mangledNameHash());
     ASSERT_EQ(0x00000294u, ImmutableString("textureLod(00X10B00B").mangledNameHash());
-    ASSERT_EQ(0x000000b8u, ImmutableString("textureLod(00J20B00B").mangledNameHash());
+    ASSERT_EQ(0x000000b7u, ImmutableString("textureLod(00J20B00B").mangledNameHash());
     ASSERT_EQ(0x00000304u, ImmutableString("textureLod(00S20B00B").mangledNameHash());
     ASSERT_EQ(0x00000035u, ImmutableString("textureLod(00Y20B00B").mangledNameHash());
     ASSERT_EQ(0x00000397u, ImmutableString("textureLod(00K20B00B").mangledNameHash());
-    ASSERT_EQ(0x000000f6u, ImmutableString("textureLod(00T20B00B").mangledNameHash());
+    ASSERT_EQ(0x000000f5u, ImmutableString("textureLod(00T20B00B").mangledNameHash());
     ASSERT_EQ(0x0000029du, 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(0x00000146u, ImmutableString("textureLod(00d20B00B").mangledNameHash());
-    ASSERT_EQ(0x000000beu, ImmutableString("textureSize(00I00D").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(0x000001bau, ImmutableString("textureSize(00J00D").mangledNameHash());
+    ASSERT_EQ(0x000001b8u, ImmutableString("textureSize(00J00D").mangledNameHash());
     ASSERT_EQ(0x00000326u, ImmutableString("textureSize(00S00D").mangledNameHash());
     ASSERT_EQ(0x0000002du, ImmutableString("textureSize(00Y00D").mangledNameHash());
     ASSERT_EQ(0x00000028u, ImmutableString("textureSize(00K00D").mangledNameHash());
@@ -576,18 +576,18 @@
     ASSERT_EQ(0x000002c0u, ImmutableString("textureSize(00Z00D").mangledNameHash());
     ASSERT_EQ(0x000002bcu, ImmutableString("textureSize(00L00D").mangledNameHash());
     ASSERT_EQ(0x000002dbu, ImmutableString("textureSize(00U00D").mangledNameHash());
-    ASSERT_EQ(0x000000dfu, ImmutableString("textureSize(00a00D").mangledNameHash());
+    ASSERT_EQ(0x000000deu, ImmutableString("textureSize(00a00D").mangledNameHash());
     ASSERT_EQ(0x00000346u, ImmutableString("textureSize(00d00D").mangledNameHash());
-    ASSERT_EQ(0x000001bfu, ImmutableString("textureSize(00e00D").mangledNameHash());
+    ASSERT_EQ(0x000001bdu, ImmutableString("textureSize(00e00D").mangledNameHash());
     ASSERT_EQ(0x000002f3u, ImmutableString("textureSize(00f00D").mangledNameHash());
     ASSERT_EQ(0x0000007bu, ImmutableString("textureProjLod(00I20B00B").mangledNameHash());
-    ASSERT_EQ(0x000000d8u, ImmutableString("textureProjLod(00R20B00B").mangledNameHash());
+    ASSERT_EQ(0x000000d7u, ImmutableString("textureProjLod(00R20B00B").mangledNameHash());
     ASSERT_EQ(0x0000022au, ImmutableString("textureProjLod(00X20B00B").mangledNameHash());
-    ASSERT_EQ(0x000001acu, ImmutableString("textureProjLod(00I30B00B").mangledNameHash());
-    ASSERT_EQ(0x000001ddu, ImmutableString("textureProjLod(00R30B00B").mangledNameHash());
+    ASSERT_EQ(0x000001aau, ImmutableString("textureProjLod(00I30B00B").mangledNameHash());
+    ASSERT_EQ(0x000001dbu, ImmutableString("textureProjLod(00R30B00B").mangledNameHash());
     ASSERT_EQ(0x0000002cu, ImmutableString("textureProjLod(00X30B00B").mangledNameHash());
-    ASSERT_EQ(0x000000e4u, ImmutableString("textureProjLod(00J30B00B").mangledNameHash());
-    ASSERT_EQ(0x000000bau, ImmutableString("textureProjLod(00S30B00B").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(0x0000005au, ImmutableString("texelFetch(00I10D00D").mangledNameHash());
@@ -596,69 +596,69 @@
     ASSERT_EQ(0x00000393u, ImmutableString("texelFetch(00J20D00D").mangledNameHash());
     ASSERT_EQ(0x0000024du, ImmutableString("texelFetch(00S20D00D").mangledNameHash());
     ASSERT_EQ(0x0000006bu, ImmutableString("texelFetch(00Y20D00D").mangledNameHash());
-    ASSERT_EQ(0x0000019au, ImmutableString("texelFetch(00L20D00D").mangledNameHash());
-    ASSERT_EQ(0x00000148u, ImmutableString("texelFetch(00U20D00D").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(0x000001b6u, ImmutableString("textureGrad(00J20B20B20B").mangledNameHash());
-    ASSERT_EQ(0x0000010au, ImmutableString("textureGrad(00S20B20B20B").mangledNameHash());
-    ASSERT_EQ(0x00000113u, ImmutableString("textureGrad(00Y20B20B20B").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(0x00000158u, ImmutableString("textureGrad(00Z20B20B20B").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(0x0000019fu, ImmutableString("textureGrad(00U20B10B10B").mangledNameHash());
-    ASSERT_EQ(0x000001a7u, ImmutableString("textureGrad(00a20B10B10B").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(0x000001c4u, ImmutableString("textureProjGrad(00X20B10B10B").mangledNameHash());
+    ASSERT_EQ(0x000001c2u, ImmutableString("textureProjGrad(00X20B10B10B").mangledNameHash());
     ASSERT_EQ(0x0000000cu, ImmutableString("textureProjGrad(00I30B10B10B").mangledNameHash());
-    ASSERT_EQ(0x000000f9u, ImmutableString("textureProjGrad(00R30B10B10B").mangledNameHash());
+    ASSERT_EQ(0x000000f8u, ImmutableString("textureProjGrad(00R30B10B10B").mangledNameHash());
     ASSERT_EQ(0x000003a2u, ImmutableString("textureProjGrad(00X30B10B10B").mangledNameHash());
-    ASSERT_EQ(0x0000013eu, ImmutableString("textureProjGrad(00J30B20B20B").mangledNameHash());
+    ASSERT_EQ(0x0000013du, ImmutableString("textureProjGrad(00J30B20B20B").mangledNameHash());
     ASSERT_EQ(0x00000051u, ImmutableString("textureProjGrad(00S30B20B20B").mangledNameHash());
     ASSERT_EQ(0x0000001bu, ImmutableString("textureProjGrad(00Y30B20B20B").mangledNameHash());
-    ASSERT_EQ(0x000001b7u, ImmutableString("textureProjGrad(00d30B10B10B").mangledNameHash());
-    ASSERT_EQ(0x000001deu, ImmutableString("textureSize(00P").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(0x00000096u, ImmutableString("texelFetch(00P10D00D").mangledNameHash());
-    ASSERT_EQ(0x00000130u, ImmutableString("texelFetch(00V10D00D").mangledNameHash());
+    ASSERT_EQ(0x0000012fu, ImmutableString("texelFetch(00V10D00D").mangledNameHash());
     ASSERT_EQ(0x0000028du, ImmutableString("texelFetch(00b10D00D").mangledNameHash());
     ASSERT_EQ(0x000002c5u, ImmutableString("texelFetch(00Q20D00D").mangledNameHash());
-    ASSERT_EQ(0x00000107u, ImmutableString("texelFetch(00W20D00D").mangledNameHash());
-    ASSERT_EQ(0x000001d4u, ImmutableString("texelFetch(00c20D00D").mangledNameHash());
-    ASSERT_EQ(0x000000b2u, ImmutableString("texture(00I10B00B").mangledNameHash());
+    ASSERT_EQ(0x00000106u, ImmutableString("texelFetch(00W20D00D").mangledNameHash());
+    ASSERT_EQ(0x000001d2u, ImmutableString("texelFetch(00c20D00D").mangledNameHash());
+    ASSERT_EQ(0x000000b1u, ImmutableString("texture(00I10B00B").mangledNameHash());
     ASSERT_EQ(0x00000004u, ImmutableString("texture(00R10B00B").mangledNameHash());
     ASSERT_EQ(0x00000092u, ImmutableString("texture(00X10B00B").mangledNameHash());
-    ASSERT_EQ(0x000001aau, ImmutableString("texture(00J20B00B").mangledNameHash());
-    ASSERT_EQ(0x00000151u, ImmutableString("texture(00S20B00B").mangledNameHash());
-    ASSERT_EQ(0x00000191u, ImmutableString("texture(00Y20B00B").mangledNameHash());
-    ASSERT_EQ(0x000001a2u, ImmutableString("texture(00K20B00B").mangledNameHash());
-    ASSERT_EQ(0x000000c8u, ImmutableString("texture(00T20B00B").mangledNameHash());
-    ASSERT_EQ(0x00000188u, ImmutableString("texture(00Z20B00B").mangledNameHash());
-    ASSERT_EQ(0x000001f6u, ImmutableString("texture(00L20B00B").mangledNameHash());
-    ASSERT_EQ(0x00000184u, ImmutableString("texture(00U20B00B").mangledNameHash());
+    ASSERT_EQ(0x000001a8u, ImmutableString("texture(00J20B00B").mangledNameHash());
+    ASSERT_EQ(0x0000014fu, ImmutableString("texture(00S20B00B").mangledNameHash());
+    ASSERT_EQ(0x0000018fu, ImmutableString("texture(00Y20B00B").mangledNameHash());
+    ASSERT_EQ(0x000001a0u, ImmutableString("texture(00K20B00B").mangledNameHash());
+    ASSERT_EQ(0x000000c7u, ImmutableString("texture(00T20B00B").mangledNameHash());
+    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(0x000001e7u, ImmutableString("textureProj(00X20B00B").mangledNameHash());
+    ASSERT_EQ(0x000001e5u, ImmutableString("textureProj(00X20B00B").mangledNameHash());
     ASSERT_EQ(0x000000aau, ImmutableString("textureProj(00I30B00B").mangledNameHash());
     ASSERT_EQ(0x00000000u, ImmutableString("textureProj(00R30B00B").mangledNameHash());
-    ASSERT_EQ(0x00000200u, ImmutableString("textureProj(00X30B00B").mangledNameHash());
+    ASSERT_EQ(0x000001ffu, ImmutableString("textureProj(00X30B00B").mangledNameHash());
     ASSERT_EQ(0x00000030u, ImmutableString("textureProj(00J30B00B").mangledNameHash());
-    ASSERT_EQ(0x00000112u, ImmutableString("textureProj(00S30B00B").mangledNameHash());
-    ASSERT_EQ(0x000001b2u, ImmutableString("textureProj(00Y30B00B").mangledNameHash());
+    ASSERT_EQ(0x00000111u, ImmutableString("textureProj(00S30B00B").mangledNameHash());
+    ASSERT_EQ(0x000001b0u, ImmutableString("textureProj(00Y30B00B").mangledNameHash());
     ASSERT_EQ(0x000002abu, ImmutableString("texture(00d20B00B").mangledNameHash());
-    ASSERT_EQ(0x00000162u, ImmutableString("texture(00e30B00B").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());
@@ -673,92 +673,92 @@
     ASSERT_EQ(0x00000380u, ImmutableString("textureOffset(00S20B20D").mangledNameHash());
     ASSERT_EQ(0x0000029fu, ImmutableString("textureOffset(00Y20B20D").mangledNameHash());
     ASSERT_EQ(0x0000000fu, ImmutableString("textureOffset(00d20B10D").mangledNameHash());
-    ASSERT_EQ(0x000000c9u, ImmutableString("textureOffset(00L20B10D").mangledNameHash());
+    ASSERT_EQ(0x000000c8u, ImmutableString("textureOffset(00L20B10D").mangledNameHash());
     ASSERT_EQ(0x0000006fu, ImmutableString("textureOffset(00U20B10D").mangledNameHash());
-    ASSERT_EQ(0x000000eau, ImmutableString("textureOffset(00a20B10D").mangledNameHash());
-    ASSERT_EQ(0x000000dbu, ImmutableString("textureProjOffset(00I20B10D").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(0x0000016du, ImmutableString("textureProjOffset(00I30B10D").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(0x000000cfu, ImmutableString("textureProjOffset(00S30B20D").mangledNameHash());
+    ASSERT_EQ(0x000000ceu, ImmutableString("textureProjOffset(00S30B20D").mangledNameHash());
     ASSERT_EQ(0x00000321u, ImmutableString("textureProjOffset(00Y30B20D").mangledNameHash());
     ASSERT_EQ(0x00000364u, ImmutableString("textureProjOffset(00d30B10D").mangledNameHash());
     ASSERT_EQ(0x0000006au, ImmutableString("textureLodOffset(00I10B00B10D").mangledNameHash());
     ASSERT_EQ(0x00000099u, ImmutableString("textureLodOffset(00R10B00B10D").mangledNameHash());
-    ASSERT_EQ(0x000000c7u, ImmutableString("textureLodOffset(00X10B00B10D").mangledNameHash());
+    ASSERT_EQ(0x000000c6u, ImmutableString("textureLodOffset(00X10B00B10D").mangledNameHash());
     ASSERT_EQ(0x0000023fu, ImmutableString("textureLodOffset(00J20B00B20D").mangledNameHash());
     ASSERT_EQ(0x0000005eu, ImmutableString("textureLodOffset(00S20B00B20D").mangledNameHash());
-    ASSERT_EQ(0x00000163u, ImmutableString("textureLodOffset(00Y20B00B20D").mangledNameHash());
-    ASSERT_EQ(0x000001c1u, ImmutableString("textureLodOffset(00d20B00B10D").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(0x00000036u, ImmutableString("textureLodOffset(00a20B00B10D").mangledNameHash());
     ASSERT_EQ(0x0000032eu, ImmutableString("textureProjLodOffset(00I20B00B10D").mangledNameHash());
-    ASSERT_EQ(0x00000135u, ImmutableString("textureProjLodOffset(00R20B00B10D").mangledNameHash());
-    ASSERT_EQ(0x0000017cu, ImmutableString("textureProjLodOffset(00X20B00B10D").mangledNameHash());
+    ASSERT_EQ(0x00000134u, ImmutableString("textureProjLodOffset(00R20B00B10D").mangledNameHash());
+    ASSERT_EQ(0x0000017au, ImmutableString("textureProjLodOffset(00X20B00B10D").mangledNameHash());
     ASSERT_EQ(0x00000336u, ImmutableString("textureProjLodOffset(00I30B00B10D").mangledNameHash());
-    ASSERT_EQ(0x000001e0u, ImmutableString("textureProjLodOffset(00R30B00B10D").mangledNameHash());
+    ASSERT_EQ(0x000001deu, ImmutableString("textureProjLodOffset(00R30B00B10D").mangledNameHash());
     ASSERT_EQ(0x00000354u, ImmutableString("textureProjLodOffset(00X30B00B10D").mangledNameHash());
-    ASSERT_EQ(0x000001cbu, ImmutableString("textureProjLodOffset(00J30B00B20D").mangledNameHash());
-    ASSERT_EQ(0x0000017fu, ImmutableString("textureProjLodOffset(00S30B00B20D").mangledNameHash());
-    ASSERT_EQ(0x000001beu, ImmutableString("textureProjLodOffset(00Y30B00B20D").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(0x0000012eu, ImmutableString("texelFetchOffset(00I10D00D10D").mangledNameHash());
-    ASSERT_EQ(0x000000c1u, ImmutableString("texelFetchOffset(00R10D00D10D").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(0x0000011fu, ImmutableString("texelFetchOffset(00S20D00D20D").mangledNameHash());
+    ASSERT_EQ(0x0000011eu, ImmutableString("texelFetchOffset(00S20D00D20D").mangledNameHash());
     ASSERT_EQ(0x00000037u, ImmutableString("texelFetchOffset(00Y20D00D20D").mangledNameHash());
     ASSERT_EQ(0x00000259u, ImmutableString("texelFetchOffset(00L20D00D10D").mangledNameHash());
-    ASSERT_EQ(0x000001bdu, ImmutableString("texelFetchOffset(00U20D00D10D").mangledNameHash());
-    ASSERT_EQ(0x00000126u, ImmutableString("texelFetchOffset(00a20D00D10D").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(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(0x000001dfu, ImmutableString("textureGradOffset(00d20B10B10B10D").mangledNameHash());
+    ASSERT_EQ(0x000001ddu, ImmutableString("textureGradOffset(00d20B10B10B10D").mangledNameHash());
     ASSERT_EQ(0x00000324u, ImmutableString("textureGradOffset(00L20B10B10B10D").mangledNameHash());
     ASSERT_EQ(0x0000024eu, ImmutableString("textureGradOffset(00U20B10B10B10D").mangledNameHash());
-    ASSERT_EQ(0x00000189u, ImmutableString("textureGradOffset(00a20B10B10B10D").mangledNameHash());
+    ASSERT_EQ(0x00000187u, ImmutableString("textureGradOffset(00a20B10B10B10D").mangledNameHash());
     ASSERT_EQ(0x00000211u, ImmutableString("textureGradOffset(00f30B10B10B10D").mangledNameHash());
     ASSERT_EQ(0x0000036eu,
               ImmutableString("textureProjGradOffset(00I20B10B10B10D").mangledNameHash());
     ASSERT_EQ(0x00000056u,
               ImmutableString("textureProjGradOffset(00R20B10B10B10D").mangledNameHash());
-    ASSERT_EQ(0x00000127u,
+    ASSERT_EQ(0x00000126u,
               ImmutableString("textureProjGradOffset(00X20B10B10B10D").mangledNameHash());
     ASSERT_EQ(0x00000264u,
               ImmutableString("textureProjGradOffset(00I30B10B10B10D").mangledNameHash());
     ASSERT_EQ(0x00000396u,
               ImmutableString("textureProjGradOffset(00R30B10B10B10D").mangledNameHash());
-    ASSERT_EQ(0x000000ffu,
+    ASSERT_EQ(0x000000feu,
               ImmutableString("textureProjGradOffset(00X30B10B10B10D").mangledNameHash());
     ASSERT_EQ(0x000003a0u,
               ImmutableString("textureProjGradOffset(00J30B20B20B20D").mangledNameHash());
-    ASSERT_EQ(0x00000116u,
+    ASSERT_EQ(0x00000115u,
               ImmutableString("textureProjGradOffset(00S30B20B20B20D").mangledNameHash());
     ASSERT_EQ(0x0000035du,
               ImmutableString("textureProjGradOffset(00Y30B20B20B20D").mangledNameHash());
     ASSERT_EQ(0x00000255u,
               ImmutableString("textureProjGradOffset(00d30B10B10B10D").mangledNameHash());
-    ASSERT_EQ(0x00000100u, ImmutableString("textureOffset(00I10B10D00B").mangledNameHash());
+    ASSERT_EQ(0x000000ffu, ImmutableString("textureOffset(00I10B10D00B").mangledNameHash());
     ASSERT_EQ(0x00000241u, ImmutableString("textureOffset(00R10B10D00B").mangledNameHash());
     ASSERT_EQ(0x000002b2u, ImmutableString("textureOffset(00X10B10D00B").mangledNameHash());
-    ASSERT_EQ(0x000000cbu, ImmutableString("textureOffset(00J20B20D00B").mangledNameHash());
+    ASSERT_EQ(0x000000cau, ImmutableString("textureOffset(00J20B20D00B").mangledNameHash());
     ASSERT_EQ(0x0000026au, ImmutableString("textureOffset(00S20B20D00B").mangledNameHash());
     ASSERT_EQ(0x0000009eu, ImmutableString("textureOffset(00Y20B20D00B").mangledNameHash());
     ASSERT_EQ(0x00000268u, ImmutableString("textureOffset(00d20B10D00B").mangledNameHash());
-    ASSERT_EQ(0x000000c6u, ImmutableString("textureOffset(00L20B10D00B").mangledNameHash());
-    ASSERT_EQ(0x000001a8u, ImmutableString("textureOffset(00U20B10D00B").mangledNameHash());
+    ASSERT_EQ(0x000000c5u, ImmutableString("textureOffset(00L20B10D00B").mangledNameHash());
+    ASSERT_EQ(0x000001a6u, ImmutableString("textureOffset(00U20B10D00B").mangledNameHash());
     ASSERT_EQ(0x00000215u, ImmutableString("textureOffset(00a20B10D00B").mangledNameHash());
     ASSERT_EQ(0x00000078u, ImmutableString("textureProjOffset(00I20B10D00B").mangledNameHash());
     ASSERT_EQ(0x0000026du, ImmutableString("textureProjOffset(00R20B10D00B").mangledNameHash());
-    ASSERT_EQ(0x000000fcu, ImmutableString("textureProjOffset(00X20B10D00B").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());
@@ -767,76 +767,76 @@
     ASSERT_EQ(0x000002b9u, ImmutableString("textureProjOffset(00Y30B20D00B").mangledNameHash());
     ASSERT_EQ(0x00000362u, ImmutableString("textureProjOffset(00d30B10D00B").mangledNameHash());
     ASSERT_EQ(0x00000087u, ImmutableString("texture(00M10B").mangledNameHash());
-    ASSERT_EQ(0x000000b1u, ImmutableString("textureProj(00M20B").mangledNameHash());
+    ASSERT_EQ(0x000000b0u, ImmutableString("textureProj(00M20B").mangledNameHash());
     ASSERT_EQ(0x0000030au, ImmutableString("textureProj(00M30B").mangledNameHash());
     ASSERT_EQ(0x00000316u, ImmutableString("textureSize(00M00D").mangledNameHash());
     ASSERT_EQ(0x0000009bu, ImmutableString("texelFetch(00M10D00D").mangledNameHash());
-    ASSERT_EQ(0x00000120u, ImmutableString("texture(00N10B").mangledNameHash());
+    ASSERT_EQ(0x0000011fu, ImmutableString("texture(00N10B").mangledNameHash());
     ASSERT_EQ(0x0000034bu, ImmutableString("textureProj(00N20B").mangledNameHash());
     ASSERT_EQ(0x00000256u, ImmutableString("textureProj(00N30B").mangledNameHash());
     ASSERT_EQ(0x0000007du, ImmutableString("rgb_2_yuv(20B00H").mangledNameHash());
-    ASSERT_EQ(0x000001a4u, ImmutableString("yuv_2_rgb(20B00H").mangledNameHash());
+    ASSERT_EQ(0x000001a2u, ImmutableString("yuv_2_rgb(20B00H").mangledNameHash());
     ASSERT_EQ(0x00000204u, 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(0x0000012fu, ImmutableString("textureGather(00I10B00D").mangledNameHash());
+    ASSERT_EQ(0x0000012eu, ImmutableString("textureGather(00I10B00D").mangledNameHash());
     ASSERT_EQ(0x000002beu, ImmutableString("textureGather(00R10B00D").mangledNameHash());
-    ASSERT_EQ(0x000001bcu, ImmutableString("textureGather(00X10B00D").mangledNameHash());
-    ASSERT_EQ(0x00000181u, ImmutableString("textureGather(00L20B").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(0x00000115u, ImmutableString("textureGather(00L20B00D").mangledNameHash());
+    ASSERT_EQ(0x00000114u, ImmutableString("textureGather(00L20B00D").mangledNameHash());
     ASSERT_EQ(0x000002f2u, ImmutableString("textureGather(00U20B00D").mangledNameHash());
     ASSERT_EQ(0x0000039fu, ImmutableString("textureGather(00a20B00D").mangledNameHash());
-    ASSERT_EQ(0x000000d4u, ImmutableString("textureGather(00K20B").mangledNameHash());
+    ASSERT_EQ(0x000000d3u, ImmutableString("textureGather(00K20B").mangledNameHash());
     ASSERT_EQ(0x0000039eu, ImmutableString("textureGather(00T20B").mangledNameHash());
     ASSERT_EQ(0x00000265u, 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(0x00000174u, ImmutableString("textureGather(00d10B").mangledNameHash());
+    ASSERT_EQ(0x00000172u, ImmutableString("textureGather(00d10B").mangledNameHash());
     ASSERT_EQ(0x00000379u, ImmutableString("textureGather(00d10B00B").mangledNameHash());
-    ASSERT_EQ(0x00000138u, ImmutableString("textureGather(00f20B").mangledNameHash());
-    ASSERT_EQ(0x000001a5u, ImmutableString("textureGather(00f20B00B").mangledNameHash());
+    ASSERT_EQ(0x00000137u, ImmutableString("textureGather(00f20B").mangledNameHash());
+    ASSERT_EQ(0x000001a3u, ImmutableString("textureGather(00f20B00B").mangledNameHash());
     ASSERT_EQ(0x0000033eu, ImmutableString("textureGather(00e20B").mangledNameHash());
-    ASSERT_EQ(0x00000152u, ImmutableString("textureGather(00e20B00B").mangledNameHash());
-    ASSERT_EQ(0x000000c5u, ImmutableString("textureGatherOffset(00I10B10D").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(0x000001bbu, ImmutableString("textureGatherOffset(00I10B10D00D").mangledNameHash());
-    ASSERT_EQ(0x000001e3u, ImmutableString("textureGatherOffset(00R10B10D00D").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(0x00000022u, ImmutableString("textureGatherOffset(00L20B10D00D").mangledNameHash());
-    ASSERT_EQ(0x000000e2u, ImmutableString("textureGatherOffset(00U20B10D00D").mangledNameHash());
-    ASSERT_EQ(0x000000c3u, ImmutableString("textureGatherOffset(00a20B10D00D").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(0x000000ceu, ImmutableString("atomicCounter(00G").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(0x0000003eu, ImmutableString("atomicAdd(00D00D").mangledNameHash());
-    ASSERT_EQ(0x0000014eu, ImmutableString("atomicMin(00E00E").mangledNameHash());
+    ASSERT_EQ(0x0000014cu, ImmutableString("atomicMin(00E00E").mangledNameHash());
     ASSERT_EQ(0x00000375u, ImmutableString("atomicMin(00D00D").mangledNameHash());
     ASSERT_EQ(0x00000373u, ImmutableString("atomicMax(00E00E").mangledNameHash());
-    ASSERT_EQ(0x000000b0u, ImmutableString("atomicMax(00D00D").mangledNameHash());
-    ASSERT_EQ(0x000000bcu, ImmutableString("atomicAnd(00E00E").mangledNameHash());
+    ASSERT_EQ(0x00000200u, 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(0x000000a0u, ImmutableString("atomicXor(00E00E").mangledNameHash());
     ASSERT_EQ(0x00000068u, ImmutableString("atomicXor(00D00D").mangledNameHash());
     ASSERT_EQ(0x000000a9u, ImmutableString("atomicExchange(00E00E").mangledNameHash());
-    ASSERT_EQ(0x000001e2u, ImmutableString("atomicExchange(00D00D").mangledNameHash());
+    ASSERT_EQ(0x000001e0u, ImmutableString("atomicExchange(00D00D").mangledNameHash());
     ASSERT_EQ(0x00000320u, ImmutableString("atomicCompSwap(00E00E00E").mangledNameHash());
-    ASSERT_EQ(0x000001fau, ImmutableString("atomicCompSwap(00D00D00D").mangledNameHash());
-    ASSERT_EQ(0x0000019bu, ImmutableString("imageSize(00y").mangledNameHash());
-    ASSERT_EQ(0x0000019du, ImmutableString("imageSize(00z").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());
@@ -848,72 +848,72 @@
     ASSERT_EQ(0x000002d3u, ImmutableString("imageSize(01I").mangledNameHash());
     ASSERT_EQ(0x000002d1u, ImmutableString("imageSize(01J").mangledNameHash());
     ASSERT_EQ(0x00000260u, ImmutableString("imageLoad(00y10D").mangledNameHash());
-    ASSERT_EQ(0x000001f2u, ImmutableString("imageLoad(00z10D").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(0x0000003au, ImmutableString("imageLoad(01F20D").mangledNameHash());
-    ASSERT_EQ(0x000001f8u, ImmutableString("imageLoad(01G20D").mangledNameHash());
-    ASSERT_EQ(0x000000d3u, ImmutableString("imageLoad(01H20D").mangledNameHash());
-    ASSERT_EQ(0x000000d0u, ImmutableString("imageLoad(01I20D").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(0x000001e4u, ImmutableString("imageStore(00y10D30B").mangledNameHash());
-    ASSERT_EQ(0x000000f8u, ImmutableString("imageStore(00z10D30D").mangledNameHash());
-    ASSERT_EQ(0x00000117u, ImmutableString("imageStore(01A10D30E").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(0x000001c3u, ImmutableString("imageStore(01E20D30B").mangledNameHash());
+    ASSERT_EQ(0x000001c1u, ImmutableString("imageStore(01E20D30B").mangledNameHash());
     ASSERT_EQ(0x00000385u, ImmutableString("imageStore(01F20D30D").mangledNameHash());
-    ASSERT_EQ(0x000000d6u, ImmutableString("imageStore(01G20D30E").mangledNameHash());
+    ASSERT_EQ(0x000000d5u, ImmutableString("imageStore(01G20D30E").mangledNameHash());
     ASSERT_EQ(0x000002c4u, ImmutableString("imageStore(01H20D30B").mangledNameHash());
     ASSERT_EQ(0x0000005cu, ImmutableString("imageStore(01I20D30D").mangledNameHash());
-    ASSERT_EQ(0x0000010cu, ImmutableString("imageStore(01J20D30E").mangledNameHash());
-    ASSERT_EQ(0x00000296u, ImmutableString("memoryBarrier(").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(0x00000122u, ImmutableString("barrier(").mangledNameHash());
-    ASSERT_EQ(0x000001efu, ImmutableString("memoryBarrierShared(").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(0x00000034u, ImmutableString("EndPrimitive(").mangledNameHash());
-    ASSERT_EQ(0x00000153u, ImmutableString("gl_DepthRangeParameters").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(0x00000043u, ImmutableString("gl_MaxVertexTextureImageUnits").mangledNameHash());
-    ASSERT_EQ(0x0000014fu, ImmutableString("gl_MaxCombinedTextureImageUnits").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(0x000000e1u, ImmutableString("gl_MaxDrawBuffers").mangledNameHash());
+    ASSERT_EQ(0x000000e0u, ImmutableString("gl_MaxDrawBuffers").mangledNameHash());
     ASSERT_EQ(0x00000272u, ImmutableString("gl_MaxDualSourceDrawBuffersEXT").mangledNameHash());
     ASSERT_EQ(0x00000088u, ImmutableString("gl_MaxVertexOutputVectors").mangledNameHash());
     ASSERT_EQ(0x00000369u, ImmutableString("gl_MaxFragmentInputVectors").mangledNameHash());
     ASSERT_EQ(0x0000002eu, ImmutableString("gl_MinProgramTexelOffset").mangledNameHash());
     ASSERT_EQ(0x00000257u, ImmutableString("gl_MaxProgramTexelOffset").mangledNameHash());
     ASSERT_EQ(0x0000008cu, ImmutableString("gl_MaxImageUnits").mangledNameHash());
-    ASSERT_EQ(0x000001d5u, ImmutableString("gl_MaxVertexImageUniforms").mangledNameHash());
+    ASSERT_EQ(0x000001d3u, ImmutableString("gl_MaxVertexImageUniforms").mangledNameHash());
     ASSERT_EQ(0x000000a6u, ImmutableString("gl_MaxFragmentImageUniforms").mangledNameHash());
     ASSERT_EQ(0x00000008u, ImmutableString("gl_MaxComputeImageUniforms").mangledNameHash());
-    ASSERT_EQ(0x000001a3u, ImmutableString("gl_MaxCombinedImageUniforms").mangledNameHash());
+    ASSERT_EQ(0x000001a1u, ImmutableString("gl_MaxCombinedImageUniforms").mangledNameHash());
     ASSERT_EQ(0x000000acu,
               ImmutableString("gl_MaxCombinedShaderOutputResources").mangledNameHash());
-    ASSERT_EQ(0x000000e3u, ImmutableString("gl_MaxComputeWorkGroupCount").mangledNameHash());
-    ASSERT_EQ(0x00000149u, ImmutableString("gl_MaxComputeWorkGroupSize").mangledNameHash());
+    ASSERT_EQ(0x000000e2u, ImmutableString("gl_MaxComputeWorkGroupCount").mangledNameHash());
+    ASSERT_EQ(0x00000148u, ImmutableString("gl_MaxComputeWorkGroupSize").mangledNameHash());
     ASSERT_EQ(0x000002bdu, ImmutableString("gl_MaxComputeUniformComponents").mangledNameHash());
-    ASSERT_EQ(0x0000010eu, ImmutableString("gl_MaxComputeTextureImageUnits").mangledNameHash());
+    ASSERT_EQ(0x0000010du, ImmutableString("gl_MaxComputeTextureImageUnits").mangledNameHash());
     ASSERT_EQ(0x0000037bu, ImmutableString("gl_MaxComputeAtomicCounters").mangledNameHash());
-    ASSERT_EQ(0x000000bfu, ImmutableString("gl_MaxComputeAtomicCounterBuffers").mangledNameHash());
+    ASSERT_EQ(0x000000beu, ImmutableString("gl_MaxComputeAtomicCounterBuffers").mangledNameHash());
     ASSERT_EQ(0x0000037du, ImmutableString("gl_MaxVertexAtomicCounters").mangledNameHash());
     ASSERT_EQ(0x00000283u, ImmutableString("gl_MaxFragmentAtomicCounters").mangledNameHash());
-    ASSERT_EQ(0x00000114u, ImmutableString("gl_MaxCombinedAtomicCounters").mangledNameHash());
+    ASSERT_EQ(0x00000113u, ImmutableString("gl_MaxCombinedAtomicCounters").mangledNameHash());
     ASSERT_EQ(0x00000006u, ImmutableString("gl_MaxAtomicCounterBindings").mangledNameHash());
     ASSERT_EQ(0x0000005du, ImmutableString("gl_MaxVertexAtomicCounterBuffers").mangledNameHash());
-    ASSERT_EQ(0x000001d8u, ImmutableString("gl_MaxFragmentAtomicCounterBuffers").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());
@@ -923,138 +923,138 @@
     ASSERT_EQ(0x00000029u, ImmutableString("gl_MaxGeometryOutputVertices").mangledNameHash());
     ASSERT_EQ(0x000002a2u,
               ImmutableString("gl_MaxGeometryTotalOutputComponents").mangledNameHash());
-    ASSERT_EQ(0x00000123u, ImmutableString("gl_MaxGeometryUniformComponents").mangledNameHash());
-    ASSERT_EQ(0x000001e5u, ImmutableString("gl_MaxGeometryAtomicCounters").mangledNameHash());
-    ASSERT_EQ(0x000000feu, ImmutableString("gl_MaxGeometryAtomicCounterBuffers").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(0x00000119u, ImmutableString("gl_PointCoord").mangledNameHash());
+    ASSERT_EQ(0x00000118u, ImmutableString("gl_PointCoord").mangledNameHash());
     ASSERT_EQ(0x00000076u, ImmutableString("gl_FragColor").mangledNameHash());
     ASSERT_EQ(0x000002f5u, ImmutableString("gl_FragData").mangledNameHash());
-    ASSERT_EQ(0x00000178u, ImmutableString("gl_FragDepth").mangledNameHash());
+    ASSERT_EQ(0x00000176u, ImmutableString("gl_FragDepth").mangledNameHash());
     ASSERT_EQ(0x000002e3u, ImmutableString("gl_SecondaryFragColorEXT").mangledNameHash());
-    ASSERT_EQ(0x000001cdu, ImmutableString("gl_SecondaryFragDataEXT").mangledNameHash());
-    ASSERT_EQ(0x0000016bu, ImmutableString("gl_FragDepthEXT").mangledNameHash());
-    ASSERT_EQ(0x0000014cu, ImmutableString("gl_LastFragData").mangledNameHash());
-    ASSERT_EQ(0x00000165u, ImmutableString("gl_LastFragColor").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(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(0x000001d3u, ImmutableString("gl_InstanceID").mangledNameHash());
+    ASSERT_EQ(0x000001d1u, ImmutableString("gl_InstanceID").mangledNameHash());
     ASSERT_EQ(0x00000308u, ImmutableString("gl_VertexID").mangledNameHash());
     ASSERT_EQ(0x000003a4u, ImmutableString("gl_DrawID").mangledNameHash());
-    ASSERT_EQ(0x0000014au, ImmutableString("gl_BaseVertex").mangledNameHash());
+    ASSERT_EQ(0x00000296u, ImmutableString("gl_BaseVertex").mangledNameHash());
     ASSERT_EQ(0x00000310u, 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(0x000001d9u, ImmutableString("gl_WorkGroupID").mangledNameHash());
-    ASSERT_EQ(0x00000171u, ImmutableString("gl_LocalInvocationID").mangledNameHash());
-    ASSERT_EQ(0x000001edu, ImmutableString("gl_GlobalInvocationID").mangledNameHash());
-    ASSERT_EQ(0x000001b9u, ImmutableString("gl_LocalInvocationIndex").mangledNameHash());
-    ASSERT_EQ(0x000000c0u, ImmutableString("gl_PrimitiveIDIn").mangledNameHash());
-    ASSERT_EQ(0x00000143u, ImmutableString("gl_InvocationID").mangledNameHash());
-    ASSERT_EQ(0x000001ffu, ImmutableString("gl_PerVertex").mangledNameHash());
-    ASSERT_EQ(0x000001c8u, ImmutableString("gl_in").mangledNameHash());
+    ASSERT_EQ(0x000001d7u, ImmutableString("gl_WorkGroupID").mangledNameHash());
+    ASSERT_EQ(0x0000016fu, ImmutableString("gl_LocalInvocationID").mangledNameHash());
+    ASSERT_EQ(0x000001ebu, ImmutableString("gl_GlobalInvocationID").mangledNameHash());
+    ASSERT_EQ(0x000001b7u, ImmutableString("gl_LocalInvocationIndex").mangledNameHash());
+    ASSERT_EQ(0x000000bfu, ImmutableString("gl_PrimitiveIDIn").mangledNameHash());
+    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(0x0000001cu, ImmutableString("radians").unmangledNameHash());
     ASSERT_EQ(0x0000000fu, ImmutableString("degrees").unmangledNameHash());
-    ASSERT_EQ(0x0000007eu, ImmutableString("sin").unmangledNameHash());
+    ASSERT_EQ(0x0000007du, ImmutableString("sin").unmangledNameHash());
     ASSERT_EQ(0x00000042u, ImmutableString("cos").unmangledNameHash());
-    ASSERT_EQ(0x00000073u, ImmutableString("tan").unmangledNameHash());
+    ASSERT_EQ(0x00000072u, ImmutableString("tan").unmangledNameHash());
     ASSERT_EQ(0x0000002bu, ImmutableString("asin").unmangledNameHash());
     ASSERT_EQ(0x00000049u, ImmutableString("acos").unmangledNameHash());
     ASSERT_EQ(0x00000080u, ImmutableString("atan").unmangledNameHash());
     ASSERT_EQ(0x0000003fu, ImmutableString("sinh").unmangledNameHash());
     ASSERT_EQ(0x00000029u, ImmutableString("cosh").unmangledNameHash());
-    ASSERT_EQ(0x00000068u, ImmutableString("tanh").unmangledNameHash());
-    ASSERT_EQ(0x00000070u, ImmutableString("asinh").unmangledNameHash());
+    ASSERT_EQ(0x00000067u, ImmutableString("tanh").unmangledNameHash());
+    ASSERT_EQ(0x0000006fu, ImmutableString("asinh").unmangledNameHash());
     ASSERT_EQ(0x00000028u, ImmutableString("acosh").unmangledNameHash());
-    ASSERT_EQ(0x0000007au, ImmutableString("atanh").unmangledNameHash());
+    ASSERT_EQ(0x00000079u, ImmutableString("atanh").unmangledNameHash());
     ASSERT_EQ(0x0000004eu, ImmutableString("pow").unmangledNameHash());
     ASSERT_EQ(0x00000090u, ImmutableString("exp").unmangledNameHash());
-    ASSERT_EQ(0x00000058u, ImmutableString("log").unmangledNameHash());
-    ASSERT_EQ(0x0000005au, ImmutableString("exp2").unmangledNameHash());
+    ASSERT_EQ(0x00000057u, ImmutableString("log").unmangledNameHash());
+    ASSERT_EQ(0x00000059u, ImmutableString("exp2").unmangledNameHash());
     ASSERT_EQ(0x00000037u, ImmutableString("log2").unmangledNameHash());
-    ASSERT_EQ(0x0000007cu, ImmutableString("sqrt").unmangledNameHash());
-    ASSERT_EQ(0x00000066u, ImmutableString("inversesqrt").unmangledNameHash());
+    ASSERT_EQ(0x0000007bu, ImmutableString("sqrt").unmangledNameHash());
+    ASSERT_EQ(0x00000065u, ImmutableString("inversesqrt").unmangledNameHash());
     ASSERT_EQ(0x00000034u, ImmutableString("abs").unmangledNameHash());
-    ASSERT_EQ(0x00000065u, ImmutableString("sign").unmangledNameHash());
-    ASSERT_EQ(0x00000078u, ImmutableString("floor").unmangledNameHash());
+    ASSERT_EQ(0x00000064u, ImmutableString("sign").unmangledNameHash());
+    ASSERT_EQ(0x00000077u, ImmutableString("floor").unmangledNameHash());
     ASSERT_EQ(0x00000041u, ImmutableString("trunc").unmangledNameHash());
     ASSERT_EQ(0x00000023u, ImmutableString("round").unmangledNameHash());
     ASSERT_EQ(0x00000014u, ImmutableString("roundEven").unmangledNameHash());
     ASSERT_EQ(0x00000017u, ImmutableString("ceil").unmangledNameHash());
-    ASSERT_EQ(0x0000005cu, ImmutableString("fract").unmangledNameHash());
+    ASSERT_EQ(0x0000005bu, ImmutableString("fract").unmangledNameHash());
     ASSERT_EQ(0x0000001au, ImmutableString("mod").unmangledNameHash());
     ASSERT_EQ(0x0000008du, ImmutableString("min").unmangledNameHash());
     ASSERT_EQ(0x00000035u, ImmutableString("max").unmangledNameHash());
     ASSERT_EQ(0x00000025u, ImmutableString("clamp").unmangledNameHash());
-    ASSERT_EQ(0x0000007du, ImmutableString("mix").unmangledNameHash());
+    ASSERT_EQ(0x0000007cu, ImmutableString("mix").unmangledNameHash());
     ASSERT_EQ(0x0000003eu, ImmutableString("step").unmangledNameHash());
     ASSERT_EQ(0x0000001du, ImmutableString("smoothstep").unmangledNameHash());
     ASSERT_EQ(0x00000021u, ImmutableString("modf").unmangledNameHash());
     ASSERT_EQ(0x0000002cu, ImmutableString("isnan").unmangledNameHash());
     ASSERT_EQ(0x00000083u, ImmutableString("isinf").unmangledNameHash());
     ASSERT_EQ(0x0000001bu, ImmutableString("floatBitsToInt").unmangledNameHash());
-    ASSERT_EQ(0x00000052u, ImmutableString("floatBitsToUint").unmangledNameHash());
-    ASSERT_EQ(0x0000006cu, ImmutableString("intBitsToFloat").unmangledNameHash());
+    ASSERT_EQ(0x00000051u, ImmutableString("floatBitsToUint").unmangledNameHash());
+    ASSERT_EQ(0x0000006bu, ImmutableString("intBitsToFloat").unmangledNameHash());
     ASSERT_EQ(0x0000004au, ImmutableString("uintBitsToFloat").unmangledNameHash());
     ASSERT_EQ(0x0000000eu, ImmutableString("frexp").unmangledNameHash());
-    ASSERT_EQ(0x00000051u, ImmutableString("ldexp").unmangledNameHash());
+    ASSERT_EQ(0x00000050u, ImmutableString("ldexp").unmangledNameHash());
     ASSERT_EQ(0x0000008fu, ImmutableString("packSnorm2x16").unmangledNameHash());
     ASSERT_EQ(0x00000093u, ImmutableString("packHalf2x16").unmangledNameHash());
     ASSERT_EQ(0x00000036u, ImmutableString("unpackSnorm2x16").unmangledNameHash());
     ASSERT_EQ(0x0000004cu, ImmutableString("unpackHalf2x16").unmangledNameHash());
     ASSERT_EQ(0x0000004bu, ImmutableString("packUnorm2x16").unmangledNameHash());
     ASSERT_EQ(0x00000081u, ImmutableString("unpackUnorm2x16").unmangledNameHash());
-    ASSERT_EQ(0x00000064u, ImmutableString("packUnorm4x8").unmangledNameHash());
+    ASSERT_EQ(0x00000063u, ImmutableString("packUnorm4x8").unmangledNameHash());
     ASSERT_EQ(0x0000000au, ImmutableString("packSnorm4x8").unmangledNameHash());
     ASSERT_EQ(0x00000002u, ImmutableString("unpackUnorm4x8").unmangledNameHash());
     ASSERT_EQ(0x00000022u, ImmutableString("unpackSnorm4x8").unmangledNameHash());
     ASSERT_EQ(0x00000047u, ImmutableString("length").unmangledNameHash());
-    ASSERT_EQ(0x00000067u, ImmutableString("distance").unmangledNameHash());
+    ASSERT_EQ(0x00000066u, ImmutableString("distance").unmangledNameHash());
     ASSERT_EQ(0x00000095u, ImmutableString("dot").unmangledNameHash());
-    ASSERT_EQ(0x0000007bu, ImmutableString("cross").unmangledNameHash());
-    ASSERT_EQ(0x00000076u, ImmutableString("normalize").unmangledNameHash());
+    ASSERT_EQ(0x0000007au, ImmutableString("cross").unmangledNameHash());
+    ASSERT_EQ(0x00000075u, ImmutableString("normalize").unmangledNameHash());
     ASSERT_EQ(0x00000033u, ImmutableString("faceforward").unmangledNameHash());
     ASSERT_EQ(0x00000082u, ImmutableString("reflect").unmangledNameHash());
     ASSERT_EQ(0x0000008cu, ImmutableString("refract").unmangledNameHash());
     ASSERT_EQ(0x0000004du, ImmutableString("matrixCompMult").unmangledNameHash());
     ASSERT_EQ(0x0000008au, ImmutableString("outerProduct").unmangledNameHash());
     ASSERT_EQ(0x0000003du, ImmutableString("transpose").unmangledNameHash());
-    ASSERT_EQ(0x0000005eu, ImmutableString("determinant").unmangledNameHash());
+    ASSERT_EQ(0x0000005du, ImmutableString("determinant").unmangledNameHash());
     ASSERT_EQ(0x0000000bu, ImmutableString("inverse").unmangledNameHash());
     ASSERT_EQ(0x0000001fu, ImmutableString("lessThan").unmangledNameHash());
     ASSERT_EQ(0x0000003cu, ImmutableString("lessThanEqual").unmangledNameHash());
-    ASSERT_EQ(0x00000061u, ImmutableString("greaterThan").unmangledNameHash());
-    ASSERT_EQ(0x00000060u, ImmutableString("greaterThanEqual").unmangledNameHash());
+    ASSERT_EQ(0x00000060u, ImmutableString("greaterThan").unmangledNameHash());
+    ASSERT_EQ(0x0000005fu, ImmutableString("greaterThanEqual").unmangledNameHash());
     ASSERT_EQ(0x00000043u, ImmutableString("equal").unmangledNameHash());
     ASSERT_EQ(0x00000089u, ImmutableString("notEqual").unmangledNameHash());
-    ASSERT_EQ(0x00000074u, ImmutableString("any").unmangledNameHash());
+    ASSERT_EQ(0x00000073u, ImmutableString("any").unmangledNameHash());
     ASSERT_EQ(0x00000000u, ImmutableString("all").unmangledNameHash());
     ASSERT_EQ(0x00000018u, ImmutableString("not").unmangledNameHash());
-    ASSERT_EQ(0x0000006du, ImmutableString("bitfieldExtract").unmangledNameHash());
-    ASSERT_EQ(0x00000062u, ImmutableString("bitfieldInsert").unmangledNameHash());
+    ASSERT_EQ(0x0000006cu, ImmutableString("bitfieldExtract").unmangledNameHash());
+    ASSERT_EQ(0x00000061u, ImmutableString("bitfieldInsert").unmangledNameHash());
     ASSERT_EQ(0x0000002eu, ImmutableString("bitfieldReverse").unmangledNameHash());
-    ASSERT_EQ(0x00000059u, ImmutableString("bitCount").unmangledNameHash());
+    ASSERT_EQ(0x00000058u, ImmutableString("bitCount").unmangledNameHash());
     ASSERT_EQ(0x00000007u, ImmutableString("findLSB").unmangledNameHash());
     ASSERT_EQ(0x00000026u, ImmutableString("findMSB").unmangledNameHash());
     ASSERT_EQ(0x0000002au, ImmutableString("uaddCarry").unmangledNameHash());
     ASSERT_EQ(0x00000045u, ImmutableString("usubBorrow").unmangledNameHash());
     ASSERT_EQ(0x00000085u, ImmutableString("umulExtended").unmangledNameHash());
     ASSERT_EQ(0x00000010u, ImmutableString("imulExtended").unmangledNameHash());
-    ASSERT_EQ(0x00000071u, ImmutableString("texture2D").unmangledNameHash());
+    ASSERT_EQ(0x00000070u, ImmutableString("texture2D").unmangledNameHash());
     ASSERT_EQ(0x0000003au, ImmutableString("texture2DProj").unmangledNameHash());
     ASSERT_EQ(0x0000008eu, ImmutableString("textureCube").unmangledNameHash());
     ASSERT_EQ(0x00000027u, ImmutableString("texture2DRect").unmangledNameHash());
     ASSERT_EQ(0x00000019u, ImmutableString("texture2DRectProj").unmangledNameHash());
     ASSERT_EQ(0x0000000du, ImmutableString("texture").unmangledNameHash());
     ASSERT_EQ(0x00000001u, ImmutableString("textureProj").unmangledNameHash());
-    ASSERT_EQ(0x00000069u, ImmutableString("texture2DGradEXT").unmangledNameHash());
+    ASSERT_EQ(0x00000068u, ImmutableString("texture2DGradEXT").unmangledNameHash());
     ASSERT_EQ(0x00000011u, ImmutableString("texture2DProjGradEXT").unmangledNameHash());
     ASSERT_EQ(0x00000008u, ImmutableString("textureCubeGradEXT").unmangledNameHash());
     ASSERT_EQ(0x0000002fu, ImmutableString("dFdx").unmangledNameHash());
@@ -1062,53 +1062,53 @@
     ASSERT_EQ(0x00000003u, ImmutableString("fwidth").unmangledNameHash());
     ASSERT_EQ(0x00000044u, ImmutableString("texture2DLodEXT").unmangledNameHash());
     ASSERT_EQ(0x00000015u, ImmutableString("texture2DProjLodEXT").unmangledNameHash());
-    ASSERT_EQ(0x00000054u, ImmutableString("textureCubeLodEXT").unmangledNameHash());
+    ASSERT_EQ(0x00000053u, ImmutableString("textureCubeLodEXT").unmangledNameHash());
     ASSERT_EQ(0x00000084u, ImmutableString("texture3D").unmangledNameHash());
-    ASSERT_EQ(0x00000063u, ImmutableString("texture3DProj").unmangledNameHash());
+    ASSERT_EQ(0x00000062u, ImmutableString("texture3DProj").unmangledNameHash());
     ASSERT_EQ(0x00000031u, ImmutableString("texture3DLod").unmangledNameHash());
-    ASSERT_EQ(0x0000006eu, ImmutableString("texture3DProjLod").unmangledNameHash());
+    ASSERT_EQ(0x0000006du, ImmutableString("texture3DProjLod").unmangledNameHash());
     ASSERT_EQ(0x00000094u, ImmutableString("texture2DLod").unmangledNameHash());
-    ASSERT_EQ(0x00000050u, ImmutableString("texture2DProjLod").unmangledNameHash());
+    ASSERT_EQ(0x0000004fu, ImmutableString("texture2DProjLod").unmangledNameHash());
     ASSERT_EQ(0x0000000cu, ImmutableString("textureCubeLod").unmangledNameHash());
     ASSERT_EQ(0x00000032u, ImmutableString("textureLod").unmangledNameHash());
     ASSERT_EQ(0x00000048u, ImmutableString("textureSize").unmangledNameHash());
-    ASSERT_EQ(0x00000053u, ImmutableString("textureProjLod").unmangledNameHash());
+    ASSERT_EQ(0x00000052u, ImmutableString("textureProjLod").unmangledNameHash());
     ASSERT_EQ(0x00000087u, ImmutableString("texelFetch").unmangledNameHash());
     ASSERT_EQ(0x00000038u, ImmutableString("textureGrad").unmangledNameHash());
     ASSERT_EQ(0x0000001eu, ImmutableString("textureProjGrad").unmangledNameHash());
     ASSERT_EQ(0x00000024u, ImmutableString("textureOffset").unmangledNameHash());
     ASSERT_EQ(0x00000040u, ImmutableString("textureProjOffset").unmangledNameHash());
-    ASSERT_EQ(0x00000079u, ImmutableString("textureLodOffset").unmangledNameHash());
-    ASSERT_EQ(0x00000057u, ImmutableString("textureProjLodOffset").unmangledNameHash());
+    ASSERT_EQ(0x00000078u, ImmutableString("textureLodOffset").unmangledNameHash());
+    ASSERT_EQ(0x00000056u, ImmutableString("textureProjLodOffset").unmangledNameHash());
     ASSERT_EQ(0x00000046u, ImmutableString("texelFetchOffset").unmangledNameHash());
     ASSERT_EQ(0x0000007fu, ImmutableString("textureGradOffset").unmangledNameHash());
     ASSERT_EQ(0x00000013u, ImmutableString("textureProjGradOffset").unmangledNameHash());
     ASSERT_EQ(0x00000004u, ImmutableString("rgb_2_yuv").unmangledNameHash());
     ASSERT_EQ(0x00000006u, ImmutableString("yuv_2_rgb").unmangledNameHash());
-    ASSERT_EQ(0x0000005fu, ImmutableString("textureGather").unmangledNameHash());
-    ASSERT_EQ(0x00000056u, ImmutableString("textureGatherOffset").unmangledNameHash());
-    ASSERT_EQ(0x0000006bu, ImmutableString("atomicCounter").unmangledNameHash());
+    ASSERT_EQ(0x0000005eu, ImmutableString("textureGather").unmangledNameHash());
+    ASSERT_EQ(0x00000055u, ImmutableString("textureGatherOffset").unmangledNameHash());
+    ASSERT_EQ(0x0000006au, ImmutableString("atomicCounter").unmangledNameHash());
     ASSERT_EQ(0x00000005u, ImmutableString("atomicCounterIncrement").unmangledNameHash());
     ASSERT_EQ(0x0000003bu, ImmutableString("atomicCounterDecrement").unmangledNameHash());
-    ASSERT_EQ(0x0000006fu, ImmutableString("atomicAdd").unmangledNameHash());
+    ASSERT_EQ(0x0000006eu, ImmutableString("atomicAdd").unmangledNameHash());
     ASSERT_EQ(0x00000092u, ImmutableString("atomicMin").unmangledNameHash());
     ASSERT_EQ(0x0000002du, ImmutableString("atomicMax").unmangledNameHash());
     ASSERT_EQ(0x00000012u, ImmutableString("atomicAnd").unmangledNameHash());
     ASSERT_EQ(0x00000086u, ImmutableString("atomicOr").unmangledNameHash());
-    ASSERT_EQ(0x00000075u, ImmutableString("atomicXor").unmangledNameHash());
-    ASSERT_EQ(0x0000004fu, ImmutableString("atomicExchange").unmangledNameHash());
-    ASSERT_EQ(0x0000005bu, ImmutableString("atomicCompSwap").unmangledNameHash());
+    ASSERT_EQ(0x00000074u, ImmutableString("atomicXor").unmangledNameHash());
+    ASSERT_EQ(0x0000007eu, ImmutableString("atomicExchange").unmangledNameHash());
+    ASSERT_EQ(0x0000005au, ImmutableString("atomicCompSwap").unmangledNameHash());
     ASSERT_EQ(0x0000008bu, ImmutableString("imageSize").unmangledNameHash());
-    ASSERT_EQ(0x00000077u, ImmutableString("imageLoad").unmangledNameHash());
-    ASSERT_EQ(0x00000055u, ImmutableString("imageStore").unmangledNameHash());
-    ASSERT_EQ(0x0000006au, ImmutableString("memoryBarrier").unmangledNameHash());
+    ASSERT_EQ(0x00000076u, ImmutableString("imageLoad").unmangledNameHash());
+    ASSERT_EQ(0x00000054u, ImmutableString("imageStore").unmangledNameHash());
+    ASSERT_EQ(0x00000069u, ImmutableString("memoryBarrier").unmangledNameHash());
     ASSERT_EQ(0x00000016u, ImmutableString("memoryBarrierAtomicCounter").unmangledNameHash());
-    ASSERT_EQ(0x00000072u, ImmutableString("memoryBarrierBuffer").unmangledNameHash());
+    ASSERT_EQ(0x00000071u, ImmutableString("memoryBarrierBuffer").unmangledNameHash());
     ASSERT_EQ(0x00000009u, ImmutableString("memoryBarrierImage").unmangledNameHash());
     ASSERT_EQ(0x00000039u, ImmutableString("barrier").unmangledNameHash());
     ASSERT_EQ(0x00000030u, ImmutableString("memoryBarrierShared").unmangledNameHash());
     ASSERT_EQ(0x00000091u, ImmutableString("groupMemoryBarrier").unmangledNameHash());
-    ASSERT_EQ(0x0000005du, ImmutableString("EmitVertex").unmangledNameHash());
+    ASSERT_EQ(0x0000005cu, ImmutableString("EmitVertex").unmangledNameHash());
     ASSERT_EQ(0x00000088u, ImmutableString("EndPrimitive").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 ebc50f9..0790030 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
@@ -287,7 +287,7 @@
     ASSERT_EQ(0x0000001bu, ImmutableString("mix(20B20B00B").mangledNameHash());
     ASSERT_EQ(0x00000690u, ImmutableString("mix(30B30B00B").mangledNameHash());
     ASSERT_EQ(0x00000550u, ImmutableString("mix(10B10B10B").mangledNameHash());
-    ASSERT_EQ(0x00000841u, ImmutableString("mix(20B20B20B").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());
@@ -612,7 +612,7 @@
     ASSERT_EQ(0x00000249u, ImmutableString("bitCount(00E").mangledNameHash());
     ASSERT_EQ(0x0000018fu, ImmutableString("bitCount(10E").mangledNameHash());
     ASSERT_EQ(0x0000053bu, ImmutableString("bitCount(20E").mangledNameHash());
-    ASSERT_EQ(0x000001d2u, ImmutableString("bitCount(30E").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());
@@ -757,7 +757,7 @@
     ASSERT_EQ(0x00000127u, ImmutableString("textureProj(00o30B").mangledNameHash());
     ASSERT_EQ(0x00000772u, ImmutableString("textureProj(00t30B").mangledNameHash());
     ASSERT_EQ(0x00000102u, ImmutableString("textureProj(00m30B").mangledNameHash());
-    ASSERT_EQ(0x000004b3u, ImmutableString("textureProj(00q20B").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());
@@ -856,7 +856,7 @@
     ASSERT_EQ(0x000007efu, ImmutableString("texelFetch(00p10D00D").mangledNameHash());
     ASSERT_EQ(0x0000064au, ImmutableString("texelFetch(00u10D00D").mangledNameHash());
     ASSERT_EQ(0x00000078u, ImmutableString("texelFetch(00j00D").mangledNameHash());
-    ASSERT_EQ(0x000003b5u, ImmutableString("texelFetch(00r00D").mangledNameHash());
+    ASSERT_EQ(0x000005bfu, 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());
@@ -1046,7 +1046,7 @@
     ASSERT_EQ(0x000003f8u, ImmutableString("textureOffset(00O10B10D").mangledNameHash());
     ASSERT_EQ(0x00000718u, ImmutableString("textureOffset(00q10B10D").mangledNameHash());
     ASSERT_EQ(0x000002b7u, ImmutableString("textureOffset(00v10B10D").mangledNameHash());
-    ASSERT_EQ(0x00000480u, ImmutableString("textureOffset(00n20B10D").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());
@@ -1055,7 +1055,7 @@
     ASSERT_EQ(0x0000076cu, ImmutableString("textureOffset(00f30B10D").mangledNameHash());
     ASSERT_EQ(0x000004beu, ImmutableString("textureProjOffset(00I20B10D").mangledNameHash());
     ASSERT_EQ(0x00000296u, ImmutableString("textureProjOffset(00R20B10D").mangledNameHash());
-    ASSERT_EQ(0x0000016au, ImmutableString("textureProjOffset(00X20B10D").mangledNameHash());
+    ASSERT_EQ(0x00000841u, 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());
@@ -1070,7 +1070,7 @@
     ASSERT_EQ(0x00000450u, ImmutableString("textureProjOffset(00o30B00D").mangledNameHash());
     ASSERT_EQ(0x0000071du, ImmutableString("textureProjOffset(00t30B00D").mangledNameHash());
     ASSERT_EQ(0x000006e3u, ImmutableString("textureProjOffset(00O20B10D").mangledNameHash());
-    ASSERT_EQ(0x00000347u, ImmutableString("textureProjOffset(00q20B10D").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());
@@ -1327,7 +1327,7 @@
     ASSERT_EQ(0x00000697u, ImmutableString("textureGatherOffsets(00v10B70D00D").mangledNameHash());
     ASSERT_EQ(0x00000330u, ImmutableString("textureGatherOffsets(00d10B00B70D").mangledNameHash());
     ASSERT_EQ(0x00000053u, ImmutableString("textureGatherOffsets(00f20B00B70D").mangledNameHash());
-    ASSERT_EQ(0x00000515u, ImmutableString("textureGatherOffsets(00n10B00B70D").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());
@@ -1344,7 +1344,7 @@
     ASSERT_EQ(0x0000082au, ImmutableString("dFdyCoarse(10B").mangledNameHash());
     ASSERT_EQ(0x0000056fu, ImmutableString("dFdyCoarse(20B").mangledNameHash());
     ASSERT_EQ(0x000004bau, ImmutableString("dFdyCoarse(30B").mangledNameHash());
-    ASSERT_EQ(0x00000305u, ImmutableString("fwidthFine(00B").mangledNameHash());
+    ASSERT_EQ(0x00000347u, ImmutableString("fwidthFine(00B").mangledNameHash());
     ASSERT_EQ(0x0000009du, ImmutableString("fwidthFine(10B").mangledNameHash());
     ASSERT_EQ(0x00000497u, ImmutableString("fwidthFine(20B").mangledNameHash());
     ASSERT_EQ(0x000003feu, ImmutableString("fwidthFine(30B").mangledNameHash());
@@ -1394,7 +1394,7 @@
     ASSERT_EQ(0x00000365u, ImmutableString("atomicCompSwap(00D00D00D").mangledNameHash());
     ASSERT_EQ(0x00000311u, ImmutableString("imageSize(00y").mangledNameHash());
     ASSERT_EQ(0x00000313u, ImmutableString("imageSize(00z").mangledNameHash());
-    ASSERT_EQ(0x000005bfu, ImmutableString("imageSize(01A").mangledNameHash());
+    ASSERT_EQ(0x000003b5u, ImmutableString("imageSize(01A").mangledNameHash());
     ASSERT_EQ(0x000003b3u, ImmutableString("imageSize(01B").mangledNameHash());
     ASSERT_EQ(0x000003b4u, ImmutableString("imageSize(01C").mangledNameHash());
     ASSERT_EQ(0x000003b8u, ImmutableString("imageSize(01D").mangledNameHash());
@@ -2188,209 +2188,209 @@
     ASSERT_EQ(0x00000221u, ImmutableString("gl_ViewID_OVR").mangledNameHash());
     ASSERT_EQ(0x00000022u, ImmutableString("radians").unmangledNameHash());
     ASSERT_EQ(0x00000012u, ImmutableString("degrees").unmangledNameHash());
-    ASSERT_EQ(0x000000a8u, ImmutableString("sin").unmangledNameHash());
+    ASSERT_EQ(0x000000a7u, ImmutableString("sin").unmangledNameHash());
     ASSERT_EQ(0x00000052u, ImmutableString("cos").unmangledNameHash());
-    ASSERT_EQ(0x00000096u, ImmutableString("tan").unmangledNameHash());
+    ASSERT_EQ(0x00000095u, ImmutableString("tan").unmangledNameHash());
     ASSERT_EQ(0x00000038u, ImmutableString("asin").unmangledNameHash());
     ASSERT_EQ(0x0000005cu, ImmutableString("acos").unmangledNameHash());
     ASSERT_EQ(0x000000afu, ImmutableString("atan").unmangledNameHash());
     ASSERT_EQ(0x0000004fu, ImmutableString("sinh").unmangledNameHash());
     ASSERT_EQ(0x00000033u, ImmutableString("cosh").unmangledNameHash());
-    ASSERT_EQ(0x00000087u, ImmutableString("tanh").unmangledNameHash());
-    ASSERT_EQ(0x00000093u, ImmutableString("asinh").unmangledNameHash());
+    ASSERT_EQ(0x00000086u, ImmutableString("tanh").unmangledNameHash());
+    ASSERT_EQ(0x00000092u, ImmutableString("asinh").unmangledNameHash());
     ASSERT_EQ(0x00000031u, ImmutableString("acosh").unmangledNameHash());
-    ASSERT_EQ(0x000000a0u, ImmutableString("atanh").unmangledNameHash());
+    ASSERT_EQ(0x0000009fu, ImmutableString("atanh").unmangledNameHash());
     ASSERT_EQ(0x00000061u, ImmutableString("pow").unmangledNameHash());
     ASSERT_EQ(0x000000c8u, ImmutableString("exp").unmangledNameHash());
-    ASSERT_EQ(0x0000006bu, ImmutableString("log").unmangledNameHash());
-    ASSERT_EQ(0x0000006eu, ImmutableString("exp2").unmangledNameHash());
+    ASSERT_EQ(0x0000006au, ImmutableString("log").unmangledNameHash());
+    ASSERT_EQ(0x0000006du, ImmutableString("exp2").unmangledNameHash());
     ASSERT_EQ(0x00000047u, ImmutableString("log2").unmangledNameHash());
-    ASSERT_EQ(0x000000a3u, ImmutableString("sqrt").unmangledNameHash());
-    ASSERT_EQ(0x00000082u, ImmutableString("inversesqrt").unmangledNameHash());
+    ASSERT_EQ(0x000000a2u, ImmutableString("sqrt").unmangledNameHash());
+    ASSERT_EQ(0x00000081u, ImmutableString("inversesqrt").unmangledNameHash());
     ASSERT_EQ(0x00000041u, ImmutableString("abs").unmangledNameHash());
-    ASSERT_EQ(0x00000081u, ImmutableString("sign").unmangledNameHash());
-    ASSERT_EQ(0x0000009du, ImmutableString("floor").unmangledNameHash());
+    ASSERT_EQ(0x00000080u, ImmutableString("sign").unmangledNameHash());
+    ASSERT_EQ(0x0000009cu, ImmutableString("floor").unmangledNameHash());
     ASSERT_EQ(0x00000051u, ImmutableString("trunc").unmangledNameHash());
     ASSERT_EQ(0x0000002au, ImmutableString("round").unmangledNameHash());
     ASSERT_EQ(0x00000017u, ImmutableString("roundEven").unmangledNameHash());
     ASSERT_EQ(0x0000001bu, ImmutableString("ceil").unmangledNameHash());
-    ASSERT_EQ(0x00000071u, ImmutableString("fract").unmangledNameHash());
+    ASSERT_EQ(0x00000070u, ImmutableString("fract").unmangledNameHash());
     ASSERT_EQ(0x00000020u, ImmutableString("mod").unmangledNameHash());
     ASSERT_EQ(0x000000c4u, ImmutableString("min").unmangledNameHash());
     ASSERT_EQ(0x00000043u, ImmutableString("max").unmangledNameHash());
     ASSERT_EQ(0x0000002cu, ImmutableString("clamp").unmangledNameHash());
-    ASSERT_EQ(0x000000a5u, ImmutableString("mix").unmangledNameHash());
+    ASSERT_EQ(0x000000a4u, ImmutableString("mix").unmangledNameHash());
     ASSERT_EQ(0x0000004eu, ImmutableString("step").unmangledNameHash());
     ASSERT_EQ(0x00000023u, ImmutableString("smoothstep").unmangledNameHash());
     ASSERT_EQ(0x00000028u, ImmutableString("modf").unmangledNameHash());
     ASSERT_EQ(0x00000039u, ImmutableString("isnan").unmangledNameHash());
     ASSERT_EQ(0x000000b6u, ImmutableString("isinf").unmangledNameHash());
     ASSERT_EQ(0x00000021u, ImmutableString("floatBitsToInt").unmangledNameHash());
-    ASSERT_EQ(0x00000065u, ImmutableString("floatBitsToUint").unmangledNameHash());
-    ASSERT_EQ(0x0000008fu, ImmutableString("intBitsToFloat").unmangledNameHash());
+    ASSERT_EQ(0x00000064u, ImmutableString("floatBitsToUint").unmangledNameHash());
+    ASSERT_EQ(0x0000008eu, ImmutableString("intBitsToFloat").unmangledNameHash());
     ASSERT_EQ(0x0000005du, ImmutableString("uintBitsToFloat").unmangledNameHash());
-    ASSERT_EQ(0x00000076u, ImmutableString("fma").unmangledNameHash());
+    ASSERT_EQ(0x00000075u, ImmutableString("fma").unmangledNameHash());
     ASSERT_EQ(0x00000011u, ImmutableString("frexp").unmangledNameHash());
-    ASSERT_EQ(0x00000064u, ImmutableString("ldexp").unmangledNameHash());
+    ASSERT_EQ(0x00000063u, ImmutableString("ldexp").unmangledNameHash());
     ASSERT_EQ(0x000000c6u, ImmutableString("packSnorm2x16").unmangledNameHash());
     ASSERT_EQ(0x000000ccu, ImmutableString("packHalf2x16").unmangledNameHash());
     ASSERT_EQ(0x00000046u, ImmutableString("unpackSnorm2x16").unmangledNameHash());
     ASSERT_EQ(0x0000005fu, ImmutableString("unpackHalf2x16").unmangledNameHash());
     ASSERT_EQ(0x0000005eu, ImmutableString("packUnorm2x16").unmangledNameHash());
     ASSERT_EQ(0x000000b0u, ImmutableString("unpackUnorm2x16").unmangledNameHash());
-    ASSERT_EQ(0x00000080u, ImmutableString("packUnorm4x8").unmangledNameHash());
+    ASSERT_EQ(0x0000007fu, ImmutableString("packUnorm4x8").unmangledNameHash());
     ASSERT_EQ(0x0000000cu, ImmutableString("packSnorm4x8").unmangledNameHash());
     ASSERT_EQ(0x00000002u, ImmutableString("unpackUnorm4x8").unmangledNameHash());
     ASSERT_EQ(0x00000029u, ImmutableString("unpackSnorm4x8").unmangledNameHash());
     ASSERT_EQ(0x000000c0u, ImmutableString("packDouble2x32").unmangledNameHash());
     ASSERT_EQ(0x0000002du, ImmutableString("unpackDouble2x32").unmangledNameHash());
     ASSERT_EQ(0x0000005au, ImmutableString("length").unmangledNameHash());
-    ASSERT_EQ(0x00000084u, ImmutableString("distance").unmangledNameHash());
+    ASSERT_EQ(0x00000083u, ImmutableString("distance").unmangledNameHash());
     ASSERT_EQ(0x000000ceu, ImmutableString("dot").unmangledNameHash());
-    ASSERT_EQ(0x000000a2u, ImmutableString("cross").unmangledNameHash());
-    ASSERT_EQ(0x00000099u, ImmutableString("normalize").unmangledNameHash());
+    ASSERT_EQ(0x000000a1u, ImmutableString("cross").unmangledNameHash());
+    ASSERT_EQ(0x00000098u, ImmutableString("normalize").unmangledNameHash());
     ASSERT_EQ(0x00000040u, ImmutableString("faceforward").unmangledNameHash());
     ASSERT_EQ(0x000000b5u, ImmutableString("reflect").unmangledNameHash());
     ASSERT_EQ(0x000000c2u, ImmutableString("refract").unmangledNameHash());
-    ASSERT_EQ(0x000000a6u, ImmutableString("ftransform").unmangledNameHash());
+    ASSERT_EQ(0x000000a5u, ImmutableString("ftransform").unmangledNameHash());
     ASSERT_EQ(0x00000060u, ImmutableString("matrixCompMult").unmangledNameHash());
     ASSERT_EQ(0x000000bfu, ImmutableString("outerProduct").unmangledNameHash());
     ASSERT_EQ(0x0000004du, ImmutableString("transpose").unmangledNameHash());
-    ASSERT_EQ(0x00000078u, ImmutableString("determinant").unmangledNameHash());
+    ASSERT_EQ(0x00000077u, ImmutableString("determinant").unmangledNameHash());
     ASSERT_EQ(0x0000000du, ImmutableString("inverse").unmangledNameHash());
     ASSERT_EQ(0x00000026u, ImmutableString("lessThan").unmangledNameHash());
     ASSERT_EQ(0x0000004cu, ImmutableString("lessThanEqual").unmangledNameHash());
-    ASSERT_EQ(0x0000007du, ImmutableString("greaterThan").unmangledNameHash());
-    ASSERT_EQ(0x0000007bu, ImmutableString("greaterThanEqual").unmangledNameHash());
+    ASSERT_EQ(0x0000007cu, ImmutableString("greaterThan").unmangledNameHash());
+    ASSERT_EQ(0x0000007au, ImmutableString("greaterThanEqual").unmangledNameHash());
     ASSERT_EQ(0x00000056u, ImmutableString("equal").unmangledNameHash());
     ASSERT_EQ(0x000000beu, ImmutableString("notEqual").unmangledNameHash());
-    ASSERT_EQ(0x00000097u, ImmutableString("any").unmangledNameHash());
+    ASSERT_EQ(0x00000096u, ImmutableString("any").unmangledNameHash());
     ASSERT_EQ(0x00000000u, ImmutableString("all").unmangledNameHash());
     ASSERT_EQ(0x0000001eu, ImmutableString("not").unmangledNameHash());
-    ASSERT_EQ(0x00000090u, ImmutableString("bitfieldExtract").unmangledNameHash());
-    ASSERT_EQ(0x0000007eu, ImmutableString("bitfieldInsert").unmangledNameHash());
+    ASSERT_EQ(0x0000008fu, ImmutableString("bitfieldExtract").unmangledNameHash());
+    ASSERT_EQ(0x0000007du, ImmutableString("bitfieldInsert").unmangledNameHash());
     ASSERT_EQ(0x0000003bu, ImmutableString("bitfieldReverse").unmangledNameHash());
-    ASSERT_EQ(0x0000006cu, ImmutableString("bitCount").unmangledNameHash());
+    ASSERT_EQ(0x0000006bu, ImmutableString("bitCount").unmangledNameHash());
     ASSERT_EQ(0x00000008u, ImmutableString("findLSB").unmangledNameHash());
     ASSERT_EQ(0x0000002fu, ImmutableString("findMSB").unmangledNameHash());
     ASSERT_EQ(0x00000035u, ImmutableString("uaddCarry").unmangledNameHash());
     ASSERT_EQ(0x00000058u, ImmutableString("usubBorrow").unmangledNameHash());
     ASSERT_EQ(0x000000b8u, ImmutableString("umulExtended").unmangledNameHash());
     ASSERT_EQ(0x00000013u, ImmutableString("imulExtended").unmangledNameHash());
-    ASSERT_EQ(0x00000094u, ImmutableString("texture2D").unmangledNameHash());
+    ASSERT_EQ(0x00000093u, ImmutableString("texture2D").unmangledNameHash());
     ASSERT_EQ(0x0000004au, ImmutableString("texture2DProj").unmangledNameHash());
     ASSERT_EQ(0x000000c5u, ImmutableString("textureCube").unmangledNameHash());
     ASSERT_EQ(0x0000001cu, ImmutableString("texture1D").unmangledNameHash());
     ASSERT_EQ(0x000000b3u, ImmutableString("texture1DProj").unmangledNameHash());
     ASSERT_EQ(0x000000b7u, ImmutableString("texture3D").unmangledNameHash());
-    ASSERT_EQ(0x0000007fu, ImmutableString("texture3DProj").unmangledNameHash());
-    ASSERT_EQ(0x0000007cu, ImmutableString("shadow1D").unmangledNameHash());
-    ASSERT_EQ(0x0000009au, ImmutableString("shadow1DProj").unmangledNameHash());
-    ASSERT_EQ(0x000000a9u, ImmutableString("shadow2D").unmangledNameHash());
+    ASSERT_EQ(0x0000007eu, ImmutableString("texture3DProj").unmangledNameHash());
+    ASSERT_EQ(0x0000007bu, ImmutableString("shadow1D").unmangledNameHash());
+    ASSERT_EQ(0x00000099u, ImmutableString("shadow1DProj").unmangledNameHash());
+    ASSERT_EQ(0x000000a8u, ImmutableString("shadow2D").unmangledNameHash());
     ASSERT_EQ(0x0000003eu, ImmutableString("shadow2DProj").unmangledNameHash());
     ASSERT_EQ(0x00000030u, ImmutableString("texture2DRect").unmangledNameHash());
     ASSERT_EQ(0x0000001fu, ImmutableString("texture2DRectProj").unmangledNameHash());
     ASSERT_EQ(0x00000010u, ImmutableString("texture").unmangledNameHash());
     ASSERT_EQ(0x00000001u, ImmutableString("textureProj").unmangledNameHash());
-    ASSERT_EQ(0x00000088u, ImmutableString("texture2DGradEXT").unmangledNameHash());
+    ASSERT_EQ(0x00000087u, ImmutableString("texture2DGradEXT").unmangledNameHash());
     ASSERT_EQ(0x00000014u, ImmutableString("texture2DProjGradEXT").unmangledNameHash());
     ASSERT_EQ(0x0000000au, ImmutableString("textureCubeGradEXT").unmangledNameHash());
-    ASSERT_EQ(0x0000007au, ImmutableString("texture3DLod").unmangledNameHash());
-    ASSERT_EQ(0x00000091u, ImmutableString("texture3DProjLod").unmangledNameHash());
+    ASSERT_EQ(0x00000079u, ImmutableString("texture3DLod").unmangledNameHash());
+    ASSERT_EQ(0x00000090u, ImmutableString("texture3DProjLod").unmangledNameHash());
     ASSERT_EQ(0x0000003cu, ImmutableString("dFdx").unmangledNameHash());
     ASSERT_EQ(0x00000027u, ImmutableString("dFdy").unmangledNameHash());
     ASSERT_EQ(0x00000004u, ImmutableString("fwidth").unmangledNameHash());
     ASSERT_EQ(0x00000057u, ImmutableString("texture2DLodEXT").unmangledNameHash());
     ASSERT_EQ(0x00000018u, ImmutableString("texture2DProjLodEXT").unmangledNameHash());
-    ASSERT_EQ(0x00000067u, ImmutableString("textureCubeLodEXT").unmangledNameHash());
+    ASSERT_EQ(0x00000066u, ImmutableString("textureCubeLodEXT").unmangledNameHash());
     ASSERT_EQ(0x000000cdu, ImmutableString("texture2DLod").unmangledNameHash());
-    ASSERT_EQ(0x00000063u, ImmutableString("texture2DProjLod").unmangledNameHash());
+    ASSERT_EQ(0x00000062u, ImmutableString("texture2DProjLod").unmangledNameHash());
     ASSERT_EQ(0x0000000eu, ImmutableString("textureCubeLod").unmangledNameHash());
     ASSERT_EQ(0x000000c7u, ImmutableString("texture1DLod").unmangledNameHash());
-    ASSERT_EQ(0x0000008au, ImmutableString("texture1DProjLod").unmangledNameHash());
-    ASSERT_EQ(0x00000074u, ImmutableString("shadow1DLod").unmangledNameHash());
+    ASSERT_EQ(0x00000089u, ImmutableString("texture1DProjLod").unmangledNameHash());
+    ASSERT_EQ(0x00000073u, ImmutableString("shadow1DLod").unmangledNameHash());
     ASSERT_EQ(0x00000009u, ImmutableString("shadow1DProjLod").unmangledNameHash());
-    ASSERT_EQ(0x000000abu, ImmutableString("shadow2DLod").unmangledNameHash());
+    ASSERT_EQ(0x000000aau, ImmutableString("shadow2DLod").unmangledNameHash());
     ASSERT_EQ(0x00000055u, ImmutableString("shadow2DProjLod").unmangledNameHash());
     ASSERT_EQ(0x0000003fu, ImmutableString("textureLod").unmangledNameHash());
     ASSERT_EQ(0x0000005bu, ImmutableString("textureSize").unmangledNameHash());
-    ASSERT_EQ(0x00000066u, ImmutableString("textureProjLod").unmangledNameHash());
+    ASSERT_EQ(0x00000065u, ImmutableString("textureProjLod").unmangledNameHash());
     ASSERT_EQ(0x000000bau, ImmutableString("texelFetch").unmangledNameHash());
     ASSERT_EQ(0x00000048u, ImmutableString("textureGrad").unmangledNameHash());
     ASSERT_EQ(0x00000024u, ImmutableString("textureProjGrad").unmangledNameHash());
     ASSERT_EQ(0x00000025u, ImmutableString("textureQueryLevels").unmangledNameHash());
-    ASSERT_EQ(0x000000a1u, ImmutableString("textureSamples").unmangledNameHash());
+    ASSERT_EQ(0x000000a0u, ImmutableString("textureSamples").unmangledNameHash());
     ASSERT_EQ(0x000000b1u, ImmutableString("textureQueryLod").unmangledNameHash());
     ASSERT_EQ(0x0000002bu, ImmutableString("textureOffset").unmangledNameHash());
     ASSERT_EQ(0x00000050u, ImmutableString("textureProjOffset").unmangledNameHash());
-    ASSERT_EQ(0x0000009eu, ImmutableString("textureLodOffset").unmangledNameHash());
-    ASSERT_EQ(0x0000006au, ImmutableString("textureProjLodOffset").unmangledNameHash());
+    ASSERT_EQ(0x0000009du, ImmutableString("textureLodOffset").unmangledNameHash());
+    ASSERT_EQ(0x00000069u, ImmutableString("textureProjLodOffset").unmangledNameHash());
     ASSERT_EQ(0x00000059u, ImmutableString("texelFetchOffset").unmangledNameHash());
     ASSERT_EQ(0x000000aeu, ImmutableString("textureGradOffset").unmangledNameHash());
     ASSERT_EQ(0x00000016u, ImmutableString("textureProjGradOffset").unmangledNameHash());
     ASSERT_EQ(0x00000005u, ImmutableString("rgb_2_yuv").unmangledNameHash());
     ASSERT_EQ(0x00000007u, ImmutableString("yuv_2_rgb").unmangledNameHash());
-    ASSERT_EQ(0x00000079u, ImmutableString("textureGather").unmangledNameHash());
-    ASSERT_EQ(0x00000069u, ImmutableString("textureGatherOffset").unmangledNameHash());
-    ASSERT_EQ(0x00000075u, ImmutableString("textureGatherOffsets").unmangledNameHash());
+    ASSERT_EQ(0x00000078u, ImmutableString("textureGather").unmangledNameHash());
+    ASSERT_EQ(0x00000068u, ImmutableString("textureGatherOffset").unmangledNameHash());
+    ASSERT_EQ(0x00000074u, ImmutableString("textureGatherOffsets").unmangledNameHash());
     ASSERT_EQ(0x0000001au, ImmutableString("dFdxFine").unmangledNameHash());
-    ASSERT_EQ(0x0000006du, ImmutableString("dFdyFine").unmangledNameHash());
-    ASSERT_EQ(0x00000085u, ImmutableString("dFdxCoarse").unmangledNameHash());
-    ASSERT_EQ(0x0000009cu, ImmutableString("dFdyCoarse").unmangledNameHash());
-    ASSERT_EQ(0x0000009fu, ImmutableString("fwidthFine").unmangledNameHash());
-    ASSERT_EQ(0x0000008bu, ImmutableString("fwidthCoarse").unmangledNameHash());
+    ASSERT_EQ(0x0000006cu, ImmutableString("dFdyFine").unmangledNameHash());
+    ASSERT_EQ(0x00000084u, ImmutableString("dFdxCoarse").unmangledNameHash());
+    ASSERT_EQ(0x0000009bu, ImmutableString("dFdyCoarse").unmangledNameHash());
+    ASSERT_EQ(0x0000009eu, ImmutableString("fwidthFine").unmangledNameHash());
+    ASSERT_EQ(0x0000008au, ImmutableString("fwidthCoarse").unmangledNameHash());
     ASSERT_EQ(0x000000b4u, ImmutableString("interpolateAtCentroid").unmangledNameHash());
     ASSERT_EQ(0x00000053u, ImmutableString("interpolateAtSample").unmangledNameHash());
     ASSERT_EQ(0x00000032u, ImmutableString("interpolateAtOffset").unmangledNameHash());
-    ASSERT_EQ(0x0000008eu, ImmutableString("atomicCounter").unmangledNameHash());
+    ASSERT_EQ(0x0000008du, ImmutableString("atomicCounter").unmangledNameHash());
     ASSERT_EQ(0x00000006u, ImmutableString("atomicCounterIncrement").unmangledNameHash());
     ASSERT_EQ(0x0000004bu, ImmutableString("atomicCounterDecrement").unmangledNameHash());
-    ASSERT_EQ(0x000000a7u, ImmutableString("atomicCounterAdd").unmangledNameHash());
-    ASSERT_EQ(0x00000072u, ImmutableString("atomicCounterSubtract").unmangledNameHash());
-    ASSERT_EQ(0x0000008du, ImmutableString("atomicCounterMin").unmangledNameHash());
-    ASSERT_EQ(0x0000008cu, ImmutableString("atomicCounterMax").unmangledNameHash());
+    ASSERT_EQ(0x000000a6u, ImmutableString("atomicCounterAdd").unmangledNameHash());
+    ASSERT_EQ(0x00000071u, ImmutableString("atomicCounterSubtract").unmangledNameHash());
+    ASSERT_EQ(0x0000008cu, ImmutableString("atomicCounterMin").unmangledNameHash());
+    ASSERT_EQ(0x0000008bu, ImmutableString("atomicCounterMax").unmangledNameHash());
     ASSERT_EQ(0x00000045u, ImmutableString("atomicCounterAnd").unmangledNameHash());
     ASSERT_EQ(0x0000002eu, ImmutableString("atomicCounterOr").unmangledNameHash());
     ASSERT_EQ(0x0000001du, ImmutableString("atomicCounterXor").unmangledNameHash());
     ASSERT_EQ(0x000000bcu, ImmutableString("atomicCounterExchange").unmangledNameHash());
-    ASSERT_EQ(0x000000a4u, ImmutableString("atomicCounterCompSwap").unmangledNameHash());
-    ASSERT_EQ(0x00000092u, ImmutableString("atomicAdd").unmangledNameHash());
+    ASSERT_EQ(0x000000a3u, ImmutableString("atomicCounterCompSwap").unmangledNameHash());
+    ASSERT_EQ(0x00000091u, ImmutableString("atomicAdd").unmangledNameHash());
     ASSERT_EQ(0x000000cau, ImmutableString("atomicMin").unmangledNameHash());
     ASSERT_EQ(0x0000003au, ImmutableString("atomicMax").unmangledNameHash());
     ASSERT_EQ(0x00000015u, ImmutableString("atomicAnd").unmangledNameHash());
     ASSERT_EQ(0x000000b9u, ImmutableString("atomicOr").unmangledNameHash());
-    ASSERT_EQ(0x00000098u, ImmutableString("atomicXor").unmangledNameHash());
-    ASSERT_EQ(0x00000062u, ImmutableString("atomicExchange").unmangledNameHash());
-    ASSERT_EQ(0x0000006fu, ImmutableString("atomicCompSwap").unmangledNameHash());
+    ASSERT_EQ(0x00000097u, ImmutableString("atomicXor").unmangledNameHash());
+    ASSERT_EQ(0x000000abu, ImmutableString("atomicExchange").unmangledNameHash());
+    ASSERT_EQ(0x0000006eu, ImmutableString("atomicCompSwap").unmangledNameHash());
     ASSERT_EQ(0x000000c1u, ImmutableString("imageSize").unmangledNameHash());
-    ASSERT_EQ(0x00000070u, ImmutableString("imageSamples").unmangledNameHash());
+    ASSERT_EQ(0x0000006fu, ImmutableString("imageSamples").unmangledNameHash());
     ASSERT_EQ(0x0000000fu, ImmutableString("imageAtomicAdd").unmangledNameHash());
     ASSERT_EQ(0x000000acu, ImmutableString("imageAtomicMin").unmangledNameHash());
     ASSERT_EQ(0x000000b2u, ImmutableString("imageAtomicMax").unmangledNameHash());
-    ASSERT_EQ(0x0000009bu, ImmutableString("imageAtomicAnd").unmangledNameHash());
+    ASSERT_EQ(0x0000009au, ImmutableString("imageAtomicAnd").unmangledNameHash());
     ASSERT_EQ(0x00000036u, ImmutableString("imageAtomicOr").unmangledNameHash());
     ASSERT_EQ(0x00000034u, ImmutableString("imageAtomicXor").unmangledNameHash());
     ASSERT_EQ(0x000000cbu, ImmutableString("imageAtomicExchange").unmangledNameHash());
     ASSERT_EQ(0x00000003u, ImmutableString("imageAtomicCompSwap").unmangledNameHash());
     ASSERT_EQ(0x00000037u, ImmutableString("imageLoad").unmangledNameHash());
-    ASSERT_EQ(0x00000068u, ImmutableString("imageStore").unmangledNameHash());
-    ASSERT_EQ(0x00000083u, ImmutableString("noise1").unmangledNameHash());
-    ASSERT_EQ(0x00000086u, ImmutableString("noise2").unmangledNameHash());
+    ASSERT_EQ(0x00000067u, ImmutableString("imageStore").unmangledNameHash());
+    ASSERT_EQ(0x00000082u, ImmutableString("noise1").unmangledNameHash());
+    ASSERT_EQ(0x00000085u, ImmutableString("noise2").unmangledNameHash());
     ASSERT_EQ(0x000000c3u, ImmutableString("noise3").unmangledNameHash());
     ASSERT_EQ(0x000000bdu, ImmutableString("noise4").unmangledNameHash());
-    ASSERT_EQ(0x00000089u, ImmutableString("memoryBarrier").unmangledNameHash());
+    ASSERT_EQ(0x00000088u, ImmutableString("memoryBarrier").unmangledNameHash());
     ASSERT_EQ(0x00000019u, ImmutableString("memoryBarrierAtomicCounter").unmangledNameHash());
-    ASSERT_EQ(0x00000095u, ImmutableString("memoryBarrierBuffer").unmangledNameHash());
+    ASSERT_EQ(0x00000094u, ImmutableString("memoryBarrierBuffer").unmangledNameHash());
     ASSERT_EQ(0x0000000bu, ImmutableString("memoryBarrierImage").unmangledNameHash());
     ASSERT_EQ(0x00000049u, ImmutableString("barrier").unmangledNameHash());
     ASSERT_EQ(0x0000003du, ImmutableString("memoryBarrierShared").unmangledNameHash());
     ASSERT_EQ(0x000000c9u, ImmutableString("groupMemoryBarrier").unmangledNameHash());
-    ASSERT_EQ(0x00000073u, ImmutableString("EmitVertex").unmangledNameHash());
+    ASSERT_EQ(0x00000072u, ImmutableString("EmitVertex").unmangledNameHash());
     ASSERT_EQ(0x000000bbu, ImmutableString("EndPrimitive").unmangledNameHash());
     ASSERT_EQ(0x00000054u, ImmutableString("EmitStreamVertex").unmangledNameHash());
-    ASSERT_EQ(0x00000077u, ImmutableString("EndStreamPrimitive").unmangledNameHash());
+    ASSERT_EQ(0x00000076u, ImmutableString("EndStreamPrimitive").unmangledNameHash());
     ASSERT_EQ(0x00000044u, ImmutableString("subpassLoad").unmangledNameHash());
-    ASSERT_EQ(0x000000aau, ImmutableString("anyInvocation").unmangledNameHash());
+    ASSERT_EQ(0x000000a9u, ImmutableString("anyInvocation").unmangledNameHash());
     ASSERT_EQ(0x00000042u, ImmutableString("allInvocations").unmangledNameHash());
     ASSERT_EQ(0x000000adu, ImmutableString("allInvocationsEqual").unmangledNameHash());
 }
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 ddbf442..e6e65ef 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
@@ -19,10 +19,11 @@
 #include "common/debug.h"
 #include "common/platform.h"
 #include "common/string_utils.h"
+#include "common/system_utils.h"
 #include "platform/Platform.h"
 #include "tests/test_expectations/GPUTestConfig.h"
 #include "tests/test_expectations/GPUTestExpectationsParser.h"
-#include "util/system_utils.h"
+#include "util/test_utils.h"
 
 namespace angle
 {
@@ -90,15 +91,19 @@
 
 using APIInfo = std::pair<const char *, GPUTestConfig::API>;
 
-const APIInfo gEGLDisplayAPIs[] = {
-    {"angle-d3d9", GPUTestConfig::kAPID3D9},    {"angle-d3d11", GPUTestConfig::kAPID3D11},
-    {"angle-gl", GPUTestConfig::kAPIGLDesktop}, {"angle-gles", GPUTestConfig::kAPIGLES},
-    {"angle-null", GPUTestConfig::kAPIUnknown}, {"angle-vulkan", GPUTestConfig::kAPIVulkan},
+constexpr APIInfo kEGLDisplayAPIs[] = {
+    {"angle-d3d9", GPUTestConfig::kAPID3D9},
+    {"angle-d3d11", GPUTestConfig::kAPID3D11},
+    {"angle-gl", GPUTestConfig::kAPIGLDesktop},
+    {"angle-gles", GPUTestConfig::kAPIGLES},
+    {"angle-null", GPUTestConfig::kAPIUnknown},
+    {"angle-vulkan", GPUTestConfig::kAPIVulkan},
+    {"angle-swiftshader", GPUTestConfig::kAPISwiftShader},
 };
 
-const char *gdEQPEGLString  = "--deqp-egl-display-type=";
-const char *gANGLEEGLString = "--use-angle=";
-const char *gdEQPCaseString = "--deqp-case=";
+constexpr char kdEQPEGLString[]  = "--deqp-egl-display-type=";
+constexpr char kANGLEEGLString[] = "--use-angle=";
+constexpr char kdEQPCaseString[] = "--deqp-case=";
 
 std::array<char, 500> gCaseStringBuffer;
 
@@ -125,7 +130,7 @@
 
 const APIInfo *FindAPIInfo(const std::string &arg)
 {
-    for (auto &displayAPI : gEGLDisplayAPIs)
+    for (auto &displayAPI : kEGLDisplayAPIs)
     {
         if (arg == displayAPI.first)
         {
@@ -487,7 +492,7 @@
 
     // Add init api.
     const char *targetApi    = gInitAPI ? gInitAPI->first : GetDefaultAPIName();
-    std::string apiArgString = std::string(gdEQPEGLString) + targetApi;
+    std::string apiArgString = std::string(kdEQPEGLString) + targetApi;
     argv.push_back(apiArgString.c_str());
 
     // Add config name
@@ -616,14 +621,14 @@
     int argIndex = 0;
     while (argIndex < *argc)
     {
-        if (strncmp(argv[argIndex], gdEQPEGLString, strlen(gdEQPEGLString)) == 0)
+        if (strncmp(argv[argIndex], kdEQPEGLString, strlen(kdEQPEGLString)) == 0)
         {
-            HandleDisplayType(argv[argIndex] + strlen(gdEQPEGLString));
+            HandleDisplayType(argv[argIndex] + strlen(kdEQPEGLString));
             DeleteArg(argc, argIndex, argv);
         }
-        else if (strncmp(argv[argIndex], gANGLEEGLString, strlen(gANGLEEGLString)) == 0)
+        else if (strncmp(argv[argIndex], kANGLEEGLString, strlen(kANGLEEGLString)) == 0)
         {
-            HandleDisplayType(argv[argIndex] + strlen(gANGLEEGLString));
+            HandleDisplayType(argv[argIndex] + strlen(kANGLEEGLString));
             DeleteArg(argc, argIndex, argv);
         }
         else if (strncmp(argv[argIndex], gdEQPEGLConfigNameString,
@@ -632,9 +637,9 @@
             HandleEGLConfigName(argv[argIndex] + strlen(gdEQPEGLConfigNameString));
             DeleteArg(argc, argIndex, argv);
         }
-        else if (strncmp(argv[argIndex], gdEQPCaseString, strlen(gdEQPCaseString)) == 0)
+        else if (strncmp(argv[argIndex], kdEQPCaseString, strlen(kdEQPCaseString)) == 0)
         {
-            HandleCaseName(argv[argIndex] + strlen(gdEQPCaseString), argc, argIndex, argv);
+            HandleCaseName(argv[argIndex] + strlen(kdEQPCaseString), argc, argIndex, argv);
             argIndex++;
         }
         else
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 6222eb0..ea9f09b 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
@@ -10,6 +10,7 @@
 
 #include "angle_deqp_libtester.h"
 #include "common/angleutils.h"
+#include "common/system_utils.h"
 #include "deMath.h"
 #include "deUniquePtr.hpp"
 #include "platform/Platform.h"
@@ -20,7 +21,6 @@
 #include "tcuRandomOrderExecutor.h"
 #include "tcuResource.hpp"
 #include "tcuTestLog.hpp"
-#include "util/system_utils.h"
 
 tcu::Platform *CreateANGLEPlatform(angle::LogErrorFunc logErrorFunc);
 
diff --git a/Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_egl_TestExpectations b/Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_egl_TestExpectations
deleted file mode 100644
index 40d3696..0000000
--- a/Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_egl_TestExpectations
+++ /dev/null
@@ -1,239 +0,0 @@
-// 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 PIXEL2
-//  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
-
-// ANGLE does not yet support multithreading
-1340 : dEQP-EGL.functional.sharing.gles2.multithread.* = SKIP
-1340 : dEQP-EGL.functional.multithread.* = SKIP
-1340 : dEQP-EGL.functional.render.multi_thread.* = SKIP
-
-// 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.color_clears.multi_thread.gles2.other = FAIL
-1662 WIN : dEQP-EGL.functional.color_clears.multi_thread.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.render.multi_thread.gles2.other = FAIL
-1662 WIN : dEQP-EGL.functional.render.multi_thread.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.color_clears.multi_thread.* = FAIL
-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.multi_thread.* = SKIP
-2546 LINUX : dEQP-EGL.functional.color_clears.multi_thread.gles1_gles2.rgba8888_pixmap = SKIP
-2546 LINUX : dEQP-EGL.functional.color_clears.multi_thread.gles1_gles2_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.color_clears.multi_thread.* = SKIP
-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.multi_thread.* = 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.query_context.get_current_context.* = SKIP
-2546 ANDROID : dEQP-EGL.functional.query_context.get_current_display.* = SKIP
-2546 ANDROID : dEQP-EGL.functional.query_context.get_current_surface.r* = FAIL
-2546 ANDROID : dEQP-EGL.functional.query_context.query_context.* = SKIP
-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
diff --git a/Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_gles2_TestExpectations b/Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_gles2_TestExpectations
deleted file mode 100644
index d36d016..0000000
--- a/Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_gles2_TestExpectations
+++ /dev/null
@@ -1,385 +0,0 @@
-// 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 PIXEL2
-//  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.
-//
-////////////////////////////////////////////////////////////////////////////////
-
-// dEQP bugs
-1028 : dEQP-GLES2.functional.fbo.completeness.renderable.texture.color0.srgb8 = FAIL
-1028 : dEQP-GLES2.functional.fbo.completeness.renderable.texture.stencil.srgb8 = FAIL
-1028 : dEQP-GLES2.functional.fbo.completeness.renderable.texture.depth.srgb8 = FAIL
-
-// 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
-
-// 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
-2830 VULKAN ANDROID : dEQP-GLES2.functional.clipping.line.long_line_clip = 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
\ No newline at end of file
diff --git a/Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_gles31_TestExpectations b/Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_gles31_TestExpectations
deleted file mode 100644
index c0c39ca..0000000
--- a/Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_gles31_TestExpectations
+++ /dev/null
@@ -1,751 +0,0 @@
-// 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 PIXEL2
-//  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
-
-// 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
-
-// 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/Vulkan Failing Tests
-3865 : dEQP-GLES31.functional.compute.basic.copy_image_to_ssbo_large = FAIL
-3865 : dEQP-GLES31.functional.compute.basic.copy_ssbo_to_image_large = FAIL
-1442 : dEQP-GLES31.functional.shaders.opaque_type_indexing.* = FAIL
-1442 : dEQP-GLES31.functional.shaders.helper_invocation.* = FAIL
-1442 : dEQP-GLES31.functional.state_query.integer.program_pipeline_binding_* = FAIL
-1442 : dEQP-GLES31.functional.state_query.program.program_separable_get_programiv = FAIL
-1442 : dEQP-GLES31.functional.state_query.program_pipeline.* = FAIL
-1442 : dEQP-GLES31.functional.synchronization.inter_call.without_memory_barrier.atomic_counter_dispatch_100_calls_1k_invocations = FAIL
-1442 : dEQP-GLES31.functional.separate_shader.* = FAIL
-1442 : dEQP-GLES31.functional.debug.error_filters.case_11 = FAIL
-1442 : dEQP-GLES31.functional.debug.error_groups.case_11 = FAIL
-1442 : dEQP-GLES31.functional.debug.negative_coverage.callbacks.buffer.bind_buffer_range = FAIL
-1442 : dEQP-GLES31.functional.debug.negative_coverage.callbacks.shader.compile_compute_shader = SKIP
-1442 : dEQP-GLES31.functional.debug.negative_coverage.callbacks.shader_directive.primitive_bounding_box = FAIL
-1442 : dEQP-GLES31.functional.debug.negative_coverage.callbacks.shader_directive.tessellation_shader = FAIL
-1442 : dEQP-GLES31.functional.debug.negative_coverage.log.buffer.bind_buffer_range = FAIL
-1442 : dEQP-GLES31.functional.debug.negative_coverage.log.shader.compile_compute_shader = SKIP
-1442 : dEQP-GLES31.functional.debug.negative_coverage.log.shader_directive.primitive_bounding_box = FAIL
-1442 : dEQP-GLES31.functional.debug.negative_coverage.log.shader_directive.tessellation_shader = FAIL
-1442 : dEQP-GLES31.functional.debug.negative_coverage.get_error.buffer.bind_buffer_range = FAIL
-1442 : dEQP-GLES31.functional.debug.negative_coverage.get_error.buffer.read_pixels_format_mismatch = FAIL
-1442 : dEQP-GLES31.functional.debug.negative_coverage.get_error.buffer.framebuffer_texture2d = FAIL
-1442 : dEQP-GLES31.functional.debug.negative_coverage.get_error.texture.copyteximage2d_invalid_format = FAIL
-1442 : dEQP-GLES31.functional.debug.negative_coverage.get_error.texture.copyteximage2d_inequal_width_height_cube = FAIL
-1442 : dEQP-GLES31.functional.debug.negative_coverage.get_error.texture.copyteximage2d_max_width_height = FAIL
-1442 : dEQP-GLES31.functional.debug.negative_coverage.get_error.texture.copytexsubimage2d_invalid_offset = FAIL
-1442 : dEQP-GLES31.functional.debug.negative_coverage.get_error.texture.compressedtexsubimage2d = FAIL
-1442 : dEQP-GLES31.functional.debug.negative_coverage.get_error.texture.compressedtexsubimage2d_invalid_size = FAIL
-1442 : dEQP-GLES31.functional.debug.negative_coverage.get_error.texture.texsubimage3d_neg_level = FAIL
-1442 : dEQP-GLES31.functional.debug.negative_coverage.get_error.texture.texsubimage3d_neg_offset = FAIL
-1442 : dEQP-GLES31.functional.debug.negative_coverage.get_error.texture.copytexsubimage3d_invalid_offset = FAIL
-1442 : dEQP-GLES31.functional.debug.negative_coverage.get_error.texture.compressedtexsubimage3d = FAIL
-1442 : dEQP-GLES31.functional.debug.negative_coverage.get_error.texture.compressedtexsubimage3d_invalid_buffer_target = FAIL
-1442 : dEQP-GLES31.functional.debug.negative_coverage.get_error.shader.compile_compute_shader = SKIP
-1442 : dEQP-GLES31.functional.debug.negative_coverage.get_error.vertex_array.draw_range_elements = FAIL
-1442 : dEQP-GLES31.functional.debug.negative_coverage.get_error.vertex_array.draw_range_elements_incomplete_primitive = FAIL
-1442 : dEQP-GLES31.functional.debug.negative_coverage.get_error.shader_directive.primitive_bounding_box = FAIL
-1442 : dEQP-GLES31.functional.debug.negative_coverage.get_error.shader_directive.tessellation_shader = FAIL
-1442 : dEQP-GLES31.functional.debug.object_labels.program_pipeline = 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.shader_storage.block_number_limits = FAIL
-2324 : dEQP-GLES31.functional.debug.negative_coverage.log.shader_storage.block_number_limits = FAIL
-2324 : dEQP-GLES31.functional.debug.negative_coverage.callbacks.shader_storage.block_number_limits = 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
-
-// Debug:
-3520 VULKAN ANDROID : dEQP-GLES31.functional.debug.negative_coverage.get_error.texture.texparameterf = FAIL
-3520 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!)
-3882 VULKAN ANDROID : dEQP-GLES31.functional.uniform_location.nested_array.*sampler* = FAIL
-
-// General Vulkan failures
-
-// Limits:
-// MAX_FRAMEBUFFER_SAMPLES is 0
-3520 VULKAN : dEQP-GLES31.functional.state_query.integer.max_framebuffer_samples* = FAIL
-// MAX_UNIFORM_LOCATIONS is 0
-3520 VULKAN : dEQP-GLES31.functional.state_query.integer.max_uniform_locations* = FAIL
-
-// Front-end query bugs:
-3520 VULKAN : dEQP-GLES31.functional.program_interface_query.buffer_limited_query.resource_query = FAIL
-3520 VULKAN : dEQP-GLES31.functional.program_interface_query.program_input.resource_list.compute.empty = FAIL
-3520 VULKAN : dEQP-GLES31.functional.program_interface_query.shader_storage_block.buffer_data_size.* = FAIL
-
-// Shader support:
-3569 VULKAN : dEQP-GLES31.functional.shaders.builtin_functions.common.frexp.* = FAIL
-3569 VULKAN : dEQP-GLES31.functional.shaders.builtin_functions.common.ldexp.* = FAIL
-3569 VULKAN : dEQP-GLES31.functional.shaders.builtin_functions.pack_unpack.* = FAIL
-3569 VULKAN : dEQP-GLES31.functional.shaders.builtin_functions.integer.* = FAIL
-3569 VULKAN : dEQP-GLES31.functional.shaders.builtin_functions.uniform.* = FAIL
-3569 VULKAN : dEQP-GLES31.functional.shaders.builtin_functions.texture_size.* = SKIP
-3569 VULKAN : dEQP-GLES31.functional.shaders.builtin_functions.precision.frexp* = FAIL
-3569 VULKAN : dEQP-GLES31.functional.shaders.builtin_functions.precision.ldexp* = FAIL
-3569 VULKAN : dEQP-GLES31.functional.shaders.functions* = FAIL
-3569 VULKAN : dEQP-GLES31.functional.shaders.linkage*uniform* = FAIL
-3569 VULKAN : dEQP-GLES31.functional.shaders.builtin_constants.core.min_program_texel_offset = FAIL
-3569 VULKAN : dEQP-GLES31.functional.shaders.uniform_block.es31.valid.* = FAIL
-
-// SSBO and Image qualifiers:
-3602 VULKAN : dEQP-GLES31.functional.synchronization.in_invocation.ssbo_alias_overwrite = FAIL
-
-// Struct referenced by:
-3596 VULKAN : dEQP-GLES31.functional.program_interface_query.uniform.referenced_by_shader.compute.uniform_block.float_*struct* = FAIL
-3596 VULKAN : dEQP-GLES31.functional.program_interface_query.uniform.referenced_by_shader.compute.block_array.float_struct = FAIL
-3596 VULKAN : dEQP-GLES31.functional.program_interface_query.uniform.referenced_by_shader.separable_vertex.uniform_block.float_*struct* = FAIL
-3596 VULKAN : dEQP-GLES31.functional.program_interface_query.uniform.referenced_by_shader.separable_vertex.block_array.float_struct = FAIL
-3596 VULKAN : dEQP-GLES31.functional.program_interface_query.uniform.referenced_by_shader.vertex_fragment.uniform_block.float_struct = FAIL
-3596 VULKAN : dEQP-GLES31.functional.program_interface_query.uniform.referenced_by_shader.vertex_fragment.block_array.float_struct = FAIL
-3596 VULKAN : dEQP-GLES31.functional.program_interface_query.uniform.referenced_by_shader.vertex_fragment_only_vertex.uniform_block.float_struct = FAIL
-3596 VULKAN : dEQP-GLES31.functional.program_interface_query.uniform.referenced_by_shader.vertex_fragment_only_vertex.block_array.float_struct = FAIL
-3596 VULKAN : dEQP-GLES31.functional.program_interface_query.uniform.referenced_by_shader.vertex_fragment_only_fragment.uniform_block.float_struct = FAIL
-3596 VULKAN : dEQP-GLES31.functional.program_interface_query.uniform.referenced_by_shader.vertex_fragment_only_fragment.block_array.float_struct = FAIL
-3596 VULKAN : dEQP-GLES31.functional.program_interface_query.buffer_variable.referenced_by.compute.named_block.float_*struct* = FAIL
-3596 VULKAN : dEQP-GLES31.functional.program_interface_query.buffer_variable.referenced_by.compute.block_array.float_struct = FAIL
-3596 VULKAN : dEQP-GLES31.functional.program_interface_query.buffer_variable.referenced_by.separable_vertex.named_block.float_*struct* = FAIL
-3596 VULKAN : dEQP-GLES31.functional.program_interface_query.buffer_variable.referenced_by.separable_vertex.named_block.float_array_struct = FAIL
-3596 VULKAN : dEQP-GLES31.functional.program_interface_query.buffer_variable.referenced_by.separable_vertex.named_block.float_struct_array = FAIL
-3596 VULKAN : dEQP-GLES31.functional.program_interface_query.buffer_variable.referenced_by.separable_vertex.named_block.float_struct_struct = FAIL
-3596 VULKAN : dEQP-GLES31.functional.program_interface_query.buffer_variable.referenced_by.separable_vertex.named_block.float_unsized_struct_array = FAIL
-3596 VULKAN : dEQP-GLES31.functional.program_interface_query.buffer_variable.referenced_by.separable_vertex.block_array.float_struct = FAIL
-3596 VULKAN : dEQP-GLES31.functional.program_interface_query.buffer_variable.referenced_by.vertex_fragment.named_block.float_struct = FAIL
-3596 VULKAN : dEQP-GLES31.functional.program_interface_query.buffer_variable.referenced_by.vertex_fragment.block_array.float_struct = FAIL
-3596 VULKAN : dEQP-GLES31.functional.program_interface_query.buffer_variable.referenced_by.vertex_fragment_only_vertex.named_block.float_struct = FAIL
-3596 VULKAN : dEQP-GLES31.functional.program_interface_query.buffer_variable.referenced_by.vertex_fragment_only_vertex.block_array.float_struct = FAIL
-3596 VULKAN : dEQP-GLES31.functional.program_interface_query.buffer_variable.referenced_by.vertex_fragment_only_fragment.named_block.float_struct = FAIL
-3596 VULKAN : dEQP-GLES31.functional.program_interface_query.buffer_variable.referenced_by.vertex_fragment_only_fragment.block_array.float_struct = FAIL
-3596 VULKAN : dEQP-GLES31.functional.program_interface_query.*random* = FAIL
-3596 VULKAN : dEQP-GLES31.functional.program_interface_query.uniform.referenced_by_shader.separable_fragment.uniform_block.*struct* = FAIL
-3596 VULKAN : dEQP-GLES31.functional.program_interface_query.uniform.referenced_by_shader.separable_fragment.block_array.float_struct = FAIL
-3596 VULKAN : dEQP-GLES31.functional.program_interface_query.program_input.resource_list.separable_fragment.* = FAIL
-3596 VULKAN : dEQP-GLES31.functional.program_interface_query.program_input.array_size.separable_fragment.* = FAIL
-3596 VULKAN : dEQP-GLES31.functional.program_interface_query.program_input.location.separable_fragment.var* = FAIL
-3596 VULKAN : dEQP-GLES31.functional.program_interface_query.program_input.name_length.separable_fragment.var* = FAIL
-3596 VULKAN : dEQP-GLES31.functional.program_interface_query.program_input.type.separable_fragment.* = FAIL
-3596 VULKAN : dEQP-GLES31.functional.program_interface_query.buffer_variable.referenced_by.separable_fragment.named_block.float*struct* = FAIL
-3596 VULKAN : dEQP-GLES31.functional.program_interface_query.buffer_variable.referenced_by.separable_fragment.block_array.float_struct = FAIL
-
-// Separate shader objects:
-3570 VULKAN : dEQP-GLES31.functional.program_interface_query.program_input.referenced_by.referenced_by_separable_fragment = FAIL
-3570 VULKAN : dEQP-GLES31.functional.program_interface_query.program_input.referenced_by.referenced_by_vertex_fragment = SKIP
-3570 VULKAN : dEQP-GLES31.functional.program_interface_query.program_output.resource_list.separable_vertex.* = FAIL
-3570 VULKAN : dEQP-GLES31.functional.program_interface_query.program_output.array_size.separable_vertex.var* = FAIL
-3570 VULKAN : dEQP-GLES31.functional.program_interface_query.program_output.location.separable_vertex.var* = FAIL
-3570 VULKAN : dEQP-GLES31.functional.program_interface_query.program_output.name_length.separable_vertex.var* = FAIL
-3570 VULKAN : dEQP-GLES31.functional.program_interface_query.program_output.referenced_by.referenced_by_separable_vertex = FAIL
-3570 VULKAN : dEQP-GLES31.functional.program_interface_query.program_output.referenced_by.referenced_by_vertex_fragment = SKIP
-3570 VULKAN : dEQP-GLES31.functional.program_interface_query.program_output.type.separable_vertex.basic_type.* = FAIL
-3570 VULKAN : dEQP-GLES31.functional.program_interface_query.program_output.type.separable_vertex.array.* = FAIL
-3570 VULKAN : dEQP-GLES31.functional.program_interface_query.program_output.type.separable_vertex.struct.* = FAIL
-3570 VULKAN : dEQP-GLES31.functional.program_interface_query.uniform.random.* = FAIL
-
-// Block name matching failure:
-3459 VULKAN : dEQP-GLES31.functional.shaders.linkage.es31.shader_storage_block.mismatch_with_and_without_instance_name = FAIL
-
-// Indirect draw:
-3564 VULKAN : dEQP-GLES31.functional.draw_indirect.* = SKIP
-
-// 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.* = SKIP
-3590 VULKAN : dEQP-GLES31.functional.debug.error_groups.case_14 = SKIP
-
-// Stencil textures (some missing support for base level):
-3683 VULKAN PIXEL2 : dEQP-GLES31.functional.stencil_texturing.format.* = FAIL
-3683 VULKAN PIXEL2 : dEQP-GLES31.functional.stencil_texturing.misc.compare_mode_effect = FAIL
-3148 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
-
-// Base texture level:
-3148 VULKAN : dEQP-GLES31.functional.texture.gather.*base_level* = SKIP
-
-// 2D array textures:
-3189 VULKAN : dEQP-GLES31.functional.texture.gather.*2d_array* = SKIP
-3189 VULKAN : dEQP-GLES31.functional.state_query.*2d_array* = SKIP
-
-// Compressed integer textures:
-3520 VULKAN : dEQP-GLES31.functional.state_query.texture_level.texture_2d.compressed_integer = SKIP
-3520 VULKAN : dEQP-GLES31.functional.state_query.texture_level.texture_2d.compressed_float = 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
-
-// Validation errors:
-// Optimal tiling not supported for format:
-3520 VULKAN : dEQP-GLES31.functional.state_query.texture_level.texture* = SKIP
diff --git a/Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_gles3_TestExpectations b/Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_gles3_TestExpectations
deleted file mode 100644
index c09aad5..0000000
--- a/Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_gles3_TestExpectations
+++ /dev/null
@@ -1,619 +0,0 @@
-// 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 PIXEL2
-//  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
-
-// Figure out why this caused this regression in Chrome:
-// https://bugs.chromium.org/p/chromium/issues/detail?id=833809#
-2321 : dEQP-GLES3.functional.state_query.fbo.framebuffer_unspecified_attachment_x_size_rbo = FAIL
-
-// 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
-
-// Failing everywhere
-2322 : dEQP-GLES3.functional.shaders.metamorphic.* = 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
-
-// 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
-
-// Limits:
-// Nvidia doesn't support the necessary compressed formats
-3676 NVIDIA VULKAN : dEQP-GLES3.functional.implementation_limits.compressed_texture_formats = FAIL
-// MAX_FRAGMENT_INPUT_COMPONENTS is 0
-3676 VULKAN : dEQP-GLES3.functional.state_query.integers.max_fragment_input_components_get* = FAIL
-
-// Formats:
-3677 ANDROID VULKAN : dEQP-GLES3.functional.fbo.completeness.renderable.renderbuffer.color0.rgba32f = FAIL
-3677 ANDROID VULKAN : dEQP-GLES3.functional.fbo.completeness.renderable.texture.color0.rgba32f = FAIL
-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
-
-// Depth/Stencil textures:
-2905 VULKAN : dEQP-GLES3.functional.fbo.depth.depth_write_clamp.depth_component32f = FAIL
-2905 VULKAN : dEQP-GLES3.functional.fbo.depth.depth_write_clamp.depth32f_stencil8 = FAIL
-2905 VULKAN : dEQP-GLES3.functional.fbo.depth.depth_test_clamp.depth_component32f = FAIL
-2905 VULKAN : dEQP-GLES3.functional.fbo.depth.depth_test_clamp.depth32f_stencil8 = FAIL
-2905 VULKAN : dEQP-GLES3.functional.texture.format.sized.*.depth32f_stencil8* = FAIL
-
-// Shader support:
-3219 VULKAN : dEQP-GLES3.functional.negative_api.shader.link_program = FAIL
-3219 VULKAN : dEQP-GLES3.functional.negative_api.shader.use_program = FAIL
-
-2672 VULKAN : dEQP-GLES3.functional.instanced.draw_elements_instanced.attribute_divisor.2*_instances = FAIL
-2672 VULKAN : dEQP-GLES3.functional.instanced.draw_elements_instanced.attribute_divisor.4_instances = FAIL
-2672 VULKAN : dEQP-GLES3.functional.instanced.draw_elements_instanced.mixed.2*_instances = FAIL
-2672 VULKAN : dEQP-GLES3.functional.instanced.draw_elements_instanced.mixed.4_instances = FAIL
-2672 VULKAN : dEQP-GLES3.functional.instanced.draw_arrays_instanced.attribute_divisor.2*_instances = FAIL
-2672 VULKAN : dEQP-GLES3.functional.instanced.draw_arrays_instanced.attribute_divisor.4_instances = FAIL
-2672 VULKAN : dEQP-GLES3.functional.instanced.draw_arrays_instanced.mixed.2*_instances = FAIL
-2672 VULKAN : dEQP-GLES3.functional.instanced.draw_arrays_instanced.mixed.4_instances = FAIL
-2672 VULKAN : dEQP-GLES3.functional.instanced.types* = FAIL
-
-// Polygon offset:
-3678 VULKAN : dEQP-GLES3.functional.polygon_offset.float32_result_depth_clamp = FAIL
-3678 VULKAN : dEQP-GLES3.functional.polygon_offset.float32_factor_1_slope = FAIL
-
-// Flat shading:
-3430 VULKAN : dEQP-GLES3.functional.rasterization.flatshading.* = FAIL
-3430 VULKAN : dEQP-GLES3.functional.shaders.linkage.varying.basic_types.u* = FAIL
-3430 VULKAN : dEQP-GLES3.functional.shaders.linkage.varying.struct.u* = FAIL
-3430 VULKAN : dEQP-GLES3.functional.shaders.linkage.varying.struct.float_uvec2_vec3 = FAIL
-
-// Instanced rendering:
-2672 VULKAN : dEQP-GLES3.functional.draw.draw_arrays_instanced.line_loop.* = SKIP
-2672 VULKAN : dEQP-GLES3.functional.draw.draw_elements_instanced.line_loop.* = SKIP
-2672 VULKAN : dEQP-GLES3.functional.draw.random.* = SKIP
-
-// Fails after OpenGL line rasterization rules implementation. Possibly a bug in FragCoord.
-2830 VULKAN ANDROID : dEQP-GLES3.functional.clipping.line.long_line_clip = FAIL
-
-// Base/Max levels:
-3148 VULKAN : dEQP-GLES3.functional.state_query.texture.texture_2d_texture_base_level_gettexparameter* = SKIP
-3148 VULKAN : dEQP-GLES3.functional.state_query.texture.texture_3d_texture_base_level_gettexparameter* = SKIP
-3148 VULKAN : dEQP-GLES3.functional.state_query.texture.texture_2d_array_texture_base_level_gettexparameter* = SKIP
-3148 VULKAN : dEQP-GLES3.functional.state_query.texture.texture_cube_map_texture_base_level_gettexparameter* = SKIP
-3148 VULKAN : dEQP-GLES3.functional.texture.mipmap.*base_level* = SKIP
-3148 VULKAN : dEQP-GLES3.functional.texture.mipmap.*max_level* = FAIL
-3148 VULKAN : dEQP-GLES3.functional.shaders.texture_functions.texturesize.* = SKIP
-
-// Misc unimplemented:
-
-// - Primitive restart with line loops:
-2672 VULKAN : dEQP-GLES3.functional.primitive_restart.*.line_loop.*instanced = SKIP
-
-// 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
-3544 ANDROID VULKAN : dEQP-GLES3.functional.buffer.copy.basic.* = SKIP
-3544 ANDROID VULKAN : dEQP-GLES3.functional.buffer.copy.subrange.* = SKIP
-
-// Fixed in later driver versions.
-2727 VULKAN ANDROID : dEQP-GLES3.functional.shaders.builtin_variable.pointcoord = 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
deleted file mode 100644
index 9efdc31..0000000
--- a/Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_khr_gles2_TestExpectations
+++ /dev/null
@@ -1,51 +0,0 @@
-// 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 PIXEL2
-//  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
-
-// Test bug, use of sized internal format. Passes with patch from bug.
-3797 VULKAN : KHR-GLES2.texture_3d.framebuffer_texture.rgba8 = SKIP
-
-// GL_RGBA8 is not supported in GLES2
-// GL_OES_rgb8_rgba8 only enables GL_RGBA8 for render buffers (not textures)
-3797 VULKAN : KHR-GLES2.texture_3d.copy_sub_image.rgba8 = FAIL
-
-// Compressed texture tests on Android
-3190 VULKAN PIXEL2 : KHR-GLES2.texture_3d.compressed_texture.rgba_astc_* = SKIP
-3190 VULKAN PIXEL2 : KHR-GLES2.texture_3d.compressed_texture.sgb8_alpha8_astc_* = SKIP
-3190 VULKAN PIXEL2 : KHR-GLES2.texture_3d.compressed_texture.srgb8_alpha8_astc_* = SKIP
-
-// Bug in dEQP uses an incorrect enum (GL_HALF_FLOAT instead of GL_HALF_FLOAT_OES)
-3451 : KHR-GLES2.core.internalformat.texture2d.rgb_half_float_rgb16f = FAIL
-3451 : KHR-GLES2.core.internalformat.texture2d.rgba_half_float_rgba16f = FAIL
-3451 : KHR-GLES2.core.internalformat.texture2d.rgb_half_float_rgb16f_linear = FAIL
-3451 : KHR-GLES2.core.internalformat.texture2d.rgba_half_float_rgba16f_linear = 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
deleted file mode 100644
index a050cb8..0000000
--- a/Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_khr_gles31_TestExpectations
+++ /dev/null
@@ -1,148 +0,0 @@
-// 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 PIXEL2
-//  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 textures:
-3189 VULKAN : KHR-GLES31.core.texture_gather*2darray = SKIP
-3189 VULKAN : KHR-GLES31.core.layout_binding.sampler2DArray_* = SKIP
-
-// 3D textures:
-3188 VULKAN : KHR-GLES31.core.layout_binding.sampler3D_* = SKIP
-
-// Base texture level:
-3184 VULKAN : KHR-GLES31.core.texture*base-level* = 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
-
-// RGBA32F:
-3520 VULKAN : KHR-GLES31.core.texture_gather.*-gather-float-2d-rgb = SKIP
-
-// Separate shader objects:
-3570 VULKAN : KHR-GLES31.core.sepshaderobjs* = FAIL
-
-// Shader support:
-3569 VULKAN : KHR-GLES31.core.shader_integer_mix.* = FAIL
-3569 VULKAN : KHR-GLES31.core.shader_image* = SKIP
-3569 VULKAN : KHR-GLES31.core.shader_macros* = FAIL
-3569 VULKAN : KHR-GLES31.core.shader_bitfield_operation.frexp.* = SKIP
-3569 VULKAN : KHR-GLES31.core.shader_bitfield_operation.uaddCarry.* = SKIP
-3569 VULKAN : KHR-GLES31.core.shader_bitfield_operation.usubBorrow.* = SKIP
-3569 VULKAN : KHR-GLES31.core.shader_bitfield_operation.umulExtended.* = SKIP
-3569 VULKAN : KHR-GLES31.core.shader_bitfield_operation.imulExtended.* = SKIP
-/// Crash due to missing unsupported check in dEQP
-3571 VULKAN : KHR-GLES31.core.shader_macros*_geometry = SKIP
-3571 VULKAN : KHR-GLES31.core.shader_macros*_tess_control = SKIP
-3571 VULKAN : KHR-GLES31.core.shader_macros*_tess_eval = SKIP
-3571 VULKAN : KHR-GLES31.core.constant_expressions.*geometry = SKIP
-3571 VULKAN : KHR-GLES31.core.constant_expressions.*tess_control = SKIP
-3571 VULKAN : KHR-GLES31.core.constant_expressions.*tess_eval = SKIP
-
-3520 VULKAN : KHR-GLES31.core.vertex_attrib_binding* = SKIP
-3520 VULKAN : KHR-GLES31.core.internalformat.texture2d.* = FAIL
-
-// Crashes in libnvidia-glvkspirv.so, fixed in newer drivers
-3561 VULKAN NVIDIA : KHR-GLES31.core.shader_storage_buffer_object.advanced-unsizedArrayLength-cs-*-matC* = SKIP
-3561 VULKAN NVIDIA : KHR-GLES31.core.shader_storage_buffer_object.advanced-unsizedArrayLength-vs-*-matC* = SKIP
-3561 VULKAN NVIDIA : KHR-GLES31.core.shader_storage_buffer_object.advanced-unsizedArrayLength-fs-*-matC* = SKIP
-3561 VULKAN NVIDIA : KHR-GLES31.core.shader_storage_buffer_object.advanced-unsizedArrayLength-cs-*-struct* = SKIP
-3561 VULKAN NVIDIA : KHR-GLES31.core.shader_storage_buffer_object.advanced-unsizedArrayLength-vs-*-struct* = SKIP
-3561 VULKAN NVIDIA : KHR-GLES31.core.shader_storage_buffer_object.advanced-unsizedArrayLength-fs-*-struct* = SKIP
-
-// Bug in RewriteRowMajorMatrices with row major SSBO matrix arrays with no size
-3443 VULKAN : KHR-GLES31.core.shader_storage_buffer_object.advanced-unsizedArrayLength-cs-*-matR* = SKIP
-3443 VULKAN : KHR-GLES31.core.shader_storage_buffer_object.advanced-unsizedArrayLength-vs-*-matR* = SKIP
-3443 VULKAN : KHR-GLES31.core.shader_storage_buffer_object.advanced-unsizedArrayLength-fs-*-matR* = SKIP
-
-// Bug with GL_SHADER_STORAGE_BUFFER_START
-3520 VULKAN : KHR-GLES31.core.shader_storage_buffer_object.basic-binding = FAIL
-
-// Unimplemented ValidateCreateShaderProgramv
-3520 VULKAN : KHR-GLES31.core.shader_storage_buffer_object.basic-syntaxSSO = FAIL
-
-// Fails to compile shader
-3520 VULKAN : KHR-GLES31.core.shader_storage_buffer_object.basic-atomic-case3-vsfs = FAIL
-3520 VULKAN : KHR-GLES31.core.shader_storage_buffer_object.basic-atomic-case3-cs = FAIL
-
-// Draw indirect:
-3564 VULKAN : KHR-GLES31.core.draw_indirect.* = SKIP
-
-// Explicit uniform locations:
-3520 VULKAN : KHR-GLES31.core.explicit_uniform_location.* = SKIP
-
-3520 VULKAN : KHR-GLES31.core.program_interface_query.* = SKIP
-
-// Framebuffer without attachments:
-3579 VULKAN : KHR-GLES31.core.framebuffer_no_attachments.api = FAIL
-
-// Expected to fail to compile, but doesn't.
-3520 VULKAN : KHR-GLES31.core.arrays_of_arrays.ExpressionsDynamicIndexing2 = FAIL
-3520 VULKAN : 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)
-3563 VULKAN : KHR-GLES31.core.layout_binding.sampler2D_layout_binding_texture_ComputeShader = SKIP
-3563 VULKAN : KHR-GLES31.core.layout_binding.block_layout_binding_block_ComputeShader = SKIP
-3563 VULKAN : KHR-GLES31.core.layout_binding.buffer_layout_binding_atomicAdd_ComputeShader = SKIP
-3563 VULKAN : KHR-GLES31.core.layout_binding.atomic_uint_layout_binding_atomic_ComputeShader = SKIP
-3563 VULKAN : KHR-GLES31.core.layout_binding.image2D_layout_binding_imageLoad_ComputeShader = SKIP
-3563 VULKAN : KHR-GLES31.core.layout_binding.image2D_layout_binding_imageLoad_FragmentShader = SKIP
-3563 VULKAN : KHR-GLES31.core.layout_binding.image2D_layout_binding_imageLoad_VertexShader = SKIP
-
-3520 VULKAN : KHR-GLES31.core.internalformat.copy_tex_image* = FAIL
-3520 VULKAN : KHR-GLES31.core.internalformat.renderbuffer* = FAIL
-
-3520 VULKAN : KHR-GLES31.shaders.aggressive_optimizations* = FAIL
-
-// 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
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
deleted file mode 100644
index bc101c0..0000000
--- a/Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_khr_gles3_TestExpectations
+++ /dev/null
@@ -1,119 +0,0 @@
-// 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 PIXEL2
-//  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.
-
-// GL_RGB32F framebuffers should not be "complete" (may crash on Android, but only fails elsewhere):
-3695 VULKAN : KHR-GLES3.packed_pixels.rectangle.rgb*32f = FAIL
-3695 VULKAN : KHR-GLES3.packed_pixels.pbo_rectangle.rgb*32f = FAIL
-
-// Depth/stencil related failures.
-3457 VULKAN ANDROID : KHR-GLES3.packed_depth_stencil.*.depth24_stencil8 = FAIL
-3457 VULKAN ANDROID : KHR-GLES3.packed_depth_stencil.*.depth32f_stencil8 = FAIL
-
-// CopyTexImage conversion actually failing the test code.
-3458 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.texture3d_texture2d = FAIL
-3458 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.texture3d_cubemap_negx = FAIL
-3458 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.texture3d_cubemap_negy = FAIL
-3458 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.texture3d_cubemap_negz = FAIL
-3458 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.texture3d_cubemap_posx = FAIL
-3458 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.texture3d_cubemap_posy = FAIL
-3458 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.texture3d_cubemap_posz = 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
-
-// Failing due to Vulkan validation error re: "Number of currently valid memory objects is not less than the maximum allowed" error.
-3818 VULKAN : KHR-GLES3.copy_tex_image_conversions.forbidden.renderbuffer_cubemap_negy = FAIL
-3818 VULKAN : KHR-GLES3.copy_tex_image_conversions.forbidden.renderbuffer_cubemap_negz = FAIL
-3818 VULKAN : KHR-GLES3.copy_tex_image_conversions.forbidden.renderbuffer_cubemap_posx = FAIL
-3818 VULKAN : KHR-GLES3.copy_tex_image_conversions.forbidden.renderbuffer_cubemap_posy = FAIL
-3818 VULKAN : KHR-GLES3.copy_tex_image_conversions.forbidden.renderbuffer_cubemap_posz = FAIL
-
-// Require 3D textures.
-3188 VULKAN : KHR-GLES3.packed_pixels.varied_rectangle.* = SKIP
diff --git a/Source/ThirdParty/ANGLE/src/tests/deqp_support/tcuANGLENativeDisplayFactory.cpp b/Source/ThirdParty/ANGLE/src/tests/deqp_support/tcuANGLENativeDisplayFactory.cpp
index c82a798..6223143 100644
--- a/Source/ThirdParty/ANGLE/src/tests/deqp_support/tcuANGLENativeDisplayFactory.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/deqp_support/tcuANGLENativeDisplayFactory.cpp
@@ -181,6 +181,9 @@
 NativePixmap::NativePixmap(EGLNativeDisplayType display, int width, int height, int bitDepth)
     : eglu::NativePixmap(kBitmapCapabilities), mPixmap(CreateOSPixmap())
 {
+#if (DE_OS != DE_OS_UNIX)
+    throw tcu::NotSupportedError("Pixmap not supported");
+#else
     if (!mPixmap)
     {
         throw ResourceError("Failed to create pixmap", DE_NULL, __FILE__, __LINE__);
@@ -190,6 +193,7 @@
     {
         throw ResourceError("Failed to initialize pixmap", DE_NULL, __FILE__, __LINE__);
     }
+#endif
 }
 
 NativePixmap::~NativePixmap()
diff --git a/Source/ThirdParty/ANGLE/src/tests/deqp_support/tcuANGLEPlatform.cpp b/Source/ThirdParty/ANGLE/src/tests/deqp_support/tcuANGLEPlatform.cpp
index 6b4a25b..de381ee 100644
--- a/Source/ThirdParty/ANGLE/src/tests/deqp_support/tcuANGLEPlatform.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/deqp_support/tcuANGLEPlatform.cpp
@@ -26,7 +26,7 @@
 #include "egluGLContextFactory.hpp"
 #include "tcuANGLENativeDisplayFactory.h"
 #include "tcuNullContextFactory.hpp"
-#include "util/system_utils.h"
+#include "util/test_utils.h"
 
 static_assert(EGL_DONT_CARE == -1, "Unexpected value for EGL_DONT_CARE");
 
@@ -97,6 +97,15 @@
     }
 #endif
 
+#if (DE_OS == DE_OS_WIN32) || (DE_OS == DE_OS_UNIX)
+    {
+        std::vector<eglw::EGLAttrib> swsAttribs = initAttribs(
+            EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE, EGL_PLATFORM_ANGLE_DEVICE_TYPE_SWIFTSHADER_ANGLE);
+        m_nativeDisplayFactoryRegistry.registerFactory(new ANGLENativeDisplayFactory(
+            "angle-swiftshader", "ANGLE SwiftShader Display", swsAttribs, &mEvents));
+    }
+#endif
+
     {
         std::vector<eglw::EGLAttrib> nullAttribs = initAttribs(EGL_PLATFORM_ANGLE_TYPE_NULL_ANGLE);
 
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 b3c0d92..89bd1d8 100644
--- a/Source/ThirdParty/ANGLE/src/tests/deqp_support/tes31Context_override.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/deqp_support/tes31Context_override.cpp
@@ -93,4 +93,4 @@
 } // gles31
 } // deqp
 
-// clang-format on
\ No newline at end of file
+// clang-format on
diff --git a/Source/ThirdParty/ANGLE/src/tests/egl_tests/EGLDeviceCGLTest.cpp b/Source/ThirdParty/ANGLE/src/tests/egl_tests/EGLDeviceCGLTest.cpp
new file mode 100644
index 0000000..5cf8e66
--- /dev/null
+++ b/Source/ThirdParty/ANGLE/src/tests/egl_tests/EGLDeviceCGLTest.cpp
@@ -0,0 +1,75 @@
+//
+// 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.
+//
+//    EGLDeviceCGLTest.cpp: tests for the EGL_ANGLE_device_cgl extension.
+//
+
+#include "test_utils/ANGLETest.h"
+#include "util/EGLWindow.h"
+#include "util/OSWindow.h"
+#include "util/gles_loader_autogen.h"
+
+using namespace angle;
+
+class EGLDeviceCGLQueryTest : public ANGLETest
+{
+  protected:
+    EGLDeviceCGLQueryTest() {}
+
+    void testSetUp() override
+    {
+        const char *extensionString =
+            static_cast<const char *>(eglQueryString(getEGLWindow()->getDisplay(), EGL_EXTENSIONS));
+
+        if (!eglQueryDeviceStringEXT)
+        {
+            FAIL() << "ANGLE extension EGL_EXT_device_query export eglQueryDeviceStringEXT was not "
+                      "found";
+        }
+
+        if (!eglQueryDisplayAttribEXT)
+        {
+            FAIL() << "ANGLE extension EGL_EXT_device_query export eglQueryDisplayAttribEXT was "
+                      "not found";
+        }
+
+        if (!eglQueryDeviceAttribEXT)
+        {
+            FAIL() << "ANGLE extension EGL_EXT_device_query export eglQueryDeviceAttribEXT was not "
+                      "found";
+        }
+
+        EGLAttrib angleDevice = 0;
+        EXPECT_EGL_TRUE(
+            eglQueryDisplayAttribEXT(getEGLWindow()->getDisplay(), EGL_DEVICE_EXT, &angleDevice));
+        extensionString = static_cast<const char *>(
+            eglQueryDeviceStringEXT(reinterpret_cast<EGLDeviceEXT>(angleDevice), EGL_EXTENSIONS));
+        if (strstr(extensionString, "EGL_ANGLE_device_cgl") == nullptr)
+        {
+            FAIL() << "ANGLE extension EGL_ANGLE_device_cgl was not found";
+        }
+    }
+};
+
+// This test attempts to query the CGLContextObj and CGLPixelFormatObj from the
+// EGLDevice associated with the display.
+TEST_P(EGLDeviceCGLQueryTest, QueryDevice)
+{
+    EGLAttrib angleDevice = 0;
+    EXPECT_EGL_TRUE(
+        eglQueryDisplayAttribEXT(getEGLWindow()->getDisplay(), EGL_DEVICE_EXT, &angleDevice));
+    EGLAttrib contextAttrib     = 0;
+    EGLAttrib pixelFormatAttrib = 0;
+    EXPECT_EGL_TRUE(eglQueryDeviceAttribEXT(reinterpret_cast<EGLDeviceEXT>(angleDevice),
+                                            EGL_CGL_CONTEXT_ANGLE, &contextAttrib));
+    EXPECT_TRUE(contextAttrib != 0);
+    EXPECT_EGL_TRUE(eglQueryDeviceAttribEXT(reinterpret_cast<EGLDeviceEXT>(angleDevice),
+                                            EGL_CGL_PIXEL_FORMAT_ANGLE, &pixelFormatAttrib));
+    EXPECT_TRUE(pixelFormatAttrib != 0);
+}
+
+// Use this to select which configurations (e.g. which renderer, which GLES major version) these
+// tests should be run against.
+ANGLE_INSTANTIATE_TEST(EGLDeviceCGLQueryTest, ES2_OPENGL(), ES3_OPENGL());
diff --git a/Source/ThirdParty/ANGLE/src/tests/egl_tests/EGLDirectCompositionTest.cpp b/Source/ThirdParty/ANGLE/src/tests/egl_tests/EGLDirectCompositionTest.cpp
index 901643b..fc06302 100644
--- a/Source/ThirdParty/ANGLE/src/tests/egl_tests/EGLDirectCompositionTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/egl_tests/EGLDirectCompositionTest.cpp
@@ -22,6 +22,7 @@
 #include "libANGLE/renderer/d3d/d3d11/converged/CompositorNativeWindow11.h"
 #include "util/OSWindow.h"
 #include "util/com_utils.h"
+#include "util/test_utils.h"
 
 using namespace angle;
 using namespace ABI::Windows::System;
diff --git a/Source/ThirdParty/ANGLE/src/tests/egl_tests/EGLFeatureControlTest.cpp b/Source/ThirdParty/ANGLE/src/tests/egl_tests/EGLFeatureControlTest.cpp
index a41ac4c..83264fb 100644
--- a/Source/ThirdParty/ANGLE/src/tests/egl_tests/EGLFeatureControlTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/egl_tests/EGLFeatureControlTest.cpp
@@ -101,6 +101,8 @@
         EXPECT_STREQ(features[i]->bug, eglQueryStringiANGLE(mDisplay, EGL_FEATURE_BUG_ANGLE, i));
         EXPECT_STREQ(FeatureStatusToString(features[i]->enabled),
                      eglQueryStringiANGLE(mDisplay, EGL_FEATURE_STATUS_ANGLE, i));
+        EXPECT_STREQ(features[i]->condition,
+                     eglQueryStringiANGLE(mDisplay, EGL_FEATURE_CONDITION_ANGLE, i));
         ASSERT_EGL_SUCCESS();
     }
 }
diff --git a/Source/ThirdParty/ANGLE/src/tests/egl_tests/EGLNoConfigContextTest.cpp b/Source/ThirdParty/ANGLE/src/tests/egl_tests/EGLNoConfigContextTest.cpp
new file mode 100644
index 0000000..714b776
--- /dev/null
+++ b/Source/ThirdParty/ANGLE/src/tests/egl_tests/EGLNoConfigContextTest.cpp
@@ -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.
+//
+// EGLNoConfigContectTest.cpp:
+//   EGL extension EGL_KHR_no_config_context allows a context to be created
+//   without a config specified. This means all surfaces are compatible.
+//   As a result compatibility checks are circumvented.
+//   This test suite creates and verifies creating a configless context
+//   and then verifies simple rendering to ensure compatibility.
+//
+
+#include <gtest/gtest.h>
+
+#include "test_utils/ANGLETest.h"
+
+using namespace angle;
+
+class EGLNoConfigContextTest : public ANGLETest
+{
+  public:
+    EGLNoConfigContextTest() : mDisplay(EGL_NO_DISPLAY), mContext(EGL_NO_CONTEXT) {}
+
+    void testSetUp() override
+    {
+        int clientVersion = GetParam().majorVersion;
+
+        EGLint dispattrs[] = {EGL_PLATFORM_ANGLE_TYPE_ANGLE, GetParam().getRenderer(), EGL_NONE};
+        mDisplay           = eglGetPlatformDisplayEXT(
+            EGL_PLATFORM_ANGLE_ANGLE, reinterpret_cast<void *>(EGL_DEFAULT_DISPLAY), dispattrs);
+        EXPECT_TRUE(mDisplay != EGL_NO_DISPLAY);
+        EXPECT_EGL_TRUE(eglInitialize(mDisplay, nullptr, nullptr));
+
+        mExtensionSupported = IsEGLDisplayExtensionEnabled(mDisplay, "EGL_KHR_no_config_context");
+        if (!mExtensionSupported)
+        {
+            return;  // Not supported, don't create context
+        }
+
+        EGLint ctxattrs[] = {EGL_CONTEXT_CLIENT_VERSION, clientVersion, EGL_NONE};
+        mContext          = eglCreateContext(mDisplay, EGL_NO_CONFIG_KHR, nullptr, ctxattrs);
+        EXPECT_TRUE(mContext != EGL_NO_CONTEXT);
+    }
+
+    void testTearDown() override
+    {
+        if (mDisplay != EGL_NO_DISPLAY)
+        {
+            if (mContext != EGL_NO_CONTEXT)
+            {
+                eglDestroyContext(mDisplay, mContext);
+                mContext = EGL_NO_CONTEXT;
+            }
+            eglTerminate(mDisplay);
+            eglReleaseThread();
+        }
+        ASSERT_EGL_SUCCESS() << "Error during test TearDown";
+    }
+
+    EGLDisplay mDisplay      = EGL_NO_DISPLAY;
+    EGLContext mContext      = EGL_NO_CONTEXT;
+    bool mExtensionSupported = false;
+};
+
+// Check that context has no config.
+TEST_P(EGLNoConfigContextTest, QueryConfigID)
+{
+    ANGLE_SKIP_TEST_IF(!mExtensionSupported);
+    EXPECT_TRUE(mDisplay);
+    EXPECT_TRUE(mContext);
+
+    EGLint configId = -1;
+    EXPECT_EGL_TRUE(eglQueryContext(mDisplay, mContext, EGL_CONFIG_ID, &configId));
+    EXPECT_TRUE(configId == 0);
+    ASSERT_EGL_SUCCESS();
+}
+
+// Any surface should be eglMakeCurrent compatible with no-config context.
+// Do a glClear and glReadPixel to verify rendering.
+TEST_P(EGLNoConfigContextTest, RenderCheck)
+{
+    ANGLE_SKIP_TEST_IF(!mExtensionSupported);
+
+    // 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));
+
+    // For each config, create PbufferSurface and do a render check
+    EGLSurface surface = EGL_NO_SURFACE;
+    for (auto config : configs)
+    {
+        const uint32_t kWidth  = 1;
+        const uint32_t kHeight = 1;
+
+        EGLint configId;
+        EXPECT_EGL_TRUE(eglGetConfigAttrib(mDisplay, config, EGL_CONFIG_ID, &configId));
+        EGLint surfattrs[] = {EGL_WIDTH, kWidth, EGL_HEIGHT, kHeight, EGL_NONE};
+        surface            = eglCreatePbufferSurface(mDisplay, config, surfattrs);
+        EXPECT_TRUE(surface != EGL_NO_SURFACE);
+
+        EGLint bufferSize = 0;
+        EXPECT_EGL_TRUE(eglGetConfigAttrib(mDisplay, config, EGL_BUFFER_SIZE, &bufferSize));
+
+        EXPECT_EGL_TRUE(eglMakeCurrent(mDisplay, surface, surface, mContext));
+        ASSERT_EGL_SUCCESS() << "eglMakeCurrent failed with Config: " << configId << '\n';
+
+        // ClearColor RED
+        glClearColor(1.0, 0.0, 0.0, 1.0);
+        glClear(GL_COLOR_BUFFER_BIT);
+        ASSERT_GL_NO_ERROR() << "glClear failed";
+
+        if (bufferSize > 32)
+        {  // GL_FLOAT configs
+            EXPECT_PIXEL_COLOR32F_EQ(0, 0, kFloatRed);
+        }
+        else
+        {  // GL_UNSIGNED_BYTE configs
+            EXPECT_PIXEL_COLOR_EQ(0, 0, GLColor::red);
+        }
+
+        eglDestroySurface(mDisplay, surface);
+        surface = EGL_NO_SURFACE;
+    }
+}
+
+ANGLE_INSTANTIATE_TEST(EGLNoConfigContextTest,
+                       WithNoFixture(ES2_OPENGL()),
+                       WithNoFixture(ES2_VULKAN()),
+                       WithNoFixture(ES3_OPENGL()),
+                       WithNoFixture(ES3_VULKAN()));
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/BlendFuncExtendedTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/BlendFuncExtendedTest.cpp
index a30a082..f06052b 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/BlendFuncExtendedTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/BlendFuncExtendedTest.cpp
@@ -231,6 +231,16 @@
         }
     }
 
+    void LinkProgram()
+    {
+        glLinkProgram(mProgram);
+        GLint linked = 0;
+        glGetProgramiv(mProgram, GL_LINK_STATUS, &linked);
+        EXPECT_NE(0, linked);
+        glUseProgram(mProgram);
+        return;
+    }
+
   private:
     bool mIsES31OrNewer;
 };
@@ -421,6 +431,121 @@
     drawTest();
 }
 
+// Ported from TranslatorVariants/EXTBlendFuncExtendedES3DrawTest
+// Test that tests glBindFragDataLocationEXT, glBindFragDataLocationIndexedEXT,
+// glGetFragDataLocation, glGetFragDataIndexEXT work correctly with
+// GLSL array output variables. The output variable can be bound by
+// referring to the variable name with or without the first element array
+// accessor. The getters can query location of the individual elements in
+// the array. The test does not actually use the base test drawing,
+// since the drivers at the time of writing do not support multiple
+// buffers and dual source blending.
+TEST_P(EXTBlendFuncExtendedDrawTestES3, ES3GettersArray)
+{
+    ANGLE_SKIP_TEST_IF(!IsGLExtensionEnabled("GL_EXT_blend_func_extended"));
+
+    // TODO(zmo): Figure out why this fails on AMD. crbug.com/585132.
+    // Also fails on the Intel Mesa driver, see
+    // https://bugs.freedesktop.org/show_bug.cgi?id=96765
+    ANGLE_SKIP_TEST_IF(IsLinux() && IsAMD());
+    ANGLE_SKIP_TEST_IF(IsLinux() && IsIntel());
+
+    const GLint kTestArraySize     = 2;
+    const GLint kFragData0Location = 2;
+    const GLint kFragData1Location = 1;
+    const GLint kUnusedLocation    = 5;
+
+    // The test binds kTestArraySize -sized array to location 1 for test purposes.
+    // The GL_MAX_DRAW_BUFFERS must be > kTestArraySize, since an
+    // array will be bound to continuous locations, starting from the first
+    // location.
+    GLint maxDrawBuffers = 0;
+    glGetIntegerv(GL_MAX_DRAW_BUFFERS_EXT, &maxDrawBuffers);
+    EXPECT_LT(kTestArraySize, maxDrawBuffers);
+
+    constexpr char kFragColorShader[] = R"(#version 300 es
+#extension GL_EXT_blend_func_extended : require
+precision mediump float;
+uniform vec4 src;
+uniform vec4 src1;
+out vec4 FragData[2];
+void main() {
+    FragData[0] = src;
+    FragData[1] = src1;
+})";
+
+    struct testCase
+    {
+        std::string unusedLocationName;
+        std::string fragData0LocationName;
+        std::string fragData1LocationName;
+    };
+
+    testCase testCases[4]{{"FragData[0]", "FragData", "FragData[1]"},
+                          {"FragData", "FragData[0]", "FragData[1]"},
+                          {"FragData[0]", "FragData", "FragData[1]"},
+                          {"FragData", "FragData[0]", "FragData[1]"}};
+
+    for (const testCase &test : testCases)
+    {
+        mProgram =
+            CompileProgram(essl3_shaders::vs::Simple(), kFragColorShader, [&](GLuint program) {
+                glBindFragDataLocationEXT(program, kUnusedLocation,
+                                          test.unusedLocationName.c_str());
+                glBindFragDataLocationEXT(program, kFragData0Location,
+                                          test.fragData0LocationName.c_str());
+                glBindFragDataLocationEXT(program, kFragData1Location,
+                                          test.fragData1LocationName.c_str());
+            });
+
+        EXPECT_EQ(static_cast<GLenum>(GL_NO_ERROR), glGetError());
+        LinkProgram();
+        EXPECT_EQ(kFragData0Location, glGetFragDataLocation(mProgram, "FragData"));
+        EXPECT_EQ(0, glGetFragDataIndexEXT(mProgram, "FragData"));
+        EXPECT_EQ(kFragData0Location, glGetFragDataLocation(mProgram, "FragData[0]"));
+        EXPECT_EQ(0, glGetFragDataIndexEXT(mProgram, "FragData[0]"));
+        EXPECT_EQ(kFragData1Location, glGetFragDataLocation(mProgram, "FragData[1]"));
+        EXPECT_EQ(0, glGetFragDataIndexEXT(mProgram, "FragData[1]"));
+        // Index bigger than the GLSL variable array length does not find anything.
+        EXPECT_EQ(-1, glGetFragDataLocation(mProgram, "FragData[3]"));
+    }
+}
+
+// Ported from TranslatorVariants/EXTBlendFuncExtendedES3DrawTest
+TEST_P(EXTBlendFuncExtendedDrawTestES3, ESSL3BindSimpleVarAsArrayNoBind)
+{
+    ANGLE_SKIP_TEST_IF(!IsGLExtensionEnabled("GL_EXT_blend_func_extended"));
+
+    constexpr char kFragDataShader[] = R"(#version 300 es
+#extension GL_EXT_blend_func_extended : require
+precision mediump float;
+uniform vec4 src;
+uniform vec4 src1;
+out vec4 FragData;
+out vec4 SecondaryFragData;
+void main() {
+    FragData = src;
+    SecondaryFragData = src1;
+})";
+
+    mProgram = CompileProgram(essl3_shaders::vs::Simple(), kFragDataShader, [](GLuint program) {
+        glBindFragDataLocationEXT(program, 0, "FragData[0]");
+        glBindFragDataLocationIndexedEXT(program, 0, 1, "SecondaryFragData[0]");
+    });
+
+    LinkProgram();
+
+    EXPECT_EQ(-1, glGetFragDataLocation(mProgram, "FragData[0]"));
+    EXPECT_EQ(0, glGetFragDataLocation(mProgram, "FragData"));
+    EXPECT_EQ(1, glGetFragDataLocation(mProgram, "SecondaryFragData"));
+    // Did not bind index.
+    EXPECT_EQ(0, glGetFragDataIndexEXT(mProgram, "SecondaryFragData"));
+
+    glBindFragDataLocationEXT(mProgram, 0, "FragData");
+    glBindFragDataLocationIndexedEXT(mProgram, 0, 1, "SecondaryFragData");
+    LinkProgram();
+}
+
 // Test an ESSL 3.00 program with a link-time fragment output location conflict.
 TEST_P(EXTBlendFuncExtendedTestES3, FragmentOutputLocationConflict)
 {
@@ -592,7 +717,9 @@
                        ES3_OPENGL(),
                        ES3_OPENGLES(),
                        ES31_OPENGL(),
-                       ES31_OPENGLES());
+                       ES31_OPENGLES(),
+                       ES3_VULKAN(),
+                       ES31_VULKAN());
 ANGLE_INSTANTIATE_TEST(EXTBlendFuncExtendedDrawTest,
                        ES2_OPENGL(),
                        ES2_OPENGLES(),
@@ -603,4 +730,6 @@
                        ES3_OPENGL(),
                        ES3_OPENGLES(),
                        ES31_OPENGL(),
-                       ES31_OPENGLES());
+                       ES31_OPENGLES(),
+                       ES3_VULKAN(),
+                       ES31_VULKAN());
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/ComputeShaderTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/ComputeShaderTest.cpp
index 8a07e3d..48f2d99 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/ComputeShaderTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/ComputeShaderTest.cpp
@@ -1415,7 +1415,7 @@
 TEST_P(ComputeShaderTest, BindImageTextureWithOneLayerTexture3D)
 {
     // Vulkan validation error creating a 2D image view of a 3D image layer.
-    // http://anglebug.com/3188
+    // http://anglebug.com/3886
     ANGLE_SKIP_TEST_IF(IsVulkan());
 
     GLTexture texture[2];
@@ -2736,6 +2736,8 @@
 {
     // 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;
@@ -3010,7 +3012,7 @@
     // 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/3148
+    // Non-zero-level render target attachments are not yet supported.  http://anglebug.com/3184
     ANGLE_SKIP_TEST_IF(IsVulkan());
 
     GLTexture texture[2];
@@ -3070,6 +3072,8 @@
 // pipeline input. It works well. See http://anglebug.com/3658
 TEST_P(ComputeShaderTest, DrawTexture1DispatchTexture2)
 {
+    ANGLE_SKIP_TEST_IF(!EnsureGLExtensionEnabled("GL_EXT_color_buffer_float"));
+
     const char kCSSource[] = R"(#version 310 es
 layout(local_size_x=1, local_size_y=1, local_size_z=1) in;
 precision highp sampler2D;
@@ -3458,6 +3462,57 @@
     glUnmapBuffer(GL_SHADER_STORAGE_BUFFER);
 }
 
+// Create a 'very large' array inside of a function in a compute shader.
+TEST_P(ComputeShaderTest, VeryLargeArrayInsideFunction)
+{
+    constexpr char kComputeShader[] = R"(#version 310 es
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+layout(binding = 0, std430) buffer Output {
+  int value[1];
+} output_data;
+
+void main()
+{
+    int values[1000];
+    for (int i = 0; i < values.length(); i++)
+    {
+        values[i] = 0;
+    }
+
+    int total = 0;
+    for (int i = 0; i < values.length(); i++)
+    {
+        total += i;
+        values[i] = total;
+    }
+    output_data.value[0u] = values[1000-1];
+})";
+
+    ANGLE_GL_COMPUTE_PROGRAM(program, kComputeShader);
+    EXPECT_GL_NO_ERROR();
+
+    glUseProgram(program);
+
+    constexpr unsigned int kBytesPerComponent = sizeof(GLint);
+
+    GLBuffer shaderStorageBuffer;
+    glBindBuffer(GL_SHADER_STORAGE_BUFFER, shaderStorageBuffer);
+    glBufferData(GL_SHADER_STORAGE_BUFFER, 1 * kBytesPerComponent, nullptr, GL_STATIC_DRAW);
+    glBindBufferBase(GL_SHADER_STORAGE_BUFFER, 0, shaderStorageBuffer);
+    EXPECT_GL_NO_ERROR();
+
+    glDispatchCompute(1, 1, 1);
+    glFinish();
+    EXPECT_GL_NO_ERROR();
+
+    // read back
+    const GLint *ptr = reinterpret_cast<const GLint *>(
+        glMapBufferRange(GL_SHADER_STORAGE_BUFFER, 0, 1 * kBytesPerComponent, GL_MAP_READ_BIT));
+    EXPECT_EQ(499500, ptr[0]);
+
+    glUnmapBuffer(GL_SHADER_STORAGE_BUFFER);
+}
+
 ANGLE_INSTANTIATE_TEST(ComputeShaderTest,
                        ES31_OPENGL(),
                        ES31_OPENGLES(),
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/CopyTexImageTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/CopyTexImageTest.cpp
index 10f1753..fad1c33 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/CopyTexImageTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/CopyTexImageTest.cpp
@@ -551,8 +551,6 @@
 {
     // Seems to fail on AMD OpenGL Windows.
     ANGLE_SKIP_TEST_IF(IsAMD() && IsOpenGL() & IsWindows());
-    // TODO(anglebug.com/3189): Need full 2D-array texture support
-    ANGLE_SKIP_TEST_IF(IsVulkan());
 
     GLTexture tex;
     glBindTexture(GL_TEXTURE_2D_ARRAY, tex);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/CopyTextureTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/CopyTextureTest.cpp
index cfe9126..c9a619f 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/CopyTextureTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/CopyTextureTest.cpp
@@ -380,7 +380,8 @@
         }
     }
 
-    void initializeSourceTexture(GLenum sourceFormat,
+    void initializeSourceTexture(GLenum target,
+                                 GLenum sourceFormat,
                                  const uint8_t *srcColors,
                                  uint8_t componentCount)
     {
@@ -398,12 +399,13 @@
                    srcRowPitch - inputRowPitch);
         }
 
-        glBindTexture(GL_TEXTURE_2D, mTextures[0]);
-        glTexImage2D(GL_TEXTURE_2D, 0, sourceFormat, 2, 2, 0, sourceFormat, GL_UNSIGNED_BYTE,
+        glBindTexture(target, mTextures[0]);
+        glTexImage2D(target, 0, sourceFormat, 2, 2, 0, sourceFormat, GL_UNSIGNED_BYTE,
                      srcColorsPadded);
     }
 
-    void testCopyTexture(GLenum sourceFormat,
+    void testCopyTexture(GLenum sourceTarget,
+                         GLenum sourceFormat,
                          GLenum destFormat,
                          bool flipY,
                          bool premultiplyAlpha,
@@ -427,7 +429,8 @@
 
         for (size_t i = 0; i < colorCount - 3; ++i)
         {
-            initializeSourceTexture(sourceFormat, &srcColors[i * componentCount], componentCount);
+            initializeSourceTexture(sourceTarget, sourceFormat, &srcColors[i * componentCount],
+                                    componentCount);
 
             glCopyTextureCHROMIUM(mTextures[0], 0, GL_TEXTURE_2D, mTextures[1], 0, destFormat,
                                   GL_UNSIGNED_BYTE, flipY, premultiplyAlpha, unmultiplyAlpha);
@@ -456,7 +459,8 @@
         }
     }
 
-    void testCopySubTexture(GLenum sourceFormat,
+    void testCopySubTexture(GLenum sourceTarget,
+                            GLenum sourceFormat,
                             GLenum destFormat,
                             bool flipY,
                             bool premultiplyAlpha,
@@ -480,7 +484,8 @@
 
         for (size_t i = 0; i < colorCount - 3; ++i)
         {
-            initializeSourceTexture(sourceFormat, &srcColors[i * componentCount], componentCount);
+            initializeSourceTexture(sourceTarget, sourceFormat, &srcColors[i * componentCount],
+                                    componentCount);
 
             glBindTexture(GL_TEXTURE_2D, mTextures[1]);
             glTexImage2D(GL_TEXTURE_2D, 0, destFormat, 2, 2, 0, destFormat, GL_UNSIGNED_BYTE,
@@ -862,14 +867,30 @@
 
 TEST_P(CopyTextureVariationsTest, CopyTexture)
 {
-    testCopyTexture(std::get<1>(GetParam()), std::get<2>(GetParam()), std::get<3>(GetParam()),
-                    std::get<4>(GetParam()), std::get<5>(GetParam()));
+    testCopyTexture(GL_TEXTURE_2D, std::get<1>(GetParam()), std::get<2>(GetParam()),
+                    std::get<3>(GetParam()), std::get<4>(GetParam()), std::get<5>(GetParam()));
 }
 
 TEST_P(CopyTextureVariationsTest, CopySubTexture)
 {
-    testCopySubTexture(std::get<1>(GetParam()), std::get<2>(GetParam()), std::get<3>(GetParam()),
-                       std::get<4>(GetParam()), std::get<5>(GetParam()));
+    testCopySubTexture(GL_TEXTURE_2D, std::get<1>(GetParam()), std::get<2>(GetParam()),
+                       std::get<3>(GetParam()), std::get<4>(GetParam()), std::get<5>(GetParam()));
+}
+
+TEST_P(CopyTextureVariationsTest, CopyTextureRectangle)
+{
+    ANGLE_SKIP_TEST_IF(!EnsureGLExtensionEnabled("GL_ANGLE_texture_rectangle"));
+
+    testCopyTexture(GL_TEXTURE_RECTANGLE_ANGLE, std::get<1>(GetParam()), std::get<2>(GetParam()),
+                    std::get<3>(GetParam()), std::get<4>(GetParam()), std::get<5>(GetParam()));
+}
+
+TEST_P(CopyTextureVariationsTest, CopySubTextureRectangle)
+{
+    ANGLE_SKIP_TEST_IF(!EnsureGLExtensionEnabled("GL_ANGLE_texture_rectangle"));
+
+    testCopySubTexture(GL_TEXTURE_RECTANGLE_ANGLE, std::get<1>(GetParam()), std::get<2>(GetParam()),
+                       std::get<3>(GetParam()), std::get<4>(GetParam()), std::get<5>(GetParam()));
 }
 
 // Test that copying to cube maps works
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/DrawBaseVertexBaseInstanceTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/DrawBaseVertexBaseInstanceTest.cpp
index 3a7c003..f39de9f 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/DrawBaseVertexBaseInstanceTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/DrawBaseVertexBaseInstanceTest.cpp
@@ -133,6 +133,10 @@
                 mRegularIndices[oi + j] = mIndices[j] + ov;
             }
         }
+
+        std::iota(mInstancedArrayId.begin(), mInstancedArrayId.end(), 0.0f);
+        std::reverse_copy(mInstancedArrayId.begin(), mInstancedArrayId.end(),
+                          mInstancedArrayColorId.begin());
     }
 
     void SetUp() override { ANGLETestBase::ANGLETestSetUp(); }
@@ -147,7 +151,7 @@
         return std::get<2>(GetParam()) == BaseInstanceOption::UseBaseInstance;
     }
 
-    std::string vertexShaderSource300(bool isDrawArrays, bool isMultiDraw)
+    std::string vertexShaderSource300(bool isDrawArrays, bool isMultiDraw, bool divisorTest)
     {
         // Each color channel is to test the value of
         // R: gl_InstanceID and gl_BaseInstance
@@ -162,18 +166,24 @@
                << "#define kCountY " << kCountY << "\n"
                << R"(
 in vec2 vPosition;
+)" << (useBaseInstanceBuiltin() ? "" : "in float vInstanceID;\n")
+               << (!divisorTest ? "" : "in float vInstanceColorID;\n") << R"(
 out vec4 color;
 void main()
 {
     const float xStep = 1.0 / float(kCountX);
     const float yStep = 1.0 / float(kCountY);
-    float x_id = float(gl_InstanceID)"
-               << (useBaseInstanceBuiltin() ? " + gl_BaseInstance" : "") << R"();
+    float x_id = )"
+               << (useBaseInstanceBuiltin() ? " float(gl_InstanceID + gl_BaseInstance);"
+                                            : "vInstanceID;")
+               << "float x_color = "
+               << (divisorTest ? "xStep * (vInstanceColorID + 1.0f);" : " 1.0 - xStep * x_id;")
+               << R"(
     float y_id = floor(float(gl_VertexID) / )"
                << (isDrawArrays ? "6.0" : "4.0") << R"( + 0.01);
 
     color = vec4(
-        1.0 - xStep * x_id,
+        x_color,
         1.0 - yStep * y_id,
         )" << (useBaseVertexBuiltin() ? "1.0 - yStep * float(gl_BaseVertex) / 4.0" : "1.0")
                << R"(,
@@ -201,14 +211,22 @@
 })";
     }
 
-    void setupProgram(GLProgram &program, bool isDrawArrays = true, bool isMultiDraw = false)
+    void setupProgram(GLProgram &program,
+                      bool isDrawArrays  = true,
+                      bool isMultiDraw   = false,
+                      bool isDivisorTest = false)
     {
-        program.makeRaster(vertexShaderSource300(isDrawArrays, isMultiDraw).c_str(),
+        program.makeRaster(vertexShaderSource300(isDrawArrays, isMultiDraw, isDivisorTest).c_str(),
                            fragmentShaderSource300().c_str());
         EXPECT_GL_NO_ERROR();
         ASSERT_TRUE(program.valid());
         glUseProgram(program.get());
         mPositionLoc = glGetAttribLocation(program.get(), "vPosition");
+        if (!useBaseInstanceBuiltin())
+        {
+            mInstanceIDLoc      = glGetAttribLocation(program.get(), "vInstanceID");
+            mInstanceColorIDLoc = glGetAttribLocation(program.get(), "vInstanceColorID");
+        }
     }
 
     void setupNonIndexedBuffers(GLBuffer &vertexBuffer)
@@ -233,6 +251,24 @@
         ASSERT_GL_NO_ERROR();
     }
 
+    void setupInstanceIDBuffer(GLBuffer &instanceIDBuffer)
+    {
+        glBindBuffer(GL_ARRAY_BUFFER, instanceIDBuffer);
+        glBufferData(GL_ARRAY_BUFFER, sizeof(GLfloat) * mInstancedArrayId.size(),
+                     mInstancedArrayId.data(), GL_STATIC_DRAW);
+
+        ASSERT_GL_NO_ERROR();
+    }
+
+    void setupInstanceColorIDBuffer(GLBuffer &instanceIDBuffer)
+    {
+        glBindBuffer(GL_ARRAY_BUFFER, instanceIDBuffer);
+        glBufferData(GL_ARRAY_BUFFER, sizeof(GLfloat) * mInstancedArrayColorId.size(),
+                     mInstancedArrayColorId.data(), GL_STATIC_DRAW);
+
+        ASSERT_GL_NO_ERROR();
+    }
+
     void setupRegularIndexedBuffer(GLBuffer &indexBuffer)
     {
         glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, indexBuffer);
@@ -242,101 +278,64 @@
         ASSERT_GL_NO_ERROR();
     }
 
-    void doDrawCommons()
+    void setupPositionVertexAttribPointer()
     {
-        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
         glEnableVertexAttribArray(mPositionLoc);
         glVertexAttribPointer(mPositionLoc, 3, GL_FLOAT, GL_FALSE, 0, 0);
     }
 
-    void doVertexAttribDivisor(GLint location, GLuint divisor)
+    void setupInstanceIDVertexAttribPointer(GLuint instanceIDLoc)
     {
-        if (getClientMajorVersion() <= 2)
-        {
-            ASSERT_TRUE(IsGLExtensionEnabled("GL_ANGLE_instanced_arrays"));
-            glVertexAttribDivisorANGLE(location, divisor);
-        }
-        else
-        {
-            glVertexAttribDivisor(location, divisor);
-        }
+        glEnableVertexAttribArray(instanceIDLoc);
+        glVertexAttribPointer(instanceIDLoc, 1, GL_FLOAT, GL_FALSE, 0, 0);
+        glVertexAttribDivisor(instanceIDLoc, 1);
     }
 
     void doDrawArraysInstancedBaseInstance()
     {
-        doDrawCommons();
+        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
 
         const uint32_t countPerDraw = kCountY * 6;
 
-        if (useBaseInstanceBuiltin())
+        for (uint32_t i = 0; i < kCountX; i += 2)
         {
-            for (uint32_t i = 0; i < kCountX; i += 2)
-            {
-                glDrawArraysInstancedBaseInstanceANGLE(GL_TRIANGLES, 0, countPerDraw, 2, i);
-            }
-        }
-        else
-        {
-            glDrawArraysInstancedBaseInstanceANGLE(GL_TRIANGLES, 0, countPerDraw, kCountX, 0);
+            glDrawArraysInstancedBaseInstanceANGLE(GL_TRIANGLES, 0, countPerDraw, 2, i);
         }
     }
 
     void doMultiDrawArraysInstancedBaseInstance()
     {
-        doDrawCommons();
+        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
 
         const uint32_t countPerDraw = kCountY * 6;
 
-        if (useBaseInstanceBuiltin())
+        const GLsizei drawCount = kCountX / 2;
+        const std::vector<GLsizei> counts(drawCount, countPerDraw);
+        const std::vector<GLsizei> firsts(drawCount, 0);
+        const std::vector<GLsizei> instanceCounts(drawCount, 2);
+        std::vector<GLuint> baseInstances(drawCount);
+        for (size_t i = 0; i < drawCount; i++)
         {
-            const GLsizei drawCount = kCountX;
-            const std::vector<GLsizei> counts(drawCount, countPerDraw);
-            const std::vector<GLsizei> firsts(drawCount, 0);
-            const std::vector<GLsizei> instanceCounts(drawCount, 2);
-            std::vector<GLuint> baseInstances(drawCount);
-            for (size_t i = 0; i < drawCount; i++)
-            {
-                baseInstances[i] = i * 2;
-            }
-            glMultiDrawArraysInstancedBaseInstanceANGLE(GL_TRIANGLES, drawCount, counts.data(),
-                                                        instanceCounts.data(), firsts.data(),
-                                                        baseInstances.data());
+            baseInstances[i] = i * 2;
         }
-        else
-        {
-            const GLsizei drawCount = 1;
-            const std::vector<GLsizei> counts(drawCount, countPerDraw);
-            const std::vector<GLsizei> firsts(drawCount, 0);
-            const std::vector<GLsizei> instanceCounts(drawCount, kCountX);
-            const std::vector<GLuint> baseInstances(drawCount, 0);
-            glMultiDrawArraysInstancedBaseInstanceANGLE(GL_TRIANGLES, drawCount, counts.data(),
-                                                        instanceCounts.data(), firsts.data(),
-                                                        baseInstances.data());
-        }
+        glMultiDrawArraysInstancedBaseInstanceANGLE(GL_TRIANGLES, drawCount, counts.data(),
+                                                    instanceCounts.data(), firsts.data(),
+                                                    baseInstances.data());
     }
 
     void doDrawElementsInstancedBaseVertexBaseInstance()
     {
-        doDrawCommons();
+        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
 
         const uint32_t countPerDraw = 6;
 
         for (uint32_t v = 0; v < kCountY; v++)
         {
-            if (useBaseInstanceBuiltin())
-            {
-                for (uint32_t i = 0; i < kCountX; i += 2)
-                {
-                    glDrawElementsInstancedBaseVertexBaseInstanceANGLE(
-                        GL_TRIANGLES, countPerDraw, GL_UNSIGNED_SHORT,
-                        reinterpret_cast<GLvoid *>(static_cast<uintptr_t>(0)), 2, v * 4, i);
-                }
-            }
-            else
+            for (uint32_t i = 0; i < kCountX; i += 2)
             {
                 glDrawElementsInstancedBaseVertexBaseInstanceANGLE(
                     GL_TRIANGLES, countPerDraw, GL_UNSIGNED_SHORT,
-                    reinterpret_cast<GLvoid *>(static_cast<uintptr_t>(0)), kCountX, v * 4, 0);
+                    reinterpret_cast<GLvoid *>(static_cast<uintptr_t>(0)), 2, v * 4, i);
             }
         }
     }
@@ -345,63 +344,42 @@
     // BaseInstance are reset to zero
     void doDrawArraysBaseInstanceReset()
     {
-        doDrawCommons();
+        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
         glDrawArrays(GL_TRIANGLES, 0, 6 * kCountY);
     }
 
     void doDrawElementsBaseVertexBaseInstanceReset()
     {
-        doDrawCommons();
+        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
         glDrawElements(GL_TRIANGLES, 6 * kCountY, GL_UNSIGNED_SHORT,
                        reinterpret_cast<GLvoid *>(static_cast<uintptr_t>(0)));
     }
 
     void doMultiDrawElementsInstancedBaseVertexBaseInstance()
     {
-        doDrawCommons();
+        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
 
-        if (useBaseInstanceBuiltin())
+        const GLsizei drawCount = kCountX * kCountY / 2;
+        const std::vector<GLsizei> counts(drawCount, 6);
+        const std::vector<GLsizei> instanceCounts(drawCount, 2);
+        const std::vector<GLvoid *> indices(drawCount, 0);
+        std::vector<GLint> baseVertices(drawCount);
+        std::vector<GLuint> baseInstances(drawCount);
+
+        GLsizei b = 0;
+        for (uint32_t v = 0; v < kCountY; v++)
         {
-            const GLsizei drawCount = kCountX * kCountY / 2;
-            const std::vector<GLsizei> counts(drawCount, 6);
-            const std::vector<GLsizei> instanceCounts(drawCount, 2);
-            const std::vector<GLvoid *> indices(drawCount, 0);
-            std::vector<GLint> baseVertices(drawCount);
-            std::vector<GLuint> baseInstances(drawCount);
-
-            GLsizei b = 0;
-            for (uint32_t v = 0; v < kCountY; v++)
+            for (uint32_t i = 0; i < kCountX; i += 2)
             {
-                for (uint32_t i = 0; i < kCountX; i += 2)
-                {
-                    baseVertices[b]  = v * 4;
-                    baseInstances[b] = i;
-                    b++;
-                }
+                baseVertices[b]  = v * 4;
+                baseInstances[b] = i;
+                b++;
             }
-
-            glMultiDrawElementsInstancedBaseVertexBaseInstanceANGLE(
-                GL_TRIANGLES, GL_UNSIGNED_SHORT, drawCount, counts.data(), instanceCounts.data(),
-                indices.data(), baseVertices.data(), baseInstances.data());
         }
-        else
-        {
-            const GLsizei drawCount = kCountY;
-            const std::vector<GLsizei> counts(drawCount, 6);
-            const std::vector<GLsizei> instanceCounts(drawCount, kCountX);
-            const std::vector<GLvoid *> indices(drawCount, 0);
-            std::vector<GLint> baseVertices(drawCount);
-            const std::vector<GLuint> baseInstances(drawCount, 0);
 
-            for (uint32_t v = 0; v < drawCount; v++)
-            {
-                baseVertices[v] = v * 4;
-            }
-
-            glMultiDrawElementsInstancedBaseVertexBaseInstanceANGLE(
-                GL_TRIANGLES, GL_UNSIGNED_SHORT, drawCount, counts.data(), instanceCounts.data(),
-                indices.data(), baseVertices.data(), baseInstances.data());
-        }
+        glMultiDrawElementsInstancedBaseVertexBaseInstanceANGLE(
+            GL_TRIANGLES, GL_UNSIGNED_SHORT, drawCount, counts.data(), instanceCounts.data(),
+            indices.data(), baseVertices.data(), baseInstances.data());
     }
 
     void checkDrawResult(bool hasBaseVertex, bool oneColumn = false)
@@ -474,9 +452,14 @@
     std::vector<GLushort> mIndices;
     std::vector<GLfloat> mVertices;
     std::vector<GLfloat> mNonIndexedVertices;
+    // Used when gl_BaseInstance is not used
+    std::array<GLfloat, kCountX> mInstancedArrayId;
+    std::array<GLfloat, kCountX> mInstancedArrayColorId;
     // Used for regular draw calls without base vertex base instance
     std::vector<GLushort> mRegularIndices;
     GLint mPositionLoc;
+    GLuint mInstanceIDLoc;
+    GLuint mInstanceColorIDLoc;
 };
 
 // Tests that compile a program with the extension succeeds
@@ -493,6 +476,58 @@
     setupProgram(p3, false, true);
 }
 
+// Tests if baseInstance works properly with instanced array with non-zero divisor
+TEST_P(DrawBaseVertexBaseInstanceTest, BaseInstanceDivisor)
+{
+    ANGLE_SKIP_TEST_IF(!requestExtensions());
+    ANGLE_SKIP_TEST_IF(useBaseInstanceBuiltin());
+
+    GLProgram program;
+    setupProgram(program, true, false, true);
+
+    GLBuffer nonIndexedVertexBuffer;
+    setupNonIndexedBuffers(nonIndexedVertexBuffer);
+    setupPositionVertexAttribPointer();
+
+    GLBuffer instanceIDBuffer;
+    GLBuffer instanceColorIDBuffer;
+
+    setupInstanceIDBuffer(instanceIDBuffer);
+    setupInstanceIDVertexAttribPointer(mInstanceIDLoc);
+    setupInstanceColorIDBuffer(instanceColorIDBuffer);
+    setupInstanceIDVertexAttribPointer(mInstanceColorIDLoc);
+
+    doDrawArraysInstancedBaseInstance();
+    EXPECT_GL_NO_ERROR();
+    checkDrawResult(false);
+
+    doDrawArraysBaseInstanceReset();
+    EXPECT_GL_NO_ERROR();
+    checkDrawResult(false, true);
+
+    GLProgram programIndexed;
+    setupProgram(programIndexed, false, false, true);
+
+    GLBuffer indexBuffer;
+    GLBuffer vertexBuffer;
+    setupIndexedBuffers(vertexBuffer, indexBuffer);
+    setupPositionVertexAttribPointer();
+
+    glBindBuffer(GL_ARRAY_BUFFER, instanceIDBuffer);
+    setupInstanceIDVertexAttribPointer(mInstanceIDLoc);
+    glBindBuffer(GL_ARRAY_BUFFER, instanceColorIDBuffer);
+    setupInstanceIDVertexAttribPointer(mInstanceColorIDLoc);
+
+    doDrawElementsInstancedBaseVertexBaseInstance();
+    EXPECT_GL_NO_ERROR();
+    checkDrawResult(true);
+
+    setupRegularIndexedBuffer(indexBuffer);
+    doDrawElementsBaseVertexBaseInstanceReset();
+    EXPECT_GL_NO_ERROR();
+    checkDrawResult(false, true);
+}
+
 // Tests basic functionality of glDrawArraysInstancedBaseInstance
 TEST_P(DrawBaseVertexBaseInstanceTest, DrawArraysInstancedBaseInstance)
 {
@@ -513,10 +548,21 @@
     }
 
     ANGLE_SKIP_TEST_IF(!requestExtensions());
-    GLBuffer vertexBuffer;
-    setupNonIndexedBuffers(vertexBuffer);
+
     GLProgram program;
     setupProgram(program, true);
+
+    GLBuffer vertexBuffer;
+    setupNonIndexedBuffers(vertexBuffer);
+    setupPositionVertexAttribPointer();
+
+    GLBuffer instanceIDBuffer;
+    if (!useBaseInstanceBuiltin())
+    {
+        setupInstanceIDBuffer(instanceIDBuffer);
+        setupInstanceIDVertexAttribPointer(mInstanceIDLoc);
+    }
+
     doDrawArraysInstancedBaseInstance();
     EXPECT_GL_NO_ERROR();
     checkDrawResult(false);
@@ -538,10 +584,21 @@
     }
 
     ANGLE_SKIP_TEST_IF(!requestExtensions());
-    GLBuffer vertexBuffer;
-    setupNonIndexedBuffers(vertexBuffer);
+
     GLProgram program;
     setupProgram(program, true, true);
+
+    GLBuffer vertexBuffer;
+    setupNonIndexedBuffers(vertexBuffer);
+    setupPositionVertexAttribPointer();
+
+    GLBuffer instanceIDBuffer;
+    if (!useBaseInstanceBuiltin())
+    {
+        setupInstanceIDBuffer(instanceIDBuffer);
+        setupInstanceIDVertexAttribPointer(mInstanceIDLoc);
+    }
+
     doMultiDrawArraysInstancedBaseInstance();
     EXPECT_GL_NO_ERROR();
     checkDrawResult(false);
@@ -554,11 +611,22 @@
 TEST_P(DrawBaseVertexBaseInstanceTest, DrawElementsInstancedBaseVertexBaseInstance)
 {
     ANGLE_SKIP_TEST_IF(!requestExtensions());
+
+    GLProgram program;
+    setupProgram(program, false);
+
     GLBuffer indexBuffer;
     GLBuffer vertexBuffer;
     setupIndexedBuffers(vertexBuffer, indexBuffer);
-    GLProgram program;
-    setupProgram(program, false);
+    setupPositionVertexAttribPointer();
+
+    GLBuffer instanceIDBuffer;
+    if (!useBaseInstanceBuiltin())
+    {
+        setupInstanceIDBuffer(instanceIDBuffer);
+        setupInstanceIDVertexAttribPointer(mInstanceIDLoc);
+    }
+
     doDrawElementsInstancedBaseVertexBaseInstance();
     EXPECT_GL_NO_ERROR();
     checkDrawResult(true);
@@ -573,11 +641,22 @@
 TEST_P(DrawBaseVertexBaseInstanceTest, MultiDrawElementsInstancedBaseVertexBaseInstance)
 {
     ANGLE_SKIP_TEST_IF(!requestExtensions());
+
+    GLProgram program;
+    setupProgram(program, false, true);
+
     GLBuffer indexBuffer;
     GLBuffer vertexBuffer;
     setupIndexedBuffers(vertexBuffer, indexBuffer);
-    GLProgram program;
-    setupProgram(program, false, true);
+    setupPositionVertexAttribPointer();
+
+    GLBuffer instanceIDBuffer;
+    if (!useBaseInstanceBuiltin())
+    {
+        setupInstanceIDBuffer(instanceIDBuffer);
+        setupInstanceIDVertexAttribPointer(mInstanceIDLoc);
+    }
+
     doMultiDrawElementsInstancedBaseVertexBaseInstance();
     EXPECT_GL_NO_ERROR();
     checkDrawResult(true);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/FramebufferTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/FramebufferTest.cpp
index 247c284..ad483fd 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/FramebufferTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/FramebufferTest.cpp
@@ -366,6 +366,7 @@
 // tests should be run against.
 ANGLE_INSTANTIATE_TEST(FramebufferFormatsTest,
                        ES2_VULKAN(),
+                       ES3_VULKAN(),
                        ES2_D3D9(),
                        ES2_D3D11(),
                        ES3_D3D11(),
@@ -380,6 +381,9 @@
 // Covers invalidating an incomplete framebuffer. This should be a no-op, but should not error.
 TEST_P(FramebufferTest_ES3, InvalidateIncomplete)
 {
+    // TODO: anglebug.com/3971
+    ANGLE_SKIP_TEST_IF(IsVulkan());
+
     GLFramebuffer framebuffer;
     GLRenderbuffer renderbuffer;
 
@@ -645,7 +649,189 @@
     EXPECT_GL_NO_ERROR();
 }
 
-ANGLE_INSTANTIATE_TEST(FramebufferTest_ES3, ES3_D3D11(), ES3_OPENGL(), ES3_OPENGLES());
+// Test that resizing the color attachment is handled correctly.
+TEST_P(FramebufferTest_ES3, ResizeColorAttachmentSmallToLarge)
+{
+    GLFramebuffer fbo;
+    GLTexture smallTexture;
+    GLTexture largeTexture;
+
+    ANGLE_GL_PROGRAM(greenProgram, essl1_shaders::vs::Simple(), essl1_shaders::fs::Green());
+    ANGLE_GL_PROGRAM(blueProgram, essl1_shaders::vs::Simple(), essl1_shaders::fs::Blue());
+
+    glBindFramebuffer(GL_FRAMEBUFFER, fbo);
+
+    // Bind the small texture
+    glBindTexture(GL_TEXTURE_2D, smallTexture);
+    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, getWindowWidth() / 2, getWindowHeight() / 2, 0, GL_RGBA,
+                 GL_UNSIGNED_BYTE, nullptr);
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+    glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, smallTexture, 0);
+    ASSERT_GLENUM_EQ(GL_FRAMEBUFFER_COMPLETE, glCheckFramebufferStatus(GL_FRAMEBUFFER));
+
+    // Draw to FBO backed by the small texture
+    glUseProgram(greenProgram);
+    drawQuad(greenProgram.get(), std::string(essl1_shaders::PositionAttrib()), 0.0f);
+    ASSERT_GL_NO_ERROR();
+    EXPECT_PIXEL_COLOR_EQ(0, 0, GLColor::green);
+    EXPECT_PIXEL_COLOR_EQ((getWindowWidth() / 2) - 1, (getWindowHeight() / 2) - 1, GLColor::green);
+
+    // Change the attachment to the larger texture that fills the window
+    glBindTexture(GL_TEXTURE_2D, largeTexture);
+    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, getWindowWidth(), getWindowHeight(), 0, GL_RGBA,
+                 GL_UNSIGNED_BYTE, nullptr);
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+    glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, largeTexture, 0);
+    ASSERT_GLENUM_EQ(GL_FRAMEBUFFER_COMPLETE, glCheckFramebufferStatus(GL_FRAMEBUFFER));
+
+    // Draw to FBO backed by the large texture
+    glUseProgram(blueProgram);
+    drawQuad(blueProgram.get(), std::string(essl1_shaders::PositionAttrib()), 0.0f);
+    ASSERT_GL_NO_ERROR();
+    EXPECT_PIXEL_COLOR_EQ(0, 0, GLColor::blue);
+    EXPECT_PIXEL_COLOR_EQ(getWindowWidth() - 1, getWindowHeight() - 1, GLColor::blue);
+}
+
+// Test that resizing the color attachment is handled correctly.
+TEST_P(FramebufferTest_ES3, ResizeColorAttachmentLargeToSmall)
+{
+    GLFramebuffer fbo;
+    GLTexture smallTexture;
+    GLTexture largeTexture;
+
+    ANGLE_GL_PROGRAM(greenProgram, essl1_shaders::vs::Simple(), essl1_shaders::fs::Green());
+    ANGLE_GL_PROGRAM(blueProgram, essl1_shaders::vs::Simple(), essl1_shaders::fs::Blue());
+
+    glBindFramebuffer(GL_FRAMEBUFFER, fbo);
+
+    // Bind the large texture
+    glBindTexture(GL_TEXTURE_2D, largeTexture);
+    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, getWindowWidth(), getWindowHeight(), 0, GL_RGBA,
+                 GL_UNSIGNED_BYTE, nullptr);
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+    glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, largeTexture, 0);
+    ASSERT_GLENUM_EQ(GL_FRAMEBUFFER_COMPLETE, glCheckFramebufferStatus(GL_FRAMEBUFFER));
+
+    // Draw to FBO backed by the large texture
+    glUseProgram(blueProgram);
+    drawQuad(blueProgram.get(), std::string(essl1_shaders::PositionAttrib()), 0.0f);
+    ASSERT_GL_NO_ERROR();
+    EXPECT_PIXEL_COLOR_EQ(0, 0, GLColor::blue);
+    EXPECT_PIXEL_COLOR_EQ(getWindowWidth() - 1, getWindowHeight() - 1, GLColor::blue);
+
+    // Change the attachment to the smaller texture
+    glBindTexture(GL_TEXTURE_2D, smallTexture);
+    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, getWindowWidth() / 2, getWindowHeight() / 2, 0, GL_RGBA,
+                 GL_UNSIGNED_BYTE, nullptr);
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+    glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, smallTexture, 0);
+    ASSERT_GLENUM_EQ(GL_FRAMEBUFFER_COMPLETE, glCheckFramebufferStatus(GL_FRAMEBUFFER));
+
+    // Draw to FBO backed by the small texture
+    glUseProgram(greenProgram);
+    drawQuad(greenProgram.get(), std::string(essl1_shaders::PositionAttrib()), 0.0f);
+    ASSERT_GL_NO_ERROR();
+    EXPECT_PIXEL_COLOR_EQ(0, 0, GLColor::green);
+    EXPECT_PIXEL_COLOR_EQ((getWindowWidth() / 2) - 1, (getWindowHeight() / 2) - 1, GLColor::green);
+}
+
+// Test that resizing the texture is handled correctly.
+TEST_P(FramebufferTest_ES3, ResizeTextureLargeToSmall)
+{
+    GLFramebuffer fbo;
+    GLTexture texture;
+
+    ANGLE_GL_PROGRAM(greenProgram, essl1_shaders::vs::Simple(), essl1_shaders::fs::Green());
+    ANGLE_GL_PROGRAM(blueProgram, essl1_shaders::vs::Simple(), essl1_shaders::fs::Blue());
+
+    glBindFramebuffer(GL_FRAMEBUFFER, fbo);
+
+    // Allocate a large texture
+    glBindTexture(GL_TEXTURE_2D, texture);
+    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, getWindowWidth(), getWindowHeight(), 0, GL_RGBA,
+                 GL_UNSIGNED_BYTE, nullptr);
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+    glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, texture, 0);
+    ASSERT_GLENUM_EQ(GL_FRAMEBUFFER_COMPLETE, glCheckFramebufferStatus(GL_FRAMEBUFFER));
+
+    // Draw to FBO backed by the large texture
+    glUseProgram(blueProgram);
+    drawQuad(blueProgram.get(), std::string(essl1_shaders::PositionAttrib()), 0.0f);
+    ASSERT_GL_NO_ERROR();
+    EXPECT_PIXEL_COLOR_EQ(0, 0, GLColor::blue);
+    EXPECT_PIXEL_COLOR_EQ(getWindowWidth() - 1, getWindowHeight() - 1, GLColor::blue);
+
+    // Shrink the texture
+    glBindTexture(GL_TEXTURE_2D, texture);
+    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, getWindowWidth() / 2, getWindowHeight() / 2, 0, GL_RGBA,
+                 GL_UNSIGNED_BYTE, nullptr);
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+    glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, texture, 0);
+    ASSERT_GLENUM_EQ(GL_FRAMEBUFFER_COMPLETE, glCheckFramebufferStatus(GL_FRAMEBUFFER));
+
+    // Draw to FBO backed by the small texture
+    glUseProgram(greenProgram);
+    drawQuad(greenProgram.get(), std::string(essl1_shaders::PositionAttrib()), 0.0f);
+    ASSERT_GL_NO_ERROR();
+    EXPECT_PIXEL_COLOR_EQ(0, 0, GLColor::green);
+    EXPECT_PIXEL_COLOR_EQ((getWindowWidth() / 2) - 1, (getWindowHeight() / 2) - 1, GLColor::green);
+}
+
+// Test that resizing the texture is handled correctly.
+TEST_P(FramebufferTest_ES3, ResizeTextureSmallToLarge)
+{
+    GLFramebuffer fbo;
+    GLTexture texture;
+
+    ANGLE_GL_PROGRAM(greenProgram, essl1_shaders::vs::Simple(), essl1_shaders::fs::Green());
+    ANGLE_GL_PROGRAM(blueProgram, essl1_shaders::vs::Simple(), essl1_shaders::fs::Blue());
+
+    glBindFramebuffer(GL_FRAMEBUFFER, fbo);
+
+    // Allocate a small texture
+    glBindTexture(GL_TEXTURE_2D, texture);
+    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, getWindowWidth() / 2, getWindowHeight() / 2, 0, GL_RGBA,
+                 GL_UNSIGNED_BYTE, nullptr);
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+    glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, texture, 0);
+    ASSERT_GLENUM_EQ(GL_FRAMEBUFFER_COMPLETE, glCheckFramebufferStatus(GL_FRAMEBUFFER));
+
+    // Draw to FBO backed by the large texture
+    glUseProgram(blueProgram);
+    drawQuad(blueProgram.get(), std::string(essl1_shaders::PositionAttrib()), 0.0f);
+    ASSERT_GL_NO_ERROR();
+    EXPECT_PIXEL_COLOR_EQ(0, 0, GLColor::blue);
+    EXPECT_PIXEL_COLOR_EQ((getWindowWidth() / 2) - 1, (getWindowHeight() / 2) - 1, GLColor::blue);
+
+    // Grow the texture
+    glBindTexture(GL_TEXTURE_2D, texture);
+    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, getWindowWidth(), getWindowHeight(), 0, GL_RGBA,
+                 GL_UNSIGNED_BYTE, nullptr);
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+    glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, texture, 0);
+    ASSERT_GLENUM_EQ(GL_FRAMEBUFFER_COMPLETE, glCheckFramebufferStatus(GL_FRAMEBUFFER));
+
+    // Draw to FBO backed by the small texture
+    glUseProgram(greenProgram);
+    drawQuad(greenProgram.get(), std::string(essl1_shaders::PositionAttrib()), 0.0f);
+    ASSERT_GL_NO_ERROR();
+    EXPECT_PIXEL_COLOR_EQ(0, 0, GLColor::green);
+    EXPECT_PIXEL_COLOR_EQ(getWindowWidth() - 1, getWindowHeight() - 1, GLColor::green);
+}
+
+ANGLE_INSTANTIATE_TEST(FramebufferTest_ES3,
+                       ES3_D3D11(),
+                       ES3_OPENGL(),
+                       ES3_OPENGLES(),
+                       ES3_VULKAN());
 
 class FramebufferTest_ES31 : public ANGLETest
 {
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/GLSLTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/GLSLTest.cpp
index 2541892..e9bef54 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/GLSLTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/GLSLTest.cpp
@@ -6552,7 +6552,11 @@
 TEST_P(GLSLTest, FragData)
 {
     // Ensures that we don't regress and emit Vulkan layer warnings.
-    treatPlatformWarningsAsErrors();
+    // TODO(jonahr): http://anglebug.com/3900 - Remove check once warnings are cleaned up
+    if (IsVulkan())
+    {
+        treatPlatformWarningsAsErrors();
+    }
 
     constexpr char kFS[] = R"(void main() { gl_FragData[0] = vec4(1, 0, 0, 1); })";
     ANGLE_GL_PROGRAM(program, essl1_shaders::vs::Simple(), kFS);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/IndexBufferOffsetTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/IndexBufferOffsetTest.cpp
index bbe0eea..f4fdece 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/IndexBufferOffsetTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/IndexBufferOffsetTest.cpp
@@ -7,7 +7,7 @@
 // IndexBufferOffsetTest.cpp: Test glDrawElements with an offset and an index buffer
 
 #include "test_utils/ANGLETest.h"
-#include "util/system_utils.h"
+#include "util/test_utils.h"
 
 using namespace angle;
 
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/InstancingTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/InstancingTest.cpp
index e65a6f4..8b2d439 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/InstancingTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/InstancingTest.cpp
@@ -588,7 +588,7 @@
         << "Vertex attrib divisor read was not the same that was passed in.";
 }
 
-ANGLE_INSTANTIATE_TEST(InstancingTestES3, ES3_OPENGL(), ES3_OPENGLES(), ES3_D3D11());
+ANGLE_INSTANTIATE_TEST(InstancingTestES3, ES3_OPENGL(), ES3_OPENGLES(), ES3_D3D11(), ES3_VULKAN());
 
 ANGLE_INSTANTIATE_TEST(InstancingTestES31, ES31_OPENGL(), ES31_OPENGLES(), ES31_D3D11());
 
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/LineLoopTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/LineLoopTest.cpp
index 829165b..93ca867 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/LineLoopTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/LineLoopTest.cpp
@@ -43,6 +43,27 @@
 
     void testTearDown() override { glDeleteProgram(mProgram); }
 
+    void checkPixels()
+    {
+        std::vector<GLubyte> pixels(getWindowWidth() * getWindowHeight() * 4);
+        glReadPixels(0, 0, getWindowWidth(), getWindowHeight(), GL_RGBA, GL_UNSIGNED_BYTE,
+                     &pixels[0]);
+
+        ASSERT_GL_NO_ERROR();
+
+        for (int y = 0; y < getWindowHeight(); y++)
+        {
+            for (int x = 0; x < getWindowWidth(); x++)
+            {
+                const GLubyte *pixel = &pixels[0] + ((y * getWindowWidth() + x) * 4);
+
+                EXPECT_EQ(pixel[0], 0);
+                EXPECT_EQ(pixel[1], pixel[2]);
+                ASSERT_EQ(pixel[3], 255);
+            }
+        }
+    }
+
     void runTest(GLenum indexType, GLuint indexBuffer, const void *indexPtr)
     {
         glClear(GL_COLOR_BUFFER_BIT);
@@ -67,23 +88,7 @@
         glUniform4f(mColorLocation, 0, 1, 0, 1);
         glDrawElements(GL_LINE_STRIP, 5, GL_UNSIGNED_BYTE, stripIndices);
 
-        std::vector<GLubyte> pixels(getWindowWidth() * getWindowHeight() * 4);
-        glReadPixels(0, 0, getWindowWidth(), getWindowHeight(), GL_RGBA, GL_UNSIGNED_BYTE,
-                     &pixels[0]);
-
-        ASSERT_GL_NO_ERROR();
-
-        for (int y = 0; y < getWindowHeight(); y++)
-        {
-            for (int x = 0; x < getWindowWidth(); x++)
-            {
-                const GLubyte *pixel = &pixels[0] + ((y * getWindowWidth() + x) * 4);
-
-                EXPECT_EQ(pixel[0], 0);
-                EXPECT_EQ(pixel[1], pixel[2]);
-                EXPECT_EQ(pixel[3], 255);
-            }
-        }
+        checkPixels();
     }
 
     GLuint mProgram;
@@ -197,6 +202,112 @@
     EXPECT_GL_NO_ERROR();
 }
 
+class LineLoopIndirectTest : public LineLoopTest
+{
+  protected:
+    void runTest(GLenum indexType, const void *indices, GLuint indicesSize, GLuint firstIndex)
+    {
+        struct DrawCommand
+        {
+            GLuint count;
+            GLuint primCount;
+            GLuint firstIndex;
+            GLint baseVertex;
+            GLuint reservedMustBeZero;
+        };
+
+        glClear(GL_COLOR_BUFFER_BIT);
+
+        static const GLfloat loopPositions[] = {0.0f,  0.0f, 0.0f, 0.0f, 0.0f, 0.0f,  0.0f,
+                                                0.0f,  0.0f, 0.0f, 0.0f, 0.0f, -0.5f, -0.5f,
+                                                -0.5f, 0.5f, 0.5f, 0.5f, 0.5f, -0.5f};
+
+        static const GLfloat stripPositions[] = {-0.5f, -0.5f, -0.5f, 0.5f,
+                                                 0.5f,  0.5f,  0.5f,  -0.5f};
+        static const GLubyte stripIndices[]   = {1, 0, 3, 2, 1};
+
+        glUseProgram(mProgram);
+
+        GLuint vertexArray = 0;
+        glGenVertexArrays(1, &vertexArray);
+        glBindVertexArray(vertexArray);
+
+        ASSERT_GL_NO_ERROR();
+
+        GLuint vertBuffer = 0;
+        glGenBuffers(1, &vertBuffer);
+        glBindBuffer(GL_ARRAY_BUFFER, vertBuffer);
+        glBufferData(GL_ARRAY_BUFFER, sizeof(loopPositions), loopPositions, GL_STATIC_DRAW);
+        glEnableVertexAttribArray(mPositionLocation);
+        glVertexAttribPointer(mPositionLocation, 2, GL_FLOAT, GL_FALSE, 0, nullptr);
+        glUniform4f(mColorLocation, 0.0f, 0.0f, 1.0f, 1.0f);
+
+        ASSERT_GL_NO_ERROR();
+
+        GLuint buf;
+        glGenBuffers(1, &buf);
+        glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, buf);
+        glBufferData(GL_ELEMENT_ARRAY_BUFFER, indicesSize, indices, GL_STATIC_DRAW);
+
+        DrawCommand cmdBuffer = {};
+        cmdBuffer.count       = 4;
+        cmdBuffer.firstIndex  = firstIndex;
+        cmdBuffer.primCount   = 1;
+        GLuint indirectBuf    = 0;
+        glGenBuffers(1, &indirectBuf);
+        glBindBuffer(GL_DRAW_INDIRECT_BUFFER, indirectBuf);
+        glBufferData(GL_DRAW_INDIRECT_BUFFER, sizeof(DrawCommand), &cmdBuffer, GL_STATIC_DRAW);
+
+        ASSERT_GL_NO_ERROR();
+
+        glDrawElementsIndirect(GL_LINE_LOOP, indexType, nullptr);
+        ASSERT_GL_NO_ERROR();
+
+        glBindBuffer(GL_DRAW_INDIRECT_BUFFER, 0);
+        glDeleteBuffers(1, &indirectBuf);
+
+        glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
+        glDeleteBuffers(1, &buf);
+
+        glBindVertexArray(0);
+        glDeleteVertexArrays(1, &vertexArray);
+
+        glBindBuffer(GL_ARRAY_BUFFER, 0);
+        glDeleteBuffers(1, &vertBuffer);
+
+        glEnableVertexAttribArray(mPositionLocation);
+        glVertexAttribPointer(mPositionLocation, 2, GL_FLOAT, GL_FALSE, 0, stripPositions);
+        glUniform4f(mColorLocation, 0, 1, 0, 1);
+        glDrawElements(GL_LINE_STRIP, 5, GL_UNSIGNED_BYTE, stripIndices);
+
+        checkPixels();
+    }
+};
+
+TEST_P(LineLoopIndirectTest, UByteIndexIndirectBuffer)
+{
+
+    // Disable D3D11 SDK Layers warnings checks, see ANGLE issue 667 for details
+    ignoreD3D11SDKLayersWarnings();
+
+    static const GLubyte indices[] = {0, 7, 6, 9, 8, 0};
+
+    // Start at index 1.
+    runTest(GL_UNSIGNED_BYTE, reinterpret_cast<const void *>(indices), sizeof(indices), 1);
+}
+
+TEST_P(LineLoopIndirectTest, UShortIndexIndirectBuffer)
+{
+
+    // Disable D3D11 SDK Layers warnings checks, see ANGLE issue 667 for details
+    ignoreD3D11SDKLayersWarnings();
+
+    static const GLushort indices[] = {0, 7, 6, 9, 8, 0};
+
+    // Start at index 1.
+    runTest(GL_UNSIGNED_SHORT, reinterpret_cast<const void *>(indices), sizeof(indices), 1);
+}
+
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
 ANGLE_INSTANTIATE_TEST(LineLoopTest,
@@ -205,3 +316,5 @@
                        ES2_OPENGL(),
                        ES2_OPENGLES(),
                        ES2_VULKAN());
+
+ANGLE_INSTANTIATE_TEST(LineLoopIndirectTest, ES31_OPENGLES(), ES31_VULKAN());
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/LinkAndRelinkTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/LinkAndRelinkTest.cpp
index 11d645d..a44b55b 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/LinkAndRelinkTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/LinkAndRelinkTest.cpp
@@ -156,6 +156,46 @@
     EXPECT_GL_ERROR(GL_INVALID_OPERATION);
 }
 
+// Tests uniform default values.
+TEST_P(LinkAndRelinkTest, UniformDefaultValues)
+{
+    // TODO(anglebug.com/3969): Understand why rectangle texture CLs made this fail.
+    ANGLE_SKIP_TEST_IF(IsOzone() && IsIntel());
+    constexpr char kFS[] = R"(precision mediump float;
+uniform vec4 u_uniform;
+
+bool isZero(vec4 value) {
+    return value == vec4(0,0,0,0);
+}
+
+void main()
+{
+    gl_FragColor = isZero(u_uniform) ? vec4(0, 1, 0, 1) : vec4(1, 0, 0, 1);
+})";
+
+    ANGLE_GL_PROGRAM(program, essl1_shaders::vs::Simple(), kFS);
+    glUseProgram(program);
+
+    drawQuad(program, essl1_shaders::PositionAttrib(), 0.5f, 1.0f, true);
+    ASSERT_GL_NO_ERROR();
+    EXPECT_PIXEL_COLOR_EQ(0, 0, GLColor::green);
+
+    GLint loc = glGetUniformLocation(program, "u_uniform");
+    ASSERT_NE(-1, loc);
+    glUniform4f(loc, 0.1f, 0.2f, 0.3f, 0.4f);
+
+    drawQuad(program, essl1_shaders::PositionAttrib(), 0.5f, 1.0f, true);
+    ASSERT_GL_NO_ERROR();
+    EXPECT_PIXEL_COLOR_EQ(0, 0, GLColor::red);
+
+    glLinkProgram(program);
+    ASSERT_GL_NO_ERROR();
+
+    drawQuad(program, essl1_shaders::PositionAttrib(), 0.5f, 1.0f, true);
+    ASSERT_GL_NO_ERROR();
+    EXPECT_PIXEL_COLOR_EQ(0, 0, GLColor::green);
+}
+
 // When program link fails and no valid compute program is installed in the GL
 // state before the link, it should report an error for UseProgram and
 // DispatchCompute.
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/MipmapTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/MipmapTest.cpp
index 4c7f1c5..79638cb 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/MipmapTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/MipmapTest.cpp
@@ -940,6 +940,10 @@
 // Then tests if the mipmaps are rendered correctly for all two layers.
 TEST_P(MipmapTestES3, MipmapsForTexture3D)
 {
+    // TODO(cnorthrop): Enabled the group to cover texture base level, but this test
+    // needs some triage: http://anglebug.com/3950
+    ANGLE_SKIP_TEST_IF(IsVulkan());
+
     int px = getWindowWidth() / 2;
     int py = getWindowHeight() / 2;
 
@@ -1184,6 +1188,9 @@
 // be clamped, so the call doesn't generate an error.
 TEST_P(MipmapTestES3, GenerateMipmapBaseLevelOutOfRangeImmutableTexture)
 {
+    // TODO(cnorthrop): Interacts with immutable texture supprt: http://anglebug.com/3950
+    ANGLE_SKIP_TEST_IF(IsVulkan());
+
     glBindTexture(GL_TEXTURE_2D, mTexture);
 
     glTexStorage2D(GL_TEXTURE_2D, 1, GL_RGBA8, 1, 1);
@@ -1215,6 +1222,9 @@
     // Probably not Intel.
     ANGLE_SKIP_TEST_IF(IsOSX() && (IsNVIDIA() || IsIntel()));
 
+    // TODO(cnorthrop): Figure out what's going on here: http://anglebug.com/3950
+    ANGLE_SKIP_TEST_IF(IsVulkan());
+
     std::vector<GLColor> texDataRed(2u * 2u, GLColor::red);
 
     glBindTexture(GL_TEXTURE_2D, mTexture);
@@ -1244,5 +1254,6 @@
                        ES3_OPENGL(),
                        ES2_OPENGLES(),
                        ES3_OPENGLES(),
-                       ES2_VULKAN());
-ANGLE_INSTANTIATE_TEST(MipmapTestES3, ES3_D3D11(), ES3_OPENGL(), ES3_OPENGLES());
+                       ES2_VULKAN(),
+                       ES3_VULKAN());
+ANGLE_INSTANTIATE_TEST(MipmapTestES3, ES3_D3D11(), ES3_OPENGL(), ES3_OPENGLES(), ES3_VULKAN());
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/OcclusionQueriesTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/OcclusionQueriesTest.cpp
index 5b25fea..3d2f9d5 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/OcclusionQueriesTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/OcclusionQueriesTest.cpp
@@ -7,7 +7,7 @@
 #include "test_utils/ANGLETest.h"
 #include "util/EGLWindow.h"
 #include "util/random_utils.h"
-#include "util/system_utils.h"
+#include "util/test_utils.h"
 
 using namespace angle;
 
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/ParallelShaderCompileTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/ParallelShaderCompileTest.cpp
index 02936de..8da54e7 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/ParallelShaderCompileTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/ParallelShaderCompileTest.cpp
@@ -10,6 +10,7 @@
 #include "test_utils/gl_raii.h"
 
 #include "util/random_utils.h"
+#include "util/test_utils.h"
 
 using namespace angle;
 
@@ -157,7 +158,7 @@
                     }
                     ++i;
                 }
-                Sleep(kPollInterval);
+                angle::Sleep(kPollInterval);
             }
 
             while (!linkTasks.empty())
@@ -174,7 +175,7 @@
                     }
                     ++i;
                 }
-                Sleep(kPollInterval);
+                angle::Sleep(kPollInterval);
             }
         }
     };
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/ProgramInterfaceTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/ProgramInterfaceTest.cpp
index aa1e74d..bebff37 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/ProgramInterfaceTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/ProgramInterfaceTest.cpp
@@ -1195,6 +1195,10 @@
     glDeleteProgram(program);
 }
 
-ANGLE_INSTANTIATE_TEST(ProgramInterfaceTestES31, ES31_OPENGL(), ES31_OPENGLES(), ES31_D3D11());
+ANGLE_INSTANTIATE_TEST(ProgramInterfaceTestES31,
+                       ES31_OPENGL(),
+                       ES31_OPENGLES(),
+                       ES31_D3D11(),
+                       ES31_VULKAN());
 
 }  // anonymous namespace
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/SimpleOperationTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/SimpleOperationTest.cpp
index b11f468..e4e1f27 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/SimpleOperationTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/SimpleOperationTest.cpp
@@ -1094,6 +1094,7 @@
                        ES3_OPENGL(),
                        ES2_OPENGLES(),
                        ES3_OPENGLES(),
-                       ES2_VULKAN());
+                       ES2_VULKAN(),
+                       ES2_VULKAN_SWIFTSHADER());
 
 }  // namespace
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/StateChangeTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/StateChangeTest.cpp
index 8cbaf87..516aec7 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/StateChangeTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/StateChangeTest.cpp
@@ -3086,10 +3086,6 @@
 // and then dispatch again correctly.
 TEST_P(SimpleStateChangeTestES31, DispatchWithImageTextureTexSubImageThenDispatchAgain)
 {
-    // The change to the texture between the dispatch calls is not flushed in the Vulkan backend.
-    // http://anglebug.com/3539
-    ANGLE_SKIP_TEST_IF(IsVulkan());
-
     std::array<GLColor, 4> colors    = {{GLColor::red, GLColor::red, GLColor::red, GLColor::red}};
     std::array<GLColor, 4> subColors = {
         {GLColor::green, GLColor::green, GLColor::green, GLColor::green}};
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/TextureTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/TextureTest.cpp
index 1e3f80d..6031f04 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/TextureTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/TextureTest.cpp
@@ -13,11 +13,14 @@
 namespace
 {
 
-constexpr unsigned int kPixelTolerance = 1u;
+constexpr GLuint kPixelTolerance     = 1u;
+constexpr GLfloat kPixelTolerance32F = 0.01f;
 
 // 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).
+// For legacy formats, the components may be reordered to match the color that
+// would be created if a pixel of that format was initialized from the given color
 GLColor SliceFormatColor(GLenum format, GLColor full)
 {
     switch (format)
@@ -30,12 +33,43 @@
             return GLColor(full.R, full.G, full.B, 255u);
         case GL_RGBA:
             return full;
+        case GL_LUMINANCE:
+            return GLColor(full.R, full.R, full.R, 255u);
+        case GL_ALPHA:
+            return GLColor(0, 0, 0, full.R);
+        case GL_LUMINANCE_ALPHA:
+            return GLColor(full.R, full.R, full.R, full.G);
         default:
             EXPECT_TRUE(false);
             return GLColor::white;
     }
 }
 
+// As above, for 32F colors
+GLColor32F SliceFormatColor32F(GLenum format, GLColor32F full)
+{
+    switch (format)
+    {
+        case GL_RED:
+            return GLColor32F(full.R, 0.0f, 0.0f, 1.0f);
+        case GL_RG:
+            return GLColor32F(full.R, full.G, 0.0f, 1.0f);
+        case GL_RGB:
+            return GLColor32F(full.R, full.G, full.B, 1.0f);
+        case GL_RGBA:
+            return full;
+        case GL_LUMINANCE:
+            return GLColor32F(full.R, full.R, full.R, 1.0f);
+        case GL_ALPHA:
+            return GLColor32F(0.0f, 0.0f, 0.0f, full.R);
+        case GL_LUMINANCE_ALPHA:
+            return GLColor32F(full.R, full.R, full.R, full.G);
+        default:
+            EXPECT_TRUE(false);
+            return GLColor32F(1.0f, 1.0f, 1.0f, 1.0f);
+    }
+}
+
 class TexCoordDrawTest : public ANGLETest
 {
   protected:
@@ -1754,7 +1788,7 @@
     }
 }
 
-// See description on testFloatCopySubImage
+// Tests CopySubImage for float formats
 TEST_P(Texture2DTest, CopySubImageFloat_R_R)
 {
     testFloatCopySubImage(1, 1);
@@ -1783,7 +1817,7 @@
 TEST_P(Texture2DTest, CopySubImageFloat_RGB_RGB)
 {
     // TODO(cwallez): Fix on Linux Intel drivers (http://anglebug.com/1346)
-    ANGLE_SKIP_TEST_IF(IsIntel() && IsLinux());
+    ANGLE_SKIP_TEST_IF(IsIntel() && IsLinux() && IsOpenGL());
 
     // Ignore SDK layers messages on D3D11 FL 9.3 (http://anglebug.com/1284)
     ANGLE_SKIP_TEST_IF(IsD3D11_FL93());
@@ -1811,10 +1845,6 @@
 
 TEST_P(Texture2DTest, CopySubImageFloat_RGBA_RGBA)
 {
-    // TODO(lucferron): This test fails only on linux and intel.
-    // http://anglebug.com/2726
-    ANGLE_SKIP_TEST_IF(IsVulkan() && IsLinux() && IsIntel());
-
     // Ignore SDK layers messages on D3D11 FL 9.3 (http://anglebug.com/1284)
     ANGLE_SKIP_TEST_IF(IsD3D11_FL93());
 
@@ -1940,6 +1970,8 @@
     ANGLE_SKIP_TEST_IF(IsWindows() && IsAMD() && IsOpenGL());
     // D3D Debug device reports an error. http://anglebug.com/3501
     ANGLE_SKIP_TEST_IF(IsWindows() && IsD3D11());
+    // TODO(cnorthrop): Needs triage on Vulkan backend. http://anglebug.com/3950
+    ANGLE_SKIP_TEST_IF(IsVulkan());
 
     // The workaround in the GL backend required to trigger this bug generates driver warning
     // messages.
@@ -1985,6 +2017,9 @@
     // 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());
+
     setUpProgram();
 
     constexpr GLint width  = 8;
@@ -2642,6 +2677,9 @@
 // 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];
@@ -4028,11 +4066,11 @@
         glGenRenderbuffers(1, &mRenderbuffer);
 
         glBindTexture(GL_TEXTURE_2D, mRenderableTexture);
-        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
-        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
         glBindTexture(GL_TEXTURE_2D, mTestTexture);
-        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
-        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
 
         glBindTexture(GL_TEXTURE_2D, 0);
 
@@ -4139,7 +4177,7 @@
 }
 
 // Test half-float texture formats enabled by the GL_EXT_texture_rg extension.
-TEST_P(Texture2DRGTest, TextureRGFHalfFloatTest)
+TEST_P(Texture2DRGTest, TextureRGHalfFloatTest)
 {
     ANGLE_SKIP_TEST_IF(!IsGLExtensionEnabled("GL_EXT_texture_rg"));
     ANGLE_SKIP_TEST_IF(!IsGLExtensionEnabled("GL_OES_texture_half_float"));
@@ -4158,6 +4196,452 @@
     testRGTexture(SliceFormatColor(GL_RG_EXT, expectedColor));
 }
 
+class Texture2DFloatTest : public Texture2DTest
+{
+  protected:
+    Texture2DFloatTest()
+        : Texture2DTest(), mRenderableTexture(0), mTestTexture(0), mFBO(0), mRenderbuffer(0)
+    {}
+
+    void testSetUp() override
+    {
+        Texture2DTest::testSetUp();
+
+        glActiveTexture(GL_TEXTURE0);
+        glGenTextures(1, &mRenderableTexture);
+        glGenTextures(1, &mTestTexture);
+        glGenFramebuffers(1, &mFBO);
+        glGenRenderbuffers(1, &mRenderbuffer);
+
+        setUpProgram();
+        glUseProgram(mProgram);
+        glUniform1i(mTexture2DUniformLocation, 0);
+
+        glBindTexture(GL_TEXTURE_2D, mRenderableTexture);
+        glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, nullptr);
+
+        glBindFramebuffer(GL_FRAMEBUFFER, mFBO);
+        glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D,
+                               mRenderableTexture, 0);
+
+        ASSERT_GL_NO_ERROR();
+    }
+
+    void testTearDown() override
+    {
+        glDeleteTextures(1, &mRenderableTexture);
+        glDeleteTextures(1, &mTestTexture);
+        glDeleteFramebuffers(1, &mFBO);
+        glDeleteRenderbuffers(1, &mRenderbuffer);
+
+        Texture2DTest::testTearDown();
+    }
+
+    void testFloatTextureSample(GLenum internalFormat, GLenum format, GLenum type)
+    {
+        constexpr GLfloat imageDataFloat[] = {
+            0.2f,
+            0.3f,
+            0.4f,
+            0.5f,
+        };
+        constexpr GLhalf imageDataHalf[] = {
+            0x3266,
+            0x34CD,
+            0x3666,
+            0x3800,
+        };
+        GLColor expectedValue;
+        for (int i = 0; i < 4; i++)
+        {
+            expectedValue[i] = static_cast<GLubyte>(imageDataFloat[i] * 255.0f);
+        }
+
+        const GLvoid *imageData;
+        switch (type)
+        {
+            case GL_FLOAT:
+                imageData = imageDataFloat;
+                break;
+            case GL_HALF_FLOAT:
+            case GL_HALF_FLOAT_OES:
+                imageData = imageDataHalf;
+                break;
+            default:
+                imageData = nullptr;
+        }
+        ASSERT(imageData != nullptr);
+
+        glBindTexture(GL_TEXTURE_2D, mTestTexture);
+        glTexImage2D(GL_TEXTURE_2D, 0, internalFormat, 1, 1, 0, format, type, imageData);
+
+        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+
+        glBindFramebuffer(GL_FRAMEBUFFER, mFBO);
+        drawQuad(mProgram, "position", 0.5f);
+
+        EXPECT_GL_NO_ERROR();
+        EXPECT_PIXEL_COLOR_NEAR(0, 0, SliceFormatColor(format, expectedValue), kPixelTolerance);
+    }
+
+    void testFloatTextureLinear(GLenum internalFormat, GLenum format, GLenum type)
+    {
+        int numComponents;
+        switch (format)
+        {
+            case GL_RGBA:
+                numComponents = 4;
+                break;
+            case GL_RGB:
+                numComponents = 3;
+                break;
+            case GL_LUMINANCE_ALPHA:
+                numComponents = 2;
+                break;
+            case GL_LUMINANCE:
+            case GL_ALPHA:
+                numComponents = 1;
+                break;
+            default:
+                numComponents = 0;
+        }
+        ASSERT(numComponents > 0);
+
+        constexpr GLfloat pixelIntensitiesFloat[] = {0.0f, 1.0f, 0.0f, 1.0f};
+        constexpr GLhalf pixelIntensitiesHalf[]   = {0x0000, 0x3C00, 0x0000, 0x3C00};
+
+        GLfloat imageDataFloat[16];
+        GLhalf imageDataHalf[16];
+        for (int i = 0; i < 4; i++)
+        {
+            for (int c = 0; c < numComponents; c++)
+            {
+                imageDataFloat[i * numComponents + c] = pixelIntensitiesFloat[i];
+                imageDataHalf[i * numComponents + c]  = pixelIntensitiesHalf[i];
+            }
+        }
+
+        const GLvoid *imageData;
+        switch (type)
+        {
+            case GL_FLOAT:
+                imageData = imageDataFloat;
+                break;
+            case GL_HALF_FLOAT:
+            case GL_HALF_FLOAT_OES:
+                imageData = imageDataHalf;
+                break;
+            default:
+                imageData = nullptr;
+        }
+        ASSERT(imageData != nullptr);
+
+        glBindTexture(GL_TEXTURE_2D, mTestTexture);
+        glTexImage2D(GL_TEXTURE_2D, 0, internalFormat, 2, 2, 0, format, type, imageData);
+
+        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+
+        glBindFramebuffer(GL_FRAMEBUFFER, mFBO);
+        drawQuad(mProgram, "position", 0.5f);
+
+        EXPECT_GL_NO_ERROR();
+        // Source texture contains 2 black pixels and 2 white pixels, we sample in the center so we
+        // should expect the final value to be gray (halfway in-between)
+        EXPECT_PIXEL_COLOR_NEAR(0, 0, SliceFormatColor(format, GLColor(127u, 127u, 127u, 127u)),
+                                kPixelTolerance);
+    }
+
+    bool performFloatTextureRender(GLenum internalFormat,
+                                   GLenum renderBufferFormat,
+                                   GLenum format,
+                                   GLenum type)
+    {
+        glBindTexture(GL_TEXTURE_2D, mTestTexture);
+        glTexImage2D(GL_TEXTURE_2D, 0, internalFormat, 1, 1, 0, format, type, nullptr);
+        glBindTexture(GL_TEXTURE_2D, 0);
+
+        glBindRenderbuffer(GL_RENDERBUFFER, mRenderbuffer);
+        glRenderbufferStorage(GL_RENDERBUFFER, renderBufferFormat, 1, 1);
+        glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER,
+                                  mRenderbuffer);
+        glBindRenderbuffer(GL_RENDERBUFFER, 0);
+        EXPECT_GL_NO_ERROR();
+
+        if (glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE)
+        {
+            return false;
+        }
+
+        glBindFramebuffer(GL_FRAMEBUFFER, mFBO);
+
+        glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
+        glClear(GL_COLOR_BUFFER_BIT);
+
+        EXPECT_GL_NO_ERROR();
+        return true;
+    }
+
+    GLuint mRenderableTexture;
+    GLuint mTestTexture;
+    GLuint mFBO;
+    GLuint mRenderbuffer;
+};
+
+class Texture2DFloatTestES3 : public Texture2DFloatTest
+{
+  protected:
+    void testFloatTextureRender(GLenum internalFormat, GLenum format, GLenum type)
+    {
+        bool framebufferComplete =
+            performFloatTextureRender(internalFormat, internalFormat, format, type);
+        EXPECT_TRUE(framebufferComplete);
+        EXPECT_PIXEL_COLOR32F_NEAR(0, 0,
+                                   SliceFormatColor32F(format, GLColor32F(1.0f, 1.0f, 1.0f, 1.0f)),
+                                   kPixelTolerance32F);
+    }
+};
+
+class Texture2DFloatTestES2 : public Texture2DFloatTest
+{
+  protected:
+    bool checkFloatTextureRender(GLenum renderBufferFormat, GLenum format, GLenum type)
+    {
+        bool framebufferComplete =
+            performFloatTextureRender(format, renderBufferFormat, format, type);
+
+        if (!framebufferComplete)
+        {
+            return false;
+        }
+
+        EXPECT_PIXEL_COLOR32F_NEAR(0, 0,
+                                   SliceFormatColor32F(format, GLColor32F(1.0f, 1.0f, 1.0f, 1.0f)),
+                                   kPixelTolerance32F);
+        return true;
+    }
+};
+
+// Test texture sampling for ES3 float texture formats
+TEST_P(Texture2DFloatTestES3, TextureFloatSampleBasicTest)
+{
+    testFloatTextureSample(GL_RGBA32F, GL_RGBA, GL_FLOAT);
+    testFloatTextureSample(GL_RGB32F, GL_RGB, GL_FLOAT);
+}
+
+// Test texture sampling for ES2 float texture formats
+TEST_P(Texture2DFloatTestES2, TextureFloatSampleBasicTest)
+{
+    ANGLE_SKIP_TEST_IF(!IsGLExtensionEnabled("GL_OES_texture_float"));
+    testFloatTextureSample(GL_RGBA, GL_RGBA, GL_FLOAT);
+    testFloatTextureSample(GL_RGB, GL_RGB, GL_FLOAT);
+}
+
+// Test texture sampling for ES3 half float texture formats
+TEST_P(Texture2DFloatTestES3, TextureHalfFloatSampleBasicTest)
+{
+    testFloatTextureSample(GL_RGBA16F, GL_RGBA, GL_HALF_FLOAT);
+    testFloatTextureSample(GL_RGB16F, GL_RGB, GL_HALF_FLOAT);
+}
+
+// Test texture sampling for ES2 half float texture formats
+TEST_P(Texture2DFloatTestES2, TextureHalfFloatSampleBasicTest)
+{
+    ANGLE_SKIP_TEST_IF(!IsGLExtensionEnabled("GL_OES_texture_half_float"));
+    testFloatTextureSample(GL_RGBA, GL_RGBA, GL_HALF_FLOAT_OES);
+    testFloatTextureSample(GL_RGB, GL_RGB, GL_HALF_FLOAT_OES);
+}
+
+// Test texture sampling for legacy GLES 2.0 float texture formats in ES3
+TEST_P(Texture2DFloatTestES3, TextureFloatSampleLegacyTest)
+{
+    ANGLE_SKIP_TEST_IF(!IsGLExtensionEnabled("GL_OES_texture_float"));
+
+    testFloatTextureSample(GL_LUMINANCE, GL_LUMINANCE, GL_FLOAT);
+    testFloatTextureSample(GL_ALPHA, GL_ALPHA, GL_FLOAT);
+    testFloatTextureSample(GL_LUMINANCE_ALPHA, GL_LUMINANCE_ALPHA, GL_FLOAT);
+
+    if (IsGLExtensionEnabled("GL_EXT_texture_storage"))
+    {
+        testFloatTextureSample(GL_LUMINANCE32F_EXT, GL_LUMINANCE, GL_FLOAT);
+        testFloatTextureSample(GL_ALPHA32F_EXT, GL_ALPHA, GL_FLOAT);
+        testFloatTextureSample(GL_LUMINANCE_ALPHA32F_EXT, GL_LUMINANCE_ALPHA, GL_FLOAT);
+    }
+}
+
+// Test texture sampling for legacy GLES 2.0 float texture formats in ES2
+TEST_P(Texture2DFloatTestES2, TextureFloatSampleLegacyTest)
+{
+    ANGLE_SKIP_TEST_IF(!IsGLExtensionEnabled("GL_OES_texture_float"));
+
+    testFloatTextureSample(GL_LUMINANCE, GL_LUMINANCE, GL_FLOAT);
+    testFloatTextureSample(GL_ALPHA, GL_ALPHA, GL_FLOAT);
+    testFloatTextureSample(GL_LUMINANCE_ALPHA, GL_LUMINANCE_ALPHA, GL_FLOAT);
+}
+
+// Test texture sampling for legacy GLES 2.0 half float texture formats in ES3
+TEST_P(Texture2DFloatTestES3, TextureHalfFloatSampleLegacyTest)
+{
+    ANGLE_SKIP_TEST_IF(!IsGLExtensionEnabled("GL_OES_texture_half_float"));
+
+    testFloatTextureSample(GL_LUMINANCE, GL_LUMINANCE, GL_HALF_FLOAT_OES);
+    testFloatTextureSample(GL_ALPHA, GL_ALPHA, GL_HALF_FLOAT_OES);
+    testFloatTextureSample(GL_LUMINANCE_ALPHA, GL_LUMINANCE_ALPHA, GL_HALF_FLOAT_OES);
+
+    if (IsGLExtensionEnabled("GL_EXT_texture_storage"))
+    {
+        testFloatTextureSample(GL_LUMINANCE16F_EXT, GL_LUMINANCE, GL_HALF_FLOAT);
+        testFloatTextureSample(GL_ALPHA16F_EXT, GL_ALPHA, GL_HALF_FLOAT);
+        testFloatTextureSample(GL_LUMINANCE_ALPHA16F_EXT, GL_LUMINANCE_ALPHA, GL_HALF_FLOAT);
+    }
+}
+// Test texture sampling for legacy GLES 2.0 half float texture formats in ES2
+TEST_P(Texture2DFloatTestES2, TextureHalfFloatSampleLegacyTest)
+{
+    ANGLE_SKIP_TEST_IF(!IsGLExtensionEnabled("GL_OES_texture_half_float"));
+
+    testFloatTextureSample(GL_LUMINANCE, GL_LUMINANCE, GL_HALF_FLOAT_OES);
+    testFloatTextureSample(GL_ALPHA, GL_ALPHA, GL_HALF_FLOAT_OES);
+    testFloatTextureSample(GL_LUMINANCE_ALPHA, GL_LUMINANCE_ALPHA, GL_HALF_FLOAT_OES);
+}
+
+// Test linear sampling for ES3 32F formats
+TEST_P(Texture2DFloatTestES3, TextureFloatLinearTest)
+{
+    ANGLE_SKIP_TEST_IF(!IsGLExtensionEnabled("GL_OES_texture_float_linear"));
+
+    testFloatTextureLinear(GL_RGBA32F, GL_RGBA, GL_FLOAT);
+    testFloatTextureLinear(GL_RGB32F, GL_RGB, GL_FLOAT);
+}
+// Test linear sampling for ES2 32F formats
+TEST_P(Texture2DFloatTestES2, TextureFloatLinearTest)
+{
+    ANGLE_SKIP_TEST_IF(!IsGLExtensionEnabled("GL_OES_texture_float_linear"));
+
+    ANGLE_SKIP_TEST_IF(!IsGLExtensionEnabled("GL_OES_texture_float"));
+
+    testFloatTextureLinear(GL_RGBA, GL_RGBA, GL_FLOAT);
+}
+
+// Test linear sampling for ES3 16F formats
+TEST_P(Texture2DFloatTestES3, TextureHalfFloatLinearTest)
+{
+    // Half float formats must be linearly filterable in GLES 3.0 core
+    testFloatTextureLinear(GL_RGBA16F, GL_RGBA, GL_HALF_FLOAT);
+    testFloatTextureLinear(GL_RGB16F, GL_RGB, GL_HALF_FLOAT);
+}
+// Test linear sampling for ES2 16F formats
+TEST_P(Texture2DFloatTestES2, TextureHalfFloatLinearTest)
+{
+    ANGLE_SKIP_TEST_IF(!IsGLExtensionEnabled("GL_OES_texture_half_float_linear"));
+    testFloatTextureLinear(GL_RGBA, GL_RGBA, GL_HALF_FLOAT_OES);
+    testFloatTextureLinear(GL_RGB, GL_RGB, GL_HALF_FLOAT_OES);
+}
+
+// Test linear sampling for legacy GLES 2.0 32F formats in ES3
+TEST_P(Texture2DFloatTestES3, TextureFloatLinearLegacyTest)
+{
+    ANGLE_SKIP_TEST_IF(!IsGLExtensionEnabled("GL_OES_texture_float"));
+    ANGLE_SKIP_TEST_IF(!IsGLExtensionEnabled("GL_OES_texture_float_linear"));
+
+    testFloatTextureLinear(GL_LUMINANCE, GL_LUMINANCE, GL_FLOAT);
+    testFloatTextureLinear(GL_ALPHA, GL_ALPHA, GL_FLOAT);
+    testFloatTextureLinear(GL_LUMINANCE_ALPHA, GL_LUMINANCE_ALPHA, GL_FLOAT);
+
+    if (IsGLExtensionEnabled("GL_EXT_texture_storage"))
+    {
+        testFloatTextureLinear(GL_LUMINANCE32F_EXT, GL_LUMINANCE, GL_FLOAT);
+        testFloatTextureLinear(GL_ALPHA32F_EXT, GL_ALPHA, GL_FLOAT);
+        testFloatTextureLinear(GL_LUMINANCE_ALPHA32F_EXT, GL_LUMINANCE_ALPHA, GL_FLOAT);
+    }
+}
+// Test linear sampling for legacy GLES 2.0 32F formats in ES2
+TEST_P(Texture2DFloatTestES2, TextureFloatLinearLegacyTest)
+{
+    ANGLE_SKIP_TEST_IF(!IsGLExtensionEnabled("GL_OES_texture_float"));
+    ANGLE_SKIP_TEST_IF(!IsGLExtensionEnabled("GL_OES_texture_float_linear"));
+
+    testFloatTextureLinear(GL_LUMINANCE, GL_LUMINANCE, GL_FLOAT);
+    testFloatTextureLinear(GL_ALPHA, GL_ALPHA, GL_FLOAT);
+    testFloatTextureLinear(GL_LUMINANCE_ALPHA, GL_LUMINANCE_ALPHA, GL_FLOAT);
+}
+
+// Test linear sampling for legacy GLES 2.0 16F formats in ES3
+TEST_P(Texture2DFloatTestES3, TextureHalfFloatLinearLegacyTest)
+{
+    ANGLE_SKIP_TEST_IF(!IsGLExtensionEnabled("GL_OES_texture_half_float"));
+    ANGLE_SKIP_TEST_IF(!IsGLExtensionEnabled("GL_OES_texture_half_float_linear"));
+
+    testFloatTextureLinear(GL_LUMINANCE, GL_LUMINANCE, GL_HALF_FLOAT_OES);
+    testFloatTextureLinear(GL_ALPHA, GL_ALPHA, GL_HALF_FLOAT_OES);
+    testFloatTextureLinear(GL_LUMINANCE_ALPHA, GL_LUMINANCE_ALPHA, GL_HALF_FLOAT_OES);
+
+    if (IsGLExtensionEnabled("GL_EXT_texture_storage"))
+    {
+        testFloatTextureLinear(GL_LUMINANCE16F_EXT, GL_LUMINANCE, GL_HALF_FLOAT);
+        testFloatTextureLinear(GL_ALPHA16F_EXT, GL_ALPHA, GL_HALF_FLOAT);
+        testFloatTextureLinear(GL_LUMINANCE_ALPHA16F_EXT, GL_LUMINANCE_ALPHA, GL_HALF_FLOAT);
+    }
+}
+// Test linear sampling for legacy GLES 2.0 16F formats in ES2
+TEST_P(Texture2DFloatTestES2, TextureHalfFloatLinearLegacyTest)
+{
+    ANGLE_SKIP_TEST_IF(!IsGLExtensionEnabled("GL_OES_texture_half_float"));
+    ANGLE_SKIP_TEST_IF(!IsGLExtensionEnabled("GL_OES_texture_half_float_linear"));
+
+    testFloatTextureLinear(GL_LUMINANCE, GL_LUMINANCE, GL_HALF_FLOAT_OES);
+    testFloatTextureLinear(GL_ALPHA, GL_ALPHA, GL_HALF_FLOAT_OES);
+    testFloatTextureLinear(GL_LUMINANCE_ALPHA, GL_LUMINANCE_ALPHA, GL_HALF_FLOAT_OES);
+}
+
+// Test color-renderability for ES3 float and half float textures
+TEST_P(Texture2DFloatTestES3, TextureFloatRenderTest)
+{
+    // EXT_color_buffer_float covers float, half float, and 11-11-10 float formats
+    ANGLE_SKIP_TEST_IF(!IsGLExtensionEnabled("GL_EXT_color_buffer_float"));
+
+    testFloatTextureRender(GL_R32F, GL_RED, GL_FLOAT);
+    testFloatTextureRender(GL_RG32F, GL_RG, GL_FLOAT);
+    testFloatTextureRender(GL_RGBA32F, GL_RGBA, GL_FLOAT);
+
+    testFloatTextureRender(GL_R16F, GL_RED, GL_HALF_FLOAT);
+    testFloatTextureRender(GL_RG16F, GL_RG, GL_HALF_FLOAT);
+    testFloatTextureRender(GL_RGBA16F, GL_RGBA, GL_HALF_FLOAT);
+
+    testFloatTextureRender(GL_R11F_G11F_B10F, GL_RGB, GL_FLOAT);
+}
+
+// Test color-renderability for ES2 half float textures
+TEST_P(Texture2DFloatTestES2, TextureFloatRenderTest)
+{
+    // EXT_color_buffer_half_float requires at least one format to be renderable, but does not
+    // require a specific one
+    ANGLE_SKIP_TEST_IF(!IsGLExtensionEnabled("GL_EXT_color_buffer_half_float"));
+    // https://crbug.com/1003971
+    ANGLE_SKIP_TEST_IF(IsOzone());
+
+    bool atLeastOneSupported = false;
+
+    if (IsGLExtensionEnabled("GL_OES_texture_half_float") ||
+        IsGLExtensionEnabled("GL_OES_texture_half_float"))
+    {
+        atLeastOneSupported |= checkFloatTextureRender(GL_R16F_EXT, GL_RED_EXT, GL_HALF_FLOAT_OES);
+        atLeastOneSupported |= checkFloatTextureRender(GL_RG16F_EXT, GL_RG_EXT, GL_HALF_FLOAT_OES);
+    }
+    if (IsGLExtensionEnabled("GL_OES_texture_half_float"))
+    {
+        atLeastOneSupported |= checkFloatTextureRender(GL_RGB16F_EXT, GL_RGB, GL_HALF_FLOAT_OES);
+
+        // If OES_texture_half_float is supported, then RGBA half float textures must be renderable
+        bool rgbaSupported = checkFloatTextureRender(GL_RGBA16F_EXT, GL_RGBA, GL_HALF_FLOAT_OES);
+        EXPECT_TRUE(rgbaSupported);
+        atLeastOneSupported |= rgbaSupported;
+    }
+
+    EXPECT_TRUE(atLeastOneSupported);
+}
+
 // Test that UNPACK_SKIP_IMAGES doesn't have an effect on 2D texture uploads.
 // GLES 3.0.4 section 3.8.3.
 TEST_P(Texture2DTestES3, UnpackSkipImages2D)
@@ -4295,6 +4779,9 @@
     // Seems to fail on AMD D3D11. Possibly driver bug. http://anglebug.com/3342
     ANGLE_SKIP_TEST_IF(IsAMD() && IsWindows() && IsD3D11());
 
+    // TODO(cnorthrop): Also failing on Vulkan/Windows/AMD. http://anglebug.com/3950
+    ANGLE_SKIP_TEST_IF(IsAMD() && IsWindows() && IsVulkan());
+
     const int size = getWindowWidth();
 
     auto dim   = [size](int level) { return size >> level; };
@@ -4916,6 +5403,9 @@
 // this led to not sampling your texture data when minification occurred.
 TEST_P(Texture2DTestES3, MinificationWithSamplerNoMipmapping)
 {
+    // TODO: Triage this failure on Vulkan: http://anglebug.com/3950
+    ANGLE_SKIP_TEST_IF(IsVulkan());
+
     constexpr char kVS[] =
         "#version 300 es\n"
         "out vec2 texcoord;\n"
@@ -5183,8 +5673,8 @@
                        ES2_OPENGL(),
                        ES2_OPENGLES(),
                        ES2_VULKAN());
-ANGLE_INSTANTIATE_TEST(Texture2DTestES3, ES3_D3D11(), ES3_OPENGL(), ES3_OPENGLES());
-ANGLE_INSTANTIATE_TEST(Texture3DTestES3, ES3_D3D11(), ES3_OPENGL(), ES3_OPENGLES());
+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(),
@@ -5204,8 +5694,12 @@
                        ES3_OPENGL(),
                        ES3_OPENGLES(),
                        ES3_VULKAN());
-ANGLE_INSTANTIATE_TEST(Texture2DArrayTestES3, ES3_D3D11(), ES3_OPENGL(), ES3_OPENGLES());
-ANGLE_INSTANTIATE_TEST(TextureSizeTextureArrayTest, ES3_D3D11(), ES3_OPENGL());
+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(),
@@ -5261,13 +5755,26 @@
                        ES3_OPENGLES(),
                        ES2_VULKAN(),
                        ES3_VULKAN());
-ANGLE_INSTANTIATE_TEST(TextureCubeTestES3, ES3_D3D11(), ES3_OPENGL(), ES3_OPENGLES());
-ANGLE_INSTANTIATE_TEST(Texture2DIntegerTestES3, ES3_D3D11(), ES3_OPENGL());
-ANGLE_INSTANTIATE_TEST(TextureCubeIntegerTestES3, ES3_D3D11(), ES3_OPENGL());
+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());
-ANGLE_INSTANTIATE_TEST(Texture2DArrayIntegerTestES3, ES3_D3D11(), ES3_OPENGL());
-ANGLE_INSTANTIATE_TEST(Texture3DIntegerTestES3, 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(),
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/TimerQueriesTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/TimerQueriesTest.cpp
index e9cb613..8caeb64 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/TimerQueriesTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/TimerQueriesTest.cpp
@@ -10,7 +10,7 @@
 #include "test_utils/ANGLETest.h"
 #include "util/EGLWindow.h"
 #include "util/random_utils.h"
-#include "util/system_utils.h"
+#include "util/test_utils.h"
 
 using namespace angle;
 
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/UniformBufferTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/UniformBufferTest.cpp
index bd077ee..85b54c2 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/UniformBufferTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/UniformBufferTest.cpp
@@ -1515,11 +1515,10 @@
 
 // Recreate WebGL conformance test conformance2/uniforms/large-uniform-buffers.html to test
 // regression in http://anglebug.com/3388
-TEST_P(UniformBufferTest, SizeOver65535)
+TEST_P(UniformBufferTest, SizeOverMaxBlockSize)
 {
-    // UBOs sized above 65535 do not appear to work on D3D11
-    // http://anglebug.com/3388
-    ANGLE_SKIP_TEST_IF(IsD3D11());
+    // Test crashes on Windows AMD OpenGL
+    ANGLE_SKIP_TEST_IF(IsAMD() && IsWindows() && IsOpenGL());
 
     ANGLE_GL_PROGRAM(program, essl3_shaders::vs::Simple(), kFragmentShader);
 
@@ -1546,10 +1545,14 @@
     glGetActiveUniformBlockiv(program, uboIndex, GL_UNIFORM_BLOCK_DATA_SIZE, &uboDataSize);
     EXPECT_NE(uboDataSize, 0);  // uniform block data size invalid
 
-    GLBuffer uboBuf;
-    std::array<GLfloat, 0x20000> uboData;
+    GLint64 maxUniformBlockSize;
+    glGetInteger64v(GL_MAX_UNIFORM_BLOCK_SIZE, &maxUniformBlockSize);
 
-    GLint offs0 = 0x00000;
+    GLBuffer uboBuf;
+    std::vector<GLfloat> uboData;
+    uboData.resize(maxUniformBlockSize * 2);  // underlying data is twice the max block size
+
+    GLint offs0 = 0;
 
     // Red
     uboData[offs0 + 0] = 1;
@@ -1557,7 +1560,7 @@
     uboData[offs0 + 2] = 0;
     uboData[offs0 + 3] = 1;
 
-    GLint offs1     = 0x10000;
+    GLint offs1     = maxUniformBlockSize;
     GLint alignment = 0;
     glGetIntegerv(GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT, &alignment);
     EXPECT_EQ(offs1 % alignment, 0);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/VertexAttributeTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/VertexAttributeTest.cpp
index 73f8b30..43b309e 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/VertexAttributeTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/VertexAttributeTest.cpp
@@ -4,6 +4,7 @@
 // found in the LICENSE file.
 //
 #include "anglebase/numerics/safe_conversions.h"
+#include "common/mathutil.h"
 #include "platform/FeaturesVk.h"
 #include "test_utils/ANGLETest.h"
 #include "test_utils/gl_raii.h"
@@ -22,10 +23,14 @@
             return 1;
         case GL_UNSIGNED_SHORT:
         case GL_SHORT:
+        case GL_HALF_FLOAT:
+        case GL_HALF_FLOAT_OES:
             return 2;
         case GL_UNSIGNED_INT:
         case GL_INT:
         case GL_FLOAT:
+        case GL_UNSIGNED_INT_10_10_10_2_OES:
+        case GL_INT_10_10_10_2_OES:
             return 4;
         default:
             EXPECT_TRUE(false);
@@ -49,6 +54,88 @@
     }
 }
 
+// Normalization for each channel of signed/unsigned 10_10_10_2 types
+template <typename T>
+GLfloat Normalize10(T value)
+{
+    static_assert(std::is_integral<T>::value, "Integer required.");
+    GLfloat floatOutput;
+    if (std::is_signed<T>::value)
+    {
+        const uint32_t signMask     = 0x200;       // 1 set at the 9th bit
+        const uint32_t negativeMask = 0xFFFFFC00;  // All bits from 10 to 31 set to 1
+
+        if (value & signMask)
+        {
+            int negativeNumber = value | negativeMask;
+            floatOutput        = static_cast<GLfloat>(negativeNumber);
+        }
+        else
+        {
+            floatOutput = static_cast<GLfloat>(value);
+        }
+
+        const int32_t maxValue = 0x1FF;       // 1 set in bits 0 through 8
+        const int32_t minValue = 0xFFFFFE01;  // Inverse of maxValue
+
+        // A 10-bit two's complement number has the possibility of being minValue - 1 but
+        // OpenGL's normalization rules dictate that it should be clamped to minValue in
+        // this case.
+        if (floatOutput < minValue)
+            floatOutput = minValue;
+
+        const int32_t halfRange = (maxValue - minValue) >> 1;
+        floatOutput             = ((floatOutput - minValue) / halfRange) - 1.0f;
+    }
+    else
+    {
+        const GLfloat maxValue = 1023.0f;  // 1 set in bits 0 through 9
+        floatOutput            = static_cast<GLfloat>(value) / maxValue;
+    }
+    return floatOutput;
+}
+
+template <typename T>
+GLfloat Normalize2(T value)
+{
+    static_assert(std::is_integral<T>::value, "Integer required.");
+    if (std::is_signed<T>::value)
+    {
+        GLfloat outputValue = static_cast<float>(value) / 1.0f;
+        outputValue         = (outputValue >= -1.0f) ? (outputValue) : (-1.0f);
+        return outputValue;
+    }
+    else
+    {
+        return static_cast<float>(value) / 3.0f;
+    }
+}
+
+template <typename DestT, typename SrcT>
+DestT Pack1010102(std::array<SrcT, 4> input)
+{
+    static_assert(std::is_integral<SrcT>::value, "Integer required.");
+    static_assert(std::is_integral<DestT>::value, "Integer required.");
+    static_assert(std::is_unsigned<SrcT>::value == std::is_unsigned<DestT>::value,
+                  "Signedness should be equal.");
+    DestT rOut, gOut, bOut, aOut;
+    rOut = static_cast<DestT>(input[0]);
+    gOut = static_cast<DestT>(input[1]);
+    bOut = static_cast<DestT>(input[2]);
+    aOut = static_cast<DestT>(input[3]);
+
+    if (std::is_unsigned<SrcT>::value)
+    {
+        return rOut << 22 | gOut << 12 | bOut << 2 | aOut;
+    }
+    else
+    {
+        // Need to apply bit mask to account for sign extension
+        return (0xFFC00000u & rOut << 22) | (0x003FF000u & gOut << 12) | (0x00000FFCu & bOut << 2) |
+               (0x00000003u & aOut);
+    }
+}
+
 class VertexAttributeTest : public ANGLETest
 {
   protected:
@@ -124,7 +211,9 @@
         glEnableVertexAttribArray(mExpectedAttrib);
     }
 
-    void checkPixels()
+    void checkPixels() { checkRGBPixels(true); }
+
+    void checkRGBPixels(bool checkAlpha)
     {
         GLint viewportSize[4];
         glGetIntegerv(GL_VIEWPORT, viewportSize);
@@ -135,10 +224,20 @@
         // We need to offset our checks from triangle edges to ensure we don't fall on a single tri
         // Avoid making assumptions of drawQuad with four checks to check the four possible tri
         // regions
-        EXPECT_PIXEL_EQ((midPixelX + viewportSize[0]) / 2, midPixelY, 255, 255, 255, 255);
-        EXPECT_PIXEL_EQ((midPixelX + viewportSize[2]) / 2, midPixelY, 255, 255, 255, 255);
-        EXPECT_PIXEL_EQ(midPixelX, (midPixelY + viewportSize[1]) / 2, 255, 255, 255, 255);
-        EXPECT_PIXEL_EQ(midPixelX, (midPixelY + viewportSize[3]) / 2, 255, 255, 255, 255);
+        if (checkAlpha)
+        {
+            EXPECT_PIXEL_EQ((midPixelX + viewportSize[0]) / 2, midPixelY, 255, 255, 255, 255);
+            EXPECT_PIXEL_EQ((midPixelX + viewportSize[2]) / 2, midPixelY, 255, 255, 255, 255);
+            EXPECT_PIXEL_EQ(midPixelX, (midPixelY + viewportSize[1]) / 2, 255, 255, 255, 255);
+            EXPECT_PIXEL_EQ(midPixelX, (midPixelY + viewportSize[3]) / 2, 255, 255, 255, 255);
+        }
+        else
+        {
+            EXPECT_PIXEL_RGB_EQUAL((midPixelX + viewportSize[0]) / 2, midPixelY, 255, 255, 255);
+            EXPECT_PIXEL_RGB_EQUAL((midPixelX + viewportSize[2]) / 2, midPixelY, 255, 255, 255);
+            EXPECT_PIXEL_RGB_EQUAL(midPixelX, (midPixelY + viewportSize[1]) / 2, 255, 255, 255);
+            EXPECT_PIXEL_RGB_EQUAL(midPixelX, (midPixelY + viewportSize[3]) / 2, 255, 255, 255);
+        }
     }
 
     void checkPixelsUnEqual()
@@ -177,7 +276,16 @@
 
             if (checkPixelEqual)
             {
-                checkPixels();
+                if ((test.type == GL_HALF_FLOAT || test.type == GL_HALF_FLOAT_OES) && IsVulkan() &&
+                    typeSize == 3)
+                {  // We need a special case for RGB16F format on a Vulkan backend due to the fact
+                   // that in such a usecase, we need to ignore the alpha channel.
+                    checkRGBPixels(false);
+                }
+                else
+                {
+                    checkPixels();
+                }
             }
             else
             {
@@ -420,6 +528,62 @@
     runTest(data);
 }
 
+// Verify that vertex data is updated correctly when using a float/half-float client memory pointer.
+TEST_P(VertexAttributeTest, HalfFloatClientMemoryPointer)
+{
+    std::array<GLhalf, kVertexCount> inputData;
+    std::array<GLfloat, kVertexCount> expectedData = {
+        {0.f, 1.5f, 2.3f, 3.2f, -1.8f, -2.2f, -3.9f, -4.f, 34.5f, 32.2f, -78.8f, -77.4f, -76.1f}};
+
+    for (size_t i = 0; i < kVertexCount; i++)
+    {
+        inputData[i] = gl::float32ToFloat16(expectedData[i]);
+    }
+
+    // If the extension is enabled run the test on all contexts
+    if (IsGLExtensionEnabled("GL_OES_vertex_half_float"))
+    {
+        TestData imediateData(GL_HALF_FLOAT_OES, GL_FALSE, Source::IMMEDIATE, inputData.data(),
+                              expectedData.data());
+        runTest(imediateData);
+    }
+    // Otherwise run the test only if it is an ES3 context
+    else if (getClientMajorVersion() >= 3)
+    {
+        TestData imediateData(GL_HALF_FLOAT, GL_FALSE, Source::IMMEDIATE, inputData.data(),
+                              expectedData.data());
+        runTest(imediateData);
+    }
+}
+
+// Verify that vertex data is updated correctly when using a float/half-float buffer.
+TEST_P(VertexAttributeTest, HalfFloatBuffer)
+{
+    std::array<GLhalf, kVertexCount> inputData;
+    std::array<GLfloat, kVertexCount> expectedData = {
+        {0.f, 1.5f, 2.3f, 3.2f, -1.8f, -2.2f, -3.9f, -4.f, 34.5f, 32.2f, -78.8f, -77.4f, -76.1f}};
+
+    for (size_t i = 0; i < kVertexCount; i++)
+    {
+        inputData[i] = gl::float32ToFloat16(expectedData[i]);
+    }
+
+    // If the extension is enabled run the test on all contexts
+    if (IsGLExtensionEnabled("GL_OES_vertex_half_float"))
+    {
+        TestData bufferData(GL_HALF_FLOAT_OES, GL_FALSE, Source::BUFFER, inputData.data(),
+                            expectedData.data());
+        runTest(bufferData);
+    }
+    // Otherwise run the test only if it is an ES3 context
+    else if (getClientMajorVersion() >= 3)
+    {
+        TestData bufferData(GL_HALF_FLOAT, GL_FALSE, Source::BUFFER, inputData.data(),
+                            expectedData.data());
+        runTest(bufferData);
+    }
+}
+
 // Verify that using the same client memory pointer in different format won't mess up the draw.
 TEST_P(VertexAttributeTest, UsingDifferentFormatAndSameClientMemoryPointer)
 {
@@ -550,6 +714,219 @@
     runTest(normalizedData);
 }
 
+// Verify signed unnormalized INT_10_10_10_2 vertex type
+TEST_P(VertexAttributeTest, SignedPacked1010102ExtensionUnnormalized)
+{
+    std::string extensionList(reinterpret_cast<const char *>(glGetString(GL_EXTENSIONS)));
+    ANGLE_SKIP_TEST_IF((extensionList.find("OES_vertex_type_10_10_10_2") == std::string::npos));
+
+    // RGB channels are 10-bits, alpha is 2-bits
+    std::array<std::array<GLshort, 4>, kVertexCount / 4> unpackedInput = {{{0, 1, 2, 0},
+                                                                           {254, 255, 256, 1},
+                                                                           {256, 255, 254, -2},
+                                                                           {511, 510, 509, -1},
+                                                                           {-512, -511, -500, -2},
+                                                                           {-1, -2, -3, 1}}};
+
+    std::array<GLint, kVertexCount> packedInput;
+    std::array<GLfloat, kVertexCount> expectedTypeSize4;
+    std::array<GLfloat, kVertexCount> expectedTypeSize3;
+
+    for (size_t i = 0; i < kVertexCount / 4; i++)
+    {
+        packedInput[i] = Pack1010102<GLint, GLshort>(unpackedInput[i]);
+
+        expectedTypeSize3[i * 3 + 0] = expectedTypeSize4[i * 4 + 0] = unpackedInput[i][0];
+        expectedTypeSize3[i * 3 + 1] = expectedTypeSize4[i * 4 + 1] = unpackedInput[i][1];
+        expectedTypeSize3[i * 3 + 2] = expectedTypeSize4[i * 4 + 2] = unpackedInput[i][2];
+
+        // when the type size is 3, alpha will be 1.0f by GLES driver
+        expectedTypeSize4[i * 4 + 3] = unpackedInput[i][3];
+    }
+
+    TestData data4(GL_INT_10_10_10_2_OES, GL_FALSE, Source::IMMEDIATE, packedInput.data(),
+                   expectedTypeSize4.data());
+    TestData bufferedData4(GL_INT_10_10_10_2_OES, GL_FALSE, Source::BUFFER, packedInput.data(),
+                           expectedTypeSize4.data());
+    TestData data3(GL_INT_10_10_10_2_OES, GL_FALSE, Source::IMMEDIATE, packedInput.data(),
+                   expectedTypeSize3.data());
+    TestData bufferedData3(GL_INT_10_10_10_2_OES, GL_FALSE, Source::BUFFER, packedInput.data(),
+                           expectedTypeSize3.data());
+
+    std::array<std::pair<const TestData &, GLint>, 4> dataSet = {
+        {{data4, 4}, {bufferedData4, 4}, {data3, 3}, {bufferedData3, 3}}};
+
+    for (auto data : dataSet)
+    {
+        setupTest(data.first, data.second);
+        drawQuad(mProgram, "position", 0.5f);
+        glDisableVertexAttribArray(mTestAttrib);
+        glDisableVertexAttribArray(mExpectedAttrib);
+        checkPixels();
+    }
+}
+
+// Verify signed normalized INT_10_10_10_2 vertex type
+TEST_P(VertexAttributeTest, SignedPacked1010102ExtensionNormalized)
+{
+    std::string extensionList(reinterpret_cast<const char *>(glGetString(GL_EXTENSIONS)));
+    ANGLE_SKIP_TEST_IF((extensionList.find("OES_vertex_type_10_10_10_2") == std::string::npos));
+
+    // RGB channels are 10-bits, alpha is 2-bits
+    std::array<std::array<GLshort, 4>, kVertexCount / 4> unpackedInput = {{{0, 1, 2, 0},
+                                                                           {254, 255, 256, 1},
+                                                                           {256, 255, 254, -2},
+                                                                           {511, 510, 509, -1},
+                                                                           {-512, -511, -500, -2},
+                                                                           {-1, -2, -3, 1}}};
+    std::array<GLint, kVertexCount> packedInput;
+    std::array<GLfloat, kVertexCount> expectedNormalizedTypeSize4;
+    std::array<GLfloat, kVertexCount> expectedNormalizedTypeSize3;
+
+    for (size_t i = 0; i < kVertexCount / 4; i++)
+    {
+        packedInput[i] = Pack1010102<GLint, GLshort>(unpackedInput[i]);
+
+        expectedNormalizedTypeSize3[i * 3 + 0] = expectedNormalizedTypeSize4[i * 4 + 0] =
+            Normalize10<GLshort>(unpackedInput[i][0]);
+        expectedNormalizedTypeSize3[i * 3 + 1] = expectedNormalizedTypeSize4[i * 4 + 1] =
+            Normalize10<GLshort>(unpackedInput[i][1]);
+        expectedNormalizedTypeSize3[i * 3 + 2] = expectedNormalizedTypeSize4[i * 4 + 2] =
+            Normalize10<GLshort>(unpackedInput[i][2]);
+
+        // when the type size is 3, alpha will be 1.0f by GLES driver
+        expectedNormalizedTypeSize4[i * 4 + 3] = Normalize2<GLshort>(unpackedInput[i][3]);
+    }
+
+    TestData data4(GL_INT_10_10_10_2_OES, GL_TRUE, Source::IMMEDIATE, packedInput.data(),
+                   expectedNormalizedTypeSize4.data());
+    TestData bufferedData4(GL_INT_10_10_10_2_OES, GL_TRUE, Source::BUFFER, packedInput.data(),
+                           expectedNormalizedTypeSize4.data());
+    TestData data3(GL_INT_10_10_10_2_OES, GL_TRUE, Source::IMMEDIATE, packedInput.data(),
+                   expectedNormalizedTypeSize3.data());
+    TestData bufferedData3(GL_INT_10_10_10_2_OES, GL_TRUE, Source::BUFFER, packedInput.data(),
+                           expectedNormalizedTypeSize3.data());
+
+    std::array<std::pair<const TestData &, GLint>, 4> dataSet = {
+        {{data4, 4}, {bufferedData4, 4}, {data3, 3}, {bufferedData3, 3}}};
+
+    for (auto data : dataSet)
+    {
+        setupTest(data.first, data.second);
+        drawQuad(mProgram, "position", 0.5f);
+        glDisableVertexAttribArray(mTestAttrib);
+        glDisableVertexAttribArray(mExpectedAttrib);
+        checkPixels();
+    }
+}
+
+// Verify unsigned unnormalized INT_10_10_10_2 vertex type
+TEST_P(VertexAttributeTest, UnsignedPacked1010102ExtensionUnnormalized)
+{
+    std::string extensionList(reinterpret_cast<const char *>(glGetString(GL_EXTENSIONS)));
+    ANGLE_SKIP_TEST_IF((extensionList.find("OES_vertex_type_10_10_10_2") == std::string::npos));
+
+    // RGB channels are 10-bits, alpha is 2-bits
+    std::array<std::array<GLushort, 4>, kVertexCount / 4> unpackedInput = {{{0, 1, 2, 0},
+                                                                            {511, 512, 513, 1},
+                                                                            {1023, 1022, 1021, 3},
+                                                                            {513, 512, 511, 2},
+                                                                            {2, 1, 0, 3},
+                                                                            {1023, 1022, 1022, 0}}};
+
+    std::array<GLuint, kVertexCount> packedInput;
+    std::array<GLfloat, kVertexCount> expectedTypeSize3;
+    std::array<GLfloat, kVertexCount> expectedTypeSize4;
+
+    for (size_t i = 0; i < kVertexCount / 4; i++)
+    {
+        packedInput[i] = Pack1010102<GLuint, GLushort>(unpackedInput[i]);
+
+        expectedTypeSize3[i * 3 + 0] = expectedTypeSize4[i * 4 + 0] = unpackedInput[i][0];
+        expectedTypeSize3[i * 3 + 1] = expectedTypeSize4[i * 4 + 1] = unpackedInput[i][1];
+        expectedTypeSize3[i * 3 + 2] = expectedTypeSize4[i * 4 + 2] = unpackedInput[i][2];
+
+        // when the type size is 3, alpha will be 1.0f by GLES driver
+        expectedTypeSize4[i * 4 + 3] = unpackedInput[i][3];
+    }
+
+    TestData data4(GL_UNSIGNED_INT_10_10_10_2_OES, GL_FALSE, Source::IMMEDIATE, packedInput.data(),
+                   expectedTypeSize4.data());
+    TestData bufferedData4(GL_UNSIGNED_INT_10_10_10_2_OES, GL_FALSE, Source::BUFFER,
+                           packedInput.data(), expectedTypeSize4.data());
+    TestData data3(GL_UNSIGNED_INT_10_10_10_2_OES, GL_FALSE, Source::BUFFER, packedInput.data(),
+                   expectedTypeSize3.data());
+    TestData bufferedData3(GL_UNSIGNED_INT_10_10_10_2_OES, GL_FALSE, Source::BUFFER,
+                           packedInput.data(), expectedTypeSize3.data());
+
+    std::array<std::pair<const TestData &, GLint>, 4> dataSet = {
+        {{data4, 4}, {bufferedData4, 4}, {data3, 3}, {bufferedData3, 3}}};
+
+    for (auto data : dataSet)
+    {
+        setupTest(data.first, data.second);
+        drawQuad(mProgram, "position", 0.5f);
+        glDisableVertexAttribArray(mTestAttrib);
+        glDisableVertexAttribArray(mExpectedAttrib);
+        checkPixels();
+    }
+}
+
+// Verify unsigned normalized INT_10_10_10_2 vertex type
+TEST_P(VertexAttributeTest, UnsignedPacked1010102ExtensionNormalized)
+{
+    std::string extensionList(reinterpret_cast<const char *>(glGetString(GL_EXTENSIONS)));
+    ANGLE_SKIP_TEST_IF((extensionList.find("OES_vertex_type_10_10_10_2") == std::string::npos));
+
+    // RGB channels are 10-bits, alpha is 2-bits
+    std::array<std::array<GLushort, 4>, kVertexCount / 4> unpackedInput = {{{0, 1, 2, 0},
+                                                                            {511, 512, 513, 1},
+                                                                            {1023, 1022, 1021, 3},
+                                                                            {513, 512, 511, 2},
+                                                                            {2, 1, 0, 3},
+                                                                            {1023, 1022, 1022, 0}}};
+
+    std::array<GLuint, kVertexCount> packedInput;
+    std::array<GLfloat, kVertexCount> expectedTypeSize4;
+    std::array<GLfloat, kVertexCount> expectedTypeSize3;
+
+    for (size_t i = 0; i < kVertexCount / 4; i++)
+    {
+        packedInput[i] = Pack1010102<GLuint, GLushort>(unpackedInput[i]);
+
+        expectedTypeSize3[i * 3 + 0] = expectedTypeSize4[i * 4 + 0] =
+            Normalize10<GLushort>(unpackedInput[i][0]);
+        expectedTypeSize3[i * 3 + 1] = expectedTypeSize4[i * 4 + 1] =
+            Normalize10<GLushort>(unpackedInput[i][1]);
+        expectedTypeSize3[i * 3 + 2] = expectedTypeSize4[i * 4 + 2] =
+            Normalize10<GLushort>(unpackedInput[i][2]);
+
+        // when the type size is 3, alpha will be 1.0f by GLES driver
+        expectedTypeSize4[i * 4 + 3] = Normalize2<GLushort>(unpackedInput[i][3]);
+    }
+
+    TestData data4(GL_UNSIGNED_INT_10_10_10_2_OES, GL_TRUE, Source::IMMEDIATE, packedInput.data(),
+                   expectedTypeSize4.data());
+    TestData bufferedData4(GL_UNSIGNED_INT_10_10_10_2_OES, GL_TRUE, Source::BUFFER,
+                           packedInput.data(), expectedTypeSize4.data());
+    TestData data3(GL_UNSIGNED_INT_10_10_10_2_OES, GL_TRUE, Source::IMMEDIATE, packedInput.data(),
+                   expectedTypeSize3.data());
+    TestData bufferedData3(GL_UNSIGNED_INT_10_10_10_2_OES, GL_TRUE, Source::BUFFER,
+                           packedInput.data(), expectedTypeSize3.data());
+
+    std::array<std::pair<const TestData &, GLint>, 4> dataSet = {
+        {{data4, 4}, {bufferedData4, 4}, {data3, 3}, {bufferedData3, 3}}};
+
+    for (auto data : dataSet)
+    {
+        setupTest(data.first, data.second);
+        drawQuad(mProgram, "position", 0.5f);
+        glDisableVertexAttribArray(mTestAttrib);
+        glDisableVertexAttribArray(mExpectedAttrib);
+        checkPixels();
+    };
+}
+
 class VertexAttributeTestES3 : public VertexAttributeTest
 {
   protected:
@@ -832,6 +1209,9 @@
     // TODO(geofflang): Figure out why this is broken on AMD OpenGL
     ANGLE_SKIP_TEST_IF(IsAMD() && IsOpenGL());
 
+    // TODO(cnorthrop): Test this again on more recent drivers. http://anglebug.com/3951
+    ANGLE_SKIP_TEST_IF(IsLinux() && IsNVIDIA() && IsVulkan());
+
     initBasicProgram();
     glUseProgram(mProgram);
 
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 c196cf2..587b2dd 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gles1_conformance_tests/ConformanceTests.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gles1_conformance_tests/ConformanceTests.cpp
@@ -103,7 +103,9 @@
 extern long MatrixPaletteExec(void);
 
 // Test driver setup
-extern void ExtTestDriverSetup(void);
+void BufferSetup(void);
+void EpsilonSetup(void);
+void StateSetup(void);
 
 #define CONFORMANCE_TEST_ERROR (-1)
 
@@ -128,7 +130,12 @@
         setConfigStencilBits(8);
     }
 
-    void testSetUp() override { ExtTestDriverSetup(); }
+    void testSetUp() override
+    {
+        BufferSetup();
+        EpsilonSetup();
+        StateSetup();
+    }
 };
 
 TEST_P(GLES1ConformanceTest, AmbLight)
@@ -342,7 +349,7 @@
 TEST_P(GLES1ConformanceTest, Scissor)
 {
     // http://g.co/anglebug/3867
-    ANGLE_SKIP_TEST_IF(IsVulkan());
+    ANGLE_SKIP_TEST_IF(IsVulkan() && IsWindows() && IsIntel());
     ASSERT_NE(CONFORMANCE_TEST_ERROR, ScissorExec());
 }
 
diff --git a/Source/ThirdParty/ANGLE/src/tests/perf_tests/ANGLEPerfTest.cpp b/Source/ThirdParty/ANGLE/src/tests/perf_tests/ANGLEPerfTest.cpp
index 3f9f850..a7e1ce8 100644
--- a/Source/ThirdParty/ANGLE/src/tests/perf_tests/ANGLEPerfTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/perf_tests/ANGLEPerfTest.cpp
@@ -11,10 +11,11 @@
 
 #include "ANGLEPerfTestArgs.h"
 #include "common/platform.h"
+#include "common/system_utils.h"
 #include "third_party/perf/perf_test.h"
 #include "third_party/trace_event/trace_event.h"
 #include "util/shader_utils.h"
-#include "util/system_utils.h"
+#include "util/test_utils.h"
 
 #include <cassert>
 #include <cmath>
diff --git a/Source/ThirdParty/ANGLE/src/tests/perf_tests/DrawCallPerf.cpp b/Source/ThirdParty/ANGLE/src/tests/perf_tests/DrawCallPerf.cpp
index d6abfe2..34503c9 100644
--- a/Source/ThirdParty/ANGLE/src/tests/perf_tests/DrawCallPerf.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/perf_tests/DrawCallPerf.cpp
@@ -12,8 +12,6 @@
 #include "test_utils/draw_call_perf_utils.h"
 #include "util/shader_utils.h"
 
-using namespace angle;
-
 namespace
 {
 enum class StateChange
@@ -328,8 +326,6 @@
 
 TEST_P(DrawCallPerfBenchmark, Run)
 {
-    // TODO(crbug.com/997674) crashes on Win10 FYI x64 Exp Release (Intel HD 630)
-    ANGLE_SKIP_TEST_IF(IsWindows() && IsIntel());
     run();
 }
 
diff --git a/Source/ThirdParty/ANGLE/src/tests/perf_tests/EGLMakeCurrentPerf.cpp b/Source/ThirdParty/ANGLE/src/tests/perf_tests/EGLMakeCurrentPerf.cpp
index 0e434f3..f5115ee 100644
--- a/Source/ThirdParty/ANGLE/src/tests/perf_tests/EGLMakeCurrentPerf.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/perf_tests/EGLMakeCurrentPerf.cpp
@@ -9,10 +9,10 @@
 
 #include "ANGLEPerfTest.h"
 #include "common/platform.h"
+#include "common/system_utils.h"
 #include "platform/Platform.h"
 #include "test_utils/angle_test_configs.h"
 #include "test_utils/angle_test_instantiate.h"
-#include "util/system_utils.h"
 
 #define ITERATIONS 20
 
diff --git a/Source/ThirdParty/ANGLE/src/tests/perf_tests/LinkProgramPerfTest.cpp b/Source/ThirdParty/ANGLE/src/tests/perf_tests/LinkProgramPerfTest.cpp
index 26dcf06..d7c8057 100644
--- a/Source/ThirdParty/ANGLE/src/tests/perf_tests/LinkProgramPerfTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/perf_tests/LinkProgramPerfTest.cpp
@@ -204,8 +204,6 @@
 
 TEST_P(LinkProgramBenchmark, Run)
 {
-    // TODO(crbug.com/997674) crashes on Win10 FYI x64 Exp Release (Intel HD 630)
-    ANGLE_SKIP_TEST_IF(IsWindows() && IsIntel());
     run();
 }
 
diff --git a/Source/ThirdParty/ANGLE/src/tests/perf_tests/MultiviewPerf.cpp b/Source/ThirdParty/ANGLE/src/tests/perf_tests/MultiviewPerf.cpp
index f7bb9ad..e3f15e7 100644
--- a/Source/ThirdParty/ANGLE/src/tests/perf_tests/MultiviewPerf.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/perf_tests/MultiviewPerf.cpp
@@ -567,8 +567,6 @@
 
 TEST_P(MultiviewCPUBoundBenchmark, Run)
 {
-    // TODO(crbug.com/997674) crashes on Win10 FYI x64 Exp Release (Intel HD 630)
-    ANGLE_SKIP_TEST_IF(IsWindows() && IsIntel());
     run();
 }
 
diff --git a/Source/ThirdParty/ANGLE/src/tests/perf_tests/UniformsPerf.cpp b/Source/ThirdParty/ANGLE/src/tests/perf_tests/UniformsPerf.cpp
index 02ede8a..36e80e3 100644
--- a/Source/ThirdParty/ANGLE/src/tests/perf_tests/UniformsPerf.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/perf_tests/UniformsPerf.cpp
@@ -500,8 +500,6 @@
 
 TEST_P(UniformsBenchmark, Run)
 {
-    // TODO(crbug.com/997674) crashes on Win10 FYI x64 Exp Release (Intel HD 630)
-    ANGLE_SKIP_TEST_IF(IsWindows() && IsIntel());
     run();
 }
 
diff --git a/Source/ThirdParty/ANGLE/src/tests/perf_tests/VulkanPipelineCachePerf.cpp b/Source/ThirdParty/ANGLE/src/tests/perf_tests/VulkanPipelineCachePerf.cpp
index 1370c44..0b238df 100644
--- a/Source/ThirdParty/ANGLE/src/tests/perf_tests/VulkanPipelineCachePerf.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/perf_tests/VulkanPipelineCachePerf.cpp
@@ -92,8 +92,8 @@
     {
         for (const auto &hit : mCacheHits)
         {
-            (void)mCache.getPipeline(VK_NULL_HANDLE, pc, rp, pl, am, ctm, &sm, &sm, hit, &desc,
-                                     &result);
+            (void)mCache.getPipeline(VK_NULL_HANDLE, pc, rp, pl, am, ctm, &sm, &sm, nullptr, hit,
+                                     &desc, &result);
         }
     }
 
@@ -101,8 +101,8 @@
          ++missCount, ++mMissIndex)
     {
         const auto &miss = mCacheMisses[mMissIndex];
-        (void)mCache.getPipeline(VK_NULL_HANDLE, pc, rp, pl, am, ctm, &sm, &sm, miss, &desc,
-                                 &result);
+        (void)mCache.getPipeline(VK_NULL_HANDLE, pc, rp, pl, am, ctm, &sm, &sm, nullptr, miss,
+                                 &desc, &result);
     }
 }
 
diff --git a/Source/ThirdParty/ANGLE/src/tests/perf_tests/glmark2Benchmark.cpp b/Source/ThirdParty/ANGLE/src/tests/perf_tests/glmark2Benchmark.cpp
index 0aa8e10..2d5e463 100644
--- a/Source/ThirdParty/ANGLE/src/tests/perf_tests/glmark2Benchmark.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/perf_tests/glmark2Benchmark.cpp
@@ -18,6 +18,7 @@
 #include "common/system_utils.h"
 #include "test_utils/angle_test_configs.h"
 #include "test_utils/angle_test_instantiate.h"
+#include "util/test_utils.h"
 
 using namespace angle;
 
diff --git a/Source/ThirdParty/ANGLE/src/tests/test_expectations/GPUTestConfig.cpp b/Source/ThirdParty/ANGLE/src/tests/test_expectations/GPUTestConfig.cpp
index f9cbda4..a762e18 100644
--- a/Source/ThirdParty/ANGLE/src/tests/test_expectations/GPUTestConfig.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/test_expectations/GPUTestConfig.cpp
@@ -323,6 +323,15 @@
         }
         else
         {
+            // On dual-GPU Macs we want the active GPU to always appear to be the
+            // high-performance GPU for tests.
+            // We can call the generic GPU info collector which selects the
+            // non-Intel GPU as the active one on dual-GPU machines.
+            // See https://anglebug.com/3701.
+            if (IsMac())
+            {
+                GetDualGPUInfo(sSystemInfo);
+            }
             sPopulated = true;
         }
     }
@@ -500,7 +509,12 @@
 // Check whether the backend API has been set to Vulkan in the constructor
 inline bool IsVulkan(const GPUTestConfig::API &api)
 {
-    return (api == GPUTestConfig::kAPIVulkan);
+    return (api == GPUTestConfig::kAPIVulkan) || (api == GPUTestConfig::kAPISwiftShader);
+}
+
+inline bool IsSwiftShader(const GPUTestConfig::API &api)
+{
+    return (api == GPUTestConfig::kAPISwiftShader);
 }
 
 }  // anonymous namespace
@@ -540,6 +554,7 @@
     mConditions[kConditionGLDesktop] = true;
     mConditions[kConditionGLES]      = true;
     mConditions[kConditionVulkan]    = true;
+    mConditions[kConditionSwiftShader] = true;
 
     mConditions[kConditionNexus5X]          = IsNexus5X();
     mConditions[kConditionPixel2]           = IsPixel2();
@@ -554,6 +569,7 @@
     mConditions[kConditionGLDesktop] = IsGLDesktop(api);
     mConditions[kConditionGLES]      = IsGLES(api);
     mConditions[kConditionVulkan]    = IsVulkan(api);
+    mConditions[kConditionSwiftShader] = IsSwiftShader(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 5027a93..d987ddf 100644
--- a/Source/ThirdParty/ANGLE/src/tests/test_expectations/GPUTestConfig.h
+++ b/Source/ThirdParty/ANGLE/src/tests/test_expectations/GPUTestConfig.h
@@ -23,6 +23,7 @@
         kAPIGLDesktop,
         kAPIGLES,
         kAPIVulkan,
+        kAPISwiftShader,
     };
 
     enum Condition
@@ -61,6 +62,7 @@
         kConditionNexus5X,
         kConditionPixel2,
         kConditionNVIDIAQuadroP400,
+        kConditionSwiftShader,
 
         kNumberOfConditions,
     };
diff --git a/Source/ThirdParty/ANGLE/src/tests/test_expectations/GPUTestExpectationsParser.cpp b/Source/ThirdParty/ANGLE/src/tests/test_expectations/GPUTestExpectationsParser.cpp
index 0c94638..e68c74e 100644
--- a/Source/ThirdParty/ANGLE/src/tests/test_expectations/GPUTestExpectationsParser.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/test_expectations/GPUTestExpectationsParser.cpp
@@ -70,6 +70,7 @@
     kConfigGLDesktop,
     kConfigGLES,
     kConfigVulkan,
+    kConfigSwiftShader,
     // Android devices
     kConfigNexus5X,
     kConfigPixel2,
@@ -144,6 +145,7 @@
     {"opengl", GPUTestConfig::kConditionGLDesktop},
     {"gles", GPUTestConfig::kConditionGLES},
     {"vulkan", GPUTestConfig::kConditionVulkan},
+    {"swiftshader", GPUTestConfig::kConditionSwiftShader},
     {"nexus5x", GPUTestConfig::kConditionNexus5X},
     {"pixel2", GPUTestConfig::kConditionPixel2},
     {"quadrop400", GPUTestConfig::kConditionNVIDIAQuadroP400},
@@ -392,6 +394,7 @@
             case kConfigGLDesktop:
             case kConfigGLES:
             case kConfigVulkan:
+            case kConfigSwiftShader:
             case kConfigNexus5X:
             case kConfigPixel2:
             case kConfigNVIDIAQuadroP400:
diff --git a/Source/ThirdParty/ANGLE/src/tests/test_utils/ANGLETest.cpp b/Source/ThirdParty/ANGLE/src/tests/test_utils/ANGLETest.cpp
index eb0f9f1..993185b0 100644
--- a/Source/ThirdParty/ANGLE/src/tests/test_utils/ANGLETest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/test_utils/ANGLETest.cpp
@@ -13,6 +13,7 @@
 #include "gpu_info_util/SystemInfo.h"
 #include "util/EGLWindow.h"
 #include "util/OSWindow.h"
+#include "util/test_utils.h"
 
 #if defined(ANGLE_PLATFORM_WINDOWS)
 #    include <VersionHelpers.h>
diff --git a/Source/ThirdParty/ANGLE/src/tests/test_utils/ANGLETest.h b/Source/ThirdParty/ANGLE/src/tests/test_utils/ANGLETest.h
index ab87fb1..6494bfe 100644
--- a/Source/ThirdParty/ANGLE/src/tests/test_utils/ANGLETest.h
+++ b/Source/ThirdParty/ANGLE/src/tests/test_utils/ANGLETest.h
@@ -16,11 +16,11 @@
 
 #include "angle_test_configs.h"
 #include "common/angleutils.h"
+#include "common/system_utils.h"
 #include "common/vector_utils.h"
 #include "platform/Platform.h"
 #include "util/EGLWindow.h"
 #include "util/shader_utils.h"
-#include "util/system_utils.h"
 #include "util/util_gl.h"
 
 namespace angle
@@ -223,6 +223,17 @@
         EXPECT_EQ((a), pixel[3]);                                     \
     } while (0)
 
+#define EXPECT_PIXEL_RGB_EQ_HELPER(x, y, r, g, b, ctype, format, type) \
+    do                                                                 \
+    {                                                                  \
+        ctype pixel[4];                                                \
+        glReadPixels((x), (y), 1, 1, format, type, pixel);             \
+        EXPECT_GL_NO_ERROR();                                          \
+        EXPECT_EQ((r), pixel[0]);                                      \
+        EXPECT_EQ((g), pixel[1]);                                      \
+        EXPECT_EQ((b), pixel[2]);                                      \
+    } while (0)
+
 #define EXPECT_PIXEL_NEAR(x, y, r, g, b, a, abs_error) \
     EXPECT_PIXEL_NEAR_HELPER(x, y, r, g, b, a, abs_error, GLubyte, GL_RGBA, GL_UNSIGNED_BYTE)
 
@@ -235,6 +246,9 @@
 #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_RGB_EQUAL(x, y, r, g, b) \
+    EXPECT_PIXEL_RGB_EQ_HELPER(x, y, r, g, b, GLubyte, GL_RGBA, GL_UNSIGNED_BYTE)
+
 // TODO(jmadill): Figure out how we can use GLColor's nice printing with EXPECT_NEAR.
 #define EXPECT_PIXEL_COLOR_NEAR(x, y, angleColor, abs_error) \
     EXPECT_PIXEL_NEAR(x, y, angleColor.R, angleColor.G, angleColor.B, angleColor.A, abs_error)
@@ -576,4 +590,14 @@
 
 extern angle::PlatformMethods gDefaultPlatformMethods;
 
+#define ANGLE_SKIP_TEST_IF(COND)                                  \
+    do                                                            \
+    {                                                             \
+        if (COND)                                                 \
+        {                                                         \
+            std::cout << "Test skipped: " #COND "." << std::endl; \
+            return;                                               \
+        }                                                         \
+    } while (0)
+
 #endif  // ANGLE_TESTS_ANGLE_TEST_H_
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 4d1192d..ccd67b8 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
@@ -41,8 +41,12 @@
 
 void PlatformParameters::initDefaultParameters()
 {
+#if defined(ANGLE_ENABLE_VULKAN_VALIDATION_LAYERS_BY_DEFAULT)
     // Default debug layers to enabled in tests.
     eglParameters.debugLayersEnabled = EGL_TRUE;
+#else
+    eglParameters.debugLayersEnabled = EGL_FALSE;
+#endif  // defined(ANGLE_ENABLE_VULKAN_VALIDATION_LAYERS_BY_DEFAULT)
 }
 
 bool operator<(const PlatformParameters &a, const PlatformParameters &b)
@@ -141,6 +145,10 @@
             stream << "_Warp";
             break;
 
+        case EGL_PLATFORM_ANGLE_DEVICE_TYPE_SWIFTSHADER_ANGLE:
+            stream << "_SwiftShader";
+            break;
+
         default:
             stream << "_Error";
             break;
@@ -394,6 +402,11 @@
                                  EGL_PLATFORM_ANGLE_DEVICE_TYPE_NULL_ANGLE);
 }
 
+EGLPlatformParameters VULKAN_SWIFTSHADER()
+{
+    return EGLPlatformParameters(EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE, EGL_DONT_CARE, EGL_DONT_CARE,
+                                 EGL_PLATFORM_ANGLE_DEVICE_TYPE_SWIFTSHADER_ANGLE);
+}
 }  // namespace egl_platform
 
 // ANGLE tests platforms
@@ -657,6 +670,11 @@
     return PlatformParameters(2, 0, egl_platform::VULKAN_NULL());
 }
 
+PlatformParameters ES2_VULKAN_SWIFTSHADER()
+{
+    return PlatformParameters(2, 0, egl_platform::VULKAN_SWIFTSHADER());
+}
+
 PlatformParameters ES3_VULKAN()
 {
     return PlatformParameters(3, 0, egl_platform::VULKAN());
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 a7e1edb..ca4d450 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
@@ -17,7 +17,6 @@
 #include <EGL/egl.h>
 #include <EGL/eglext.h>
 
-#include "GLSLANG/ShaderLang.h"
 #include "angle_test_instantiate.h"
 #include "util/EGLPlatformParameters.h"
 
@@ -111,6 +110,7 @@
 
 EGLPlatformParameters VULKAN();
 EGLPlatformParameters VULKAN_NULL();
+EGLPlatformParameters VULKAN_SWIFTSHADER();
 
 }  // namespace egl_platform
 
@@ -176,6 +176,7 @@
 PlatformParameters ES1_VULKAN_NULL();
 PlatformParameters ES2_VULKAN();
 PlatformParameters ES2_VULKAN_NULL();
+PlatformParameters ES2_VULKAN_SWIFTSHADER();
 PlatformParameters ES3_VULKAN();
 PlatformParameters ES3_VULKAN_NULL();
 PlatformParameters ES31_VULKAN();
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 d087b36..8a1d690 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
@@ -14,13 +14,15 @@
 
 #include "angle_gl.h"
 #include "common/platform.h"
+#include "common/system_utils.h"
 #include "gpu_info_util/SystemInfo.h"
 #include "test_utils/angle_test_configs.h"
 #include "util/EGLWindow.h"
 #include "util/OSWindow.h"
-#include "util/system_utils.h"
+#include "util/test_utils.h"
 
 #if defined(ANGLE_PLATFORM_WINDOWS)
+#    include <VersionHelpers.h>
 #    include "util/windows/WGLWindow.h"
 #endif  // defined(ANGLE_PLATFORM_WINDOWS)
 
@@ -177,6 +179,15 @@
 #endif
 }
 
+bool IsWindows7()
+{
+#if defined(ANGLE_PLATFORM_WINDOWS)
+    return ::IsWindows7OrGreater() && !::IsWindows8OrGreater();
+#else
+    return false;
+#endif
+}
+
 bool IsFuchsia()
 {
 #if defined(ANGLE_PLATFORM_FUCHSIA)
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 7566896..910e7d3 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
@@ -23,6 +23,7 @@
 bool IsOSX();
 bool IsOzone();
 bool IsWindows();
+bool IsWindows7();
 bool IsFuchsia();
 
 // Android devices
@@ -139,14 +140,4 @@
 extern bool gSeparateProcessPerConfig;
 }  // namespace angle
 
-#define ANGLE_SKIP_TEST_IF(COND)                                  \
-    do                                                            \
-    {                                                             \
-        if (COND)                                                 \
-        {                                                         \
-            std::cout << "Test skipped: " #COND "." << std::endl; \
-            return;                                               \
-        }                                                         \
-    } while (0)
-
 #endif  // ANGLE_TEST_INSTANTIATE_H_
diff --git a/Source/ThirdParty/ANGLE/third_party/vulkan-headers/BUILD.gn b/Source/ThirdParty/ANGLE/third_party/vulkan-headers/BUILD.gn
deleted file mode 100644
index e61be56..0000000
--- a/Source/ThirdParty/ANGLE/third_party/vulkan-headers/BUILD.gn
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright 2018 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.
-
-# BUILD settings for Vulkan Headers
-# Headers repo is at
-# https://github.com/KhronosGroup/Vulkan-Headers
-
-import("../../gni/angle.gni")
-
-config("vulkan_headers_config") {
-  include_dirs = [ "src/include" ]
-
-  if (is_win) {
-    defines = [ "VK_USE_PLATFORM_WIN32_KHR" ]
-  }
-  if (is_linux) {
-    defines = [ "VK_USE_PLATFORM_XCB_KHR" ]
-  }
-  if (is_android) {
-    defines = [ "VK_USE_PLATFORM_ANDROID_KHR" ]
-  }
-  if (is_fuchsia) {
-    defines = [ "VK_USE_PLATFORM_FUCHSIA" ]
-  }
-}
-
-# Vulkan headers only, no compiled sources.
-source_set("vulkan_headers") {
-  sources = [
-    "src/include/vulkan/vk_icd.h",
-    "src/include/vulkan/vk_layer.h",
-    "src/include/vulkan/vk_platform.h",
-    "src/include/vulkan/vk_sdk_platform.h",
-    "src/include/vulkan/vulkan.h",
-    "src/include/vulkan/vulkan.hpp",
-    "src/include/vulkan/vulkan_core.h",
-  ]
-  public_configs = [ ":vulkan_headers_config" ]
-}
diff --git a/Source/ThirdParty/ANGLE/third_party/vulkan-headers/vulkan_headers_script_deps.gni b/Source/ThirdParty/ANGLE/third_party/vulkan-headers/vulkan_headers_script_deps.gni
deleted file mode 100644
index 552bf6e..0000000
--- a/Source/ThirdParty/ANGLE/third_party/vulkan-headers/vulkan_headers_script_deps.gni
+++ /dev/null
@@ -1,13 +0,0 @@
-# Copyright 2018 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.
-
-raw_vulkan_headers_registry_dir = rebase_path("src/registry")
-
-# Common scripts & input used by multiple other repos
-vulkan_registry_script_files = [
-  "$raw_vulkan_headers_registry_dir/cgenerator.py",
-  "$raw_vulkan_headers_registry_dir/generator.py",
-  "$raw_vulkan_headers_registry_dir/reg.py",
-  "$raw_vulkan_headers_registry_dir/vk.xml",
-]
diff --git a/Source/ThirdParty/ANGLE/third_party/vulkan-loader/BUILD.gn b/Source/ThirdParty/ANGLE/third_party/vulkan-loader/BUILD.gn
index 76ef3f2..be99e6c 100644
--- a/Source/ThirdParty/ANGLE/third_party/vulkan-loader/BUILD.gn
+++ b/Source/ThirdParty/ANGLE/third_party/vulkan-loader/BUILD.gn
@@ -238,7 +238,7 @@
     configs += [ "//build/config/compiler:no_chromium_code" ]
     configs += [ ":vulkan_internal_config" ]
     public_configs = [
-      "$angle_root:vulkan_config",
+      "$angle_root/src/libANGLE/renderer/vulkan:vulkan_config",
       ":vulkan_loader_config",
     ]
     configs -= vulkan_undefine_configs
diff --git a/Source/ThirdParty/ANGLE/third_party/vulkan-tools/BUILD.gn b/Source/ThirdParty/ANGLE/third_party/vulkan-tools/BUILD.gn
deleted file mode 100644
index 0fe1abd..0000000
--- a/Source/ThirdParty/ANGLE/third_party/vulkan-tools/BUILD.gn
+++ /dev/null
@@ -1,192 +0,0 @@
-# Copyright 2018 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.
-
-# BUILD settings for Vulkan Tools where Mock ICD is located
-# Tools repo is at
-# https://github.com/KhronosGroup/Vulkan-Tools
-
-import("../../gni/angle.gni")
-
-import("$angle_root/third_party/vulkan-headers/vulkan_headers_script_deps.gni")
-
-# Vulkan-tools isn't ported to Fuchsia yet.
-# TODO(spang): Port mock ICD to Fuchsia.
-assert(!is_fuchsia)
-
-vulkan_undefine_configs = []
-if (is_win) {
-  vulkan_undefine_configs += [
-    "//build/config/win:nominmax",
-    "//build/config/win:unicode",
-  ]
-}
-
-raw_vulkan_icd_dir = rebase_path("src", root_build_dir)
-raw_vulkan_headers_dir =
-    rebase_path("$angle_root/third_party/vulkan-headers/src", root_build_dir)
-
-vulkan_gen_dir = "$target_gen_dir/angle/vulkan"
-raw_vulkan_gen_dir = rebase_path(vulkan_gen_dir, root_build_dir)
-
-# Vulkan helper scripts
-# ---------------------
-
-helper_script_and_deps = [
-  [
-    "vulkan_gen_typemap_helper",
-    "vk_typemap_helper.h",
-    "vulkan_tools_helper_file_generator.py",
-  ],
-  [
-    "vulkan_mock_icd_cpp",
-    "mock_icd.cpp",
-    "mock_icd_generator.py",
-  ],
-  [
-    "vulkan_mock_icd_h",
-    "mock_icd.h",
-    "mock_icd_generator.py",
-  ],
-]
-
-# Python scripts needed for codegen, copy them to a temp dir
-# so that all dependencies are together
-copy("python_gen_deps") {
-  sources = vulkan_registry_script_files + [
-              "src/scripts/common_codegen.py",
-              "src/scripts/kvt_genvk.py",
-              "src/scripts/mock_icd_generator.py",
-              "src/scripts/vulkan_tools_helper_file_generator.py",
-            ]
-  outputs = [
-    "$vulkan_gen_dir/{{source_file_part}}",
-  ]
-}
-
-foreach(script_and_dep, helper_script_and_deps) {
-  target_name = script_and_dep[0]
-  file = script_and_dep[1]
-  dep = script_and_dep[2]
-  target("action", target_name) {
-    public_deps = [
-      ":python_gen_deps",
-    ]
-    script = "$vulkan_gen_dir/kvt_genvk.py"
-    inputs = [
-      "$vulkan_gen_dir/$dep",
-      "$vulkan_gen_dir/common_codegen.py",
-    ]
-    outputs = [
-      "$vulkan_gen_dir/$file",
-    ]
-    args = [
-      "-o",
-      raw_vulkan_gen_dir,
-      "-registry",
-      "$raw_vulkan_headers_dir/registry/vk.xml",
-      "-scripts",
-      "$raw_vulkan_headers_dir/registry",
-      "$file",
-      "-quiet",
-    ]
-  }
-}
-
-config("vulkan_generated_files_config") {
-  include_dirs = [ vulkan_gen_dir ]
-}
-
-group("vulkan_generate_helper_files") {
-  public_deps = [
-    "$angle_root/third_party/vulkan-headers:vulkan_headers",
-  ]
-  public_configs = [ ":vulkan_generated_files_config" ]
-  foreach(script_and_dep, helper_script_and_deps) {
-    target_name = script_and_dep[0]
-    public_deps += [ ":$target_name" ]
-  }
-}
-
-config("vulkan_internal_config") {
-  defines = [ "VULKAN_NON_CMAKE_BUILD" ]
-  if (is_clang || !is_win) {
-    cflags = [ "-Wno-unused-function" ]
-  }
-  if (is_linux) {
-    defines += [
-      "SYSCONFDIR=\"/etc\"",
-      "FALLBACK_CONFIG_DIRS=\"/etc/xdg\"",
-      "FALLBACK_DATA_DIRS=\"/usr/local/share:/usr/share\"",
-    ]
-  }
-}
-
-# Copy icd header to gen dir
-copy("icd_header_dep") {
-  sources = [
-    "$angle_root/third_party/vulkan-headers/src/include/vulkan/vk_icd.h",
-  ]
-  outputs = [
-    "$vulkan_gen_dir/vk_icd.h",
-  ]
-}
-
-if (!is_android) {
-  # Vulkan Mock ICD
-  # ---------------
-  group("vulkan_generate_mock_icd_files") {
-    public_deps = [
-      ":icd_header_dep",
-      ":vulkan_generate_helper_files",
-      ":vulkan_mock_icd_cpp",
-      ":vulkan_mock_icd_h",
-    ]
-  }
-
-  mock_icd_sources = [
-    "$vulkan_gen_dir/mock_icd.cpp",
-    "$vulkan_gen_dir/mock_icd.h",
-  ]
-
-  shared_library("VkICD_mock_icd") {
-    configs -= vulkan_undefine_configs
-    public_configs = [ "$angle_root:vulkan_config" ]
-    deps = [
-      ":vulkan_generate_mock_icd_files",
-    ]
-    data_deps = [
-      ":vulkan_gen_icd_json_file",
-    ]
-    sources = mock_icd_sources
-    if (is_win) {
-      sources += [ "src/icd/VkICD_mock_icd.def" ]
-    }
-    configs -= [ "//build/config/compiler:chromium_code" ]
-    configs += [ "//build/config/compiler:no_chromium_code" ]
-  }
-
-  action("vulkan_gen_icd_json_file") {
-    script = "$angle_root/scripts/generate_vulkan_layers_json.py"
-    sources = [
-      "../vulkan-headers/src/include/vulkan/vulkan_core.h",
-    ]
-    args = [ "--icd" ]
-    if (is_win) {
-      sources += [ "src/icd/windows/VkICD_mock_icd.json" ]
-      args += [ "$raw_vulkan_icd_dir/icd/windows" ]
-    }
-    if (is_linux) {
-      sources += [ "src/icd/linux/VkICD_mock_icd.json" ]
-      args += [ "$raw_vulkan_icd_dir/icd/linux" ]
-    }
-
-    # The layer JSON files are part of the necessary data deps.
-    outputs = [
-      "$root_out_dir/$angle_data_dir/VkICD_mock_icd.json",
-    ]
-    data = outputs
-    args += [ rebase_path("$root_out_dir/$angle_data_dir", root_build_dir) ] +
-            rebase_path(sources, root_build_dir)
-  }
-}
diff --git a/Source/ThirdParty/ANGLE/third_party/vulkan-validation-layers/BUILD.gn b/Source/ThirdParty/ANGLE/third_party/vulkan-validation-layers/BUILD.gn
deleted file mode 100644
index 36e0800..0000000
--- a/Source/ThirdParty/ANGLE/third_party/vulkan-validation-layers/BUILD.gn
+++ /dev/null
@@ -1,521 +0,0 @@
-# Copyright 2018 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.
-
-# BUILD settings for Vulkan Validation Layers
-# Validation repo is at
-# https://github.com/KhronosGroup/Vulkan-ValidationLayers
-
-import("../../gni/angle.gni")
-
-# Fuchsia has non-upstream changes to the vulkan layers, so we don't want
-# to build it from upstream sources.
-assert(!is_fuchsia)
-
-import("$angle_root/third_party/vulkan-headers/vulkan_headers_script_deps.gni")
-
-vulkan_undefine_configs = []
-if (is_win) {
-  vulkan_undefine_configs += [
-    "//build/config/win:nominmax",
-    "//build/config/win:unicode",
-  ]
-}
-
-raw_root_out_dir = rebase_path(root_out_dir, root_build_dir)
-raw_data_dir = rebase_path("$root_out_dir/$angle_data_dir", root_build_dir)
-
-raw_vulkan_headers_dir =
-    rebase_path("$angle_root/third_party/vulkan-headers/src", root_build_dir)
-
-vulkan_gen_dir = "$target_gen_dir/angle/vulkan"
-raw_vulkan_gen_dir = rebase_path(vulkan_gen_dir, root_build_dir)
-
-# Vulkan helper scripts
-# ---------------------
-
-helper_script_and_deps = [
-  [
-    "vulkan_gen_dispatch_table_helper_h",
-    "vk_dispatch_table_helper.h",
-    "dispatch_table_helper_generator.py",
-  ],
-  [
-    "vulkan_gen_enum_string_helper",
-    "vk_enum_string_helper.h",
-    "helper_file_generator.py",
-  ],
-  [
-    "vulkan_gen_extension_helper",
-    "vk_extension_helper.h",
-    "helper_file_generator.py",
-  ],
-  [
-    "vulkan_gen_layer_dispatch_table_h",
-    "vk_layer_dispatch_table.h",
-    "layer_dispatch_table_generator.py",
-  ],
-  [
-    "vulkan_gen_object_types_h",
-    "vk_object_types.h",
-    "helper_file_generator.py",
-  ],
-  [
-    "vulkan_gen_safe_struct_cpp",
-    "vk_safe_struct.cpp",
-    "helper_file_generator.py",
-  ],
-  [
-    "vulkan_gen_safe_struct_h",
-    "vk_safe_struct.h",
-    "helper_file_generator.py",
-  ],
-  [
-    "vulkan_gen_thread_safety_h",
-    "thread_safety.h",
-    "thread_safety_generator.py",
-  ],
-  [
-    "vulkan_gen_thread_safety_cpp",
-    "thread_safety.cpp",
-    "thread_safety_generator.py",
-  ],
-  [
-    "vulkan_gen_typemap_helper",
-    "vk_typemap_helper.h",
-    "helper_file_generator.py",
-  ],
-  [
-    "vulkan_gen_object_tracker_h",
-    "object_tracker.h",
-    "object_tracker_generator.py",
-  ],
-  [
-    "vulkan_gen_object_tracker_cpp",
-    "object_tracker.cpp",
-    "object_tracker_generator.py",
-  ],
-  [
-    "vulkan_gen_parameter_validation_cpp",
-    "parameter_validation.cpp",
-    "parameter_validation_generator.py",
-  ],
-  [
-    "vulkan_gen_parameter_validation_h",
-    "parameter_validation.h",
-    "parameter_validation_generator.py",
-  ],
-  [
-    "vulkan_gen_layer_chassis_h",
-    "chassis.h",
-    "layer_chassis_generator.py",
-  ],
-  [
-    "vulkan_gen_layer_chassis_cpp",
-    "chassis.cpp",
-    "layer_chassis_generator.py",
-  ],
-  [
-    "vulkan_gen_layer_chassis_dispatch_h",
-    "layer_chassis_dispatch.h",
-    "layer_chassis_dispatch_generator.py",
-  ],
-  [
-    "vulkan_gen_layer_chassis_dispatch_cpp",
-    "layer_chassis_dispatch.cpp",
-    "layer_chassis_dispatch_generator.py",
-  ],
-]
-
-# Python scripts needed for codegen, copy them to a temp dir
-# so that all dependencies are together
-copy("python_gen_deps") {
-  sources = vulkan_registry_script_files + [
-              "src/scripts/common_codegen.py",
-              "src/scripts/dispatch_table_helper_generator.py",
-              "src/scripts/helper_file_generator.py",
-              "src/scripts/layer_dispatch_table_generator.py",
-              "src/scripts/lvl_genvk.py",
-              "src/scripts/object_tracker_generator.py",
-              "src/scripts/parameter_validation_generator.py",
-              "src/scripts/thread_safety_generator.py",
-              "src/scripts/layer_chassis_generator.py",
-              "src/scripts/layer_chassis_dispatch_generator.py",
-            ]
-  outputs = [
-    "$vulkan_gen_dir/{{source_file_part}}",
-  ]
-}
-
-# This special action is needed to remove previously-generated header files.
-# Otherwise the cpp files can pick up the old header files and cause build
-# failures.
-action("vulkan_clean_gen_headers") {
-  script = "$angle_root/scripts/remove_files.py"
-  deps = [
-    ":python_gen_deps",
-  ]
-  outputs = [
-    "$vulkan_gen_dir/vk_validation_error_messages_h_is_removed",
-  ]
-  args = [
-    "$raw_vulkan_gen_dir/vk_validation_error_messages_h_is_removed",
-    "$raw_vulkan_gen_dir/vk_validation_error_messages.h",
-  ]
-}
-
-# This special action is needed to remove old VVL objects that are now renamed.
-action("vulkan_clean_old_validation_layer_objects") {
-  script = "$angle_root/scripts/remove_files.py"
-
-  # inputs is a (random) new file since the vvl roll, used to ensure the cleanup is done only once
-  inputs = [
-    "src/layers/gpu_validation.cpp",
-  ]
-  outputs = [
-    "$vulkan_gen_dir/old_vvl_files_are_removed",
-  ]
-  args = [
-    "$raw_vulkan_gen_dir/old_vvl_files_are_removed",
-    "$raw_root_out_dir/libVkLayer*",
-    "$raw_root_out_dir/VkLayer*",
-    "$raw_data_dir/VkLayer*.json",
-  ]
-}
-
-foreach(script_and_dep, helper_script_and_deps) {
-  target_name = script_and_dep[0]
-  file = script_and_dep[1]
-  dep = script_and_dep[2]
-  target("action", target_name) {
-    public_deps = [
-      ":python_gen_deps",
-      ":vulkan_clean_gen_headers",
-      ":vulkan_clean_old_validation_layer_objects",
-    ]
-    script = "$vulkan_gen_dir/lvl_genvk.py"
-    inputs = [
-      "$vulkan_gen_dir/$dep",
-      "$vulkan_gen_dir/common_codegen.py",
-      "src/layers/vk_validation_error_messages.h",
-    ]
-    outputs = [
-      "$vulkan_gen_dir/$file",
-    ]
-    args = [
-      "-o",
-      raw_vulkan_gen_dir,
-      "-registry",
-      "$raw_vulkan_headers_dir/registry/vk.xml",
-      "-scripts",
-      "$raw_vulkan_headers_dir/registry",
-      "$file",
-      "-quiet",
-    ]
-  }
-}
-
-raw_spirv_tools_dir = rebase_path("${angle_spirv_tools_dir}", root_build_dir)
-
-spirv_git_is_present = exec_script("$angle_root/src/commit_id.py",
-                                   [
-                                     "check",
-                                     raw_spirv_tools_dir,
-                                   ],
-                                   "value")
-
-spirv_use_commit_id = spirv_git_is_present == 1
-
-if (spirv_use_commit_id) {
-  # This could be generalized to a foreach if other revisions are added.
-  action("spirv_tools_external_revision_generate") {
-    script = "src/scripts/external_revision_generator.py"
-    inputs = [
-      "//DEPS",
-    ]
-    outputs = [
-      "$vulkan_gen_dir/spirv_tools_commit_id.h",
-    ]
-    args = [
-      "--git_dir",
-      "$raw_spirv_tools_dir",
-      "-s",
-      "SPIRV_TOOLS_COMMIT_ID",
-      "-o",
-      "$raw_vulkan_gen_dir/spirv_tools_commit_id.h",
-    ]
-  }
-} else {
-  copy("spirv_tools_external_revision_generate") {
-    sources = [
-      "dummy_spirv_tools_commit_id.h",
-    ]
-    outputs = [
-      "$vulkan_gen_dir/spirv_tools_commit_id.h",
-    ]
-  }
-}
-
-config("vulkan_generated_files_config") {
-  include_dirs = [ vulkan_gen_dir ]
-}
-
-group("vulkan_generate_helper_files") {
-  public_deps = [
-    ":spirv_tools_external_revision_generate",
-    "$angle_root/third_party/vulkan-headers:vulkan_headers",
-  ]
-  public_configs = [ ":vulkan_generated_files_config" ]
-  foreach(script_and_dep, helper_script_and_deps) {
-    target_name = script_and_dep[0]
-    public_deps += [ ":$target_name" ]
-  }
-}
-
-config("vulkan_internal_config") {
-  defines = [
-    "VULKAN_NON_CMAKE_BUILD",
-    "API_NAME=\"Vulkan\"",
-  ]
-  if (is_clang || !is_win) {
-    cflags = [ "-Wno-unused-function" ]
-  }
-  if (is_linux) {
-    defines += [
-      "SYSCONFDIR=\"/etc\"",
-      "FALLBACK_CONFIG_DIRS=\"/etc/xdg\"",
-      "FALLBACK_DATA_DIRS=\"/usr/local/share:/usr/share\"",
-    ]
-  }
-}
-
-# The validation layers
-# ---------------------
-
-config("vulkan_layer_config") {
-  include_dirs = [ "src/layers" ]
-}
-
-core_validation_sources = [
-  # This file is manually included in the layer
-  # "$vulkan_gen_dir/vk_safe_struct.cpp",
-  "$vulkan_gen_dir/vk_safe_struct.h",
-  "src/layers/buffer_validation.cpp",
-  "src/layers/buffer_validation.h",
-  "src/layers/core_validation.cpp",
-  "src/layers/core_validation.h",
-  "src/layers/convert_to_renderpass2.cpp",
-  "src/layers/descriptor_sets.cpp",
-  "src/layers/descriptor_sets.h",
-  "src/layers/gpu_validation.cpp",
-  "src/layers/gpu_validation.h",
-  "src/layers/shader_validation.cpp",
-  "src/layers/shader_validation.h",
-  "src/layers/xxhash.c",
-  "src/layers/xxhash.h",
-]
-
-object_lifetimes_sources = [
-  "$vulkan_gen_dir/object_tracker.cpp",
-  "$vulkan_gen_dir/object_tracker.h",
-  "src/layers/object_tracker_utils.cpp",
-]
-
-stateless_validation_sources = [
-  "$vulkan_gen_dir/parameter_validation.cpp",
-  "$vulkan_gen_dir/parameter_validation.h",
-  "src/layers/parameter_validation_utils.cpp",
-]
-
-thread_safety_sources = [
-  "$vulkan_gen_dir/thread_safety.cpp",
-  "$vulkan_gen_dir/thread_safety.h",
-]
-
-unique_objects_sources = []
-
-chassis_sources = [
-  "$vulkan_gen_dir/chassis.cpp",
-  "$vulkan_gen_dir/chassis.h",
-  "$vulkan_gen_dir/layer_chassis_dispatch.cpp",
-  "$vulkan_gen_dir/layer_chassis_dispatch.h",
-]
-
-core_validation_deps = [ ":vulkan_core_validation_glslang" ]
-
-object_lifetimes_deps = [
-  ":vulkan_gen_object_tracker_cpp",
-  ":vulkan_gen_object_tracker_h",
-]
-
-stateless_validation_deps = [ ":vulkan_gen_stateless_validation" ]
-
-thread_safety_deps = [
-  ":vulkan_gen_thread_safety_cpp",
-  ":vulkan_gen_thread_safety_h",
-]
-
-unique_objects_deps = []
-
-chassis_deps = [
-  ":vulkan_gen_layer_chassis_cpp",
-  ":vulkan_gen_layer_chassis_h",
-  ":vulkan_gen_layer_chassis_dispatch_cpp",
-  ":vulkan_gen_layer_chassis_dispatch_h",
-]
-
-layers = [
-  [
-    "core_validation",
-    core_validation_sources + chassis_sources,
-    core_validation_deps + chassis_deps,
-    [ "BUILD_CORE_VALIDATION" ],
-  ],
-  [
-    "object_lifetimes",
-    object_lifetimes_sources + chassis_sources,
-    object_lifetimes_deps + chassis_deps,
-    [ "BUILD_OBJECT_TRACKER" ],
-  ],
-  [
-    "stateless_validation",
-    stateless_validation_sources + chassis_sources,
-    stateless_validation_deps + chassis_deps,
-    [ "BUILD_PARAMETER_VALIDATION" ],
-  ],
-  [
-    "thread_safety",
-    thread_safety_sources + chassis_sources,
-    thread_safety_deps + chassis_deps,
-    [ "BUILD_THREAD_SAFETY" ],
-  ],
-  [
-    "unique_objects",
-    unique_objects_sources + chassis_sources,
-    unique_objects_deps + chassis_deps,
-    [ "LAYER_CHASSIS_CAN_WRAP_HANDLES" ],
-  ],
-]
-
-if (!is_android) {
-  raw_vulkan_layers_dir = rebase_path("src", root_build_dir)
-
-  action("vulkan_gen_json_files") {
-    script = "$angle_root/scripts/generate_vulkan_layers_json.py"
-    public_deps = [
-      ":vulkan_clean_old_validation_layer_objects",
-    ]
-    json_names = [
-      "VkLayer_core_validation.json",
-      "VkLayer_object_lifetimes.json",
-      "VkLayer_stateless_validation.json",
-      "VkLayer_standard_validation.json",
-      "VkLayer_thread_safety.json",
-      "VkLayer_unique_objects.json",
-    ]
-    sources = [
-      "../vulkan-headers/src/include/vulkan/vulkan_core.h",
-    ]
-    outputs = []
-    foreach(json_name, json_names) {
-      sources += [ "src/layers/json/$json_name.in" ]
-      outputs += [ "$root_out_dir/$angle_data_dir/$json_name" ]
-    }
-    args = [
-             "$raw_vulkan_layers_dir/layers/json",
-             rebase_path("$root_out_dir/$angle_data_dir", root_build_dir),
-           ] + rebase_path(sources, root_build_dir)
-
-    # The layer JSON files are part of the necessary data deps.
-    data = outputs
-  }
-}
-
-source_set("vulkan_layer_utils") {
-  sources = [
-    "src/layers/vk_format_utils.cpp",
-    "src/layers/vk_format_utils.h",
-    "src/layers/vk_layer_config.cpp",
-    "src/layers/vk_layer_config.h",
-    "src/layers/vk_layer_extension_utils.cpp",
-    "src/layers/vk_layer_extension_utils.h",
-    "src/layers/vk_layer_utils.cpp",
-    "src/layers/vk_layer_utils.h",
-  ]
-  public_configs = [
-    "$angle_root:vulkan_config",
-    ":vulkan_internal_config",
-  ]
-  configs -= [ "//build/config/compiler:chromium_code" ]
-  configs += [ "//build/config/compiler:no_chromium_code" ]
-  public_deps = [
-    ":vulkan_generate_helper_files",
-  ]
-  configs -= vulkan_undefine_configs
-}
-
-config("vulkan_core_validation_config") {
-  include_dirs = [ "${angle_glslang_dir}" ]
-}
-
-source_set("vulkan_core_validation_glslang") {
-  public_deps = [
-    "${angle_spirv_tools_dir}:spvtools",
-    "${angle_spirv_tools_dir}:spvtools_opt",
-    "${angle_spirv_tools_dir}:spvtools_val",
-  ]
-  public_configs = [ ":vulkan_core_validation_config" ]
-}
-
-config("vulkan_stateless_validation_config") {
-  if (is_clang) {
-    cflags_cc = [ "-Wno-unused-const-variable" ]
-  }
-}
-
-source_set("vulkan_gen_stateless_validation") {
-  deps = [
-    ":vulkan_gen_parameter_validation_cpp",
-    ":vulkan_gen_parameter_validation_h",
-  ]
-  public_configs = [ ":vulkan_stateless_validation_config" ]
-}
-
-foreach(layer_info, layers) {
-  name = layer_info[0]
-  shared_library("VkLayer_$name") {
-    configs -= [ "//build/config/compiler:chromium_code" ]
-    configs += [ "//build/config/compiler:no_chromium_code" ]
-    configs -= vulkan_undefine_configs
-    public_configs = [ ":vulkan_layer_config" ]
-    deps = [
-      ":vulkan_layer_utils",
-    ]
-    if (layer_info[2] != "") {
-      deps += layer_info[2]
-    }
-    sources = layer_info[1]
-    if (is_win) {
-      sources += [ "src/layers/VkLayer_$name.def" ]
-    }
-    if (is_linux || is_android) {
-      ldflags = [ "-Wl,-Bsymbolic,--exclude-libs,ALL" ]
-    }
-    if (is_android) {
-      libs = [
-        "log",
-        "nativewindow",
-      ]
-      configs -= [ "//build/config/android:hide_all_but_jni_onload" ]
-    }
-    defines = layer_info[3]
-  }
-}
-
-group("vulkan_validation_layers") {
-  data_deps = []
-  foreach(layer_info, layers) {
-    name = layer_info[0]
-    data_deps += [ ":VkLayer_$name" ]
-  }
-}
diff --git a/Source/ThirdParty/ANGLE/third_party/vulkan-validation-layers/dummy_spirv_tools_commit_id.h b/Source/ThirdParty/ANGLE/third_party/vulkan-validation-layers/dummy_spirv_tools_commit_id.h
deleted file mode 100644
index e1793bd..0000000
--- a/Source/ThirdParty/ANGLE/third_party/vulkan-validation-layers/dummy_spirv_tools_commit_id.h
+++ /dev/null
@@ -1,10 +0,0 @@
-//
-// Copyright 2018 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 is a dummy file to enable building SPIRV tools when git is absent.
-
-#pragma once
-
-#define SPIRV_TOOLS_COMMIT_ID "0000000000000000000000000000000000000000"
diff --git a/Source/ThirdParty/ANGLE/util/EGLWindow.cpp b/Source/ThirdParty/ANGLE/util/EGLWindow.cpp
index af1427f..3de779f 100644
--- a/Source/ThirdParty/ANGLE/util/EGLWindow.cpp
+++ b/Source/ThirdParty/ANGLE/util/EGLWindow.cpp
@@ -12,9 +12,9 @@
 
 #include <string.h>
 
+#include "common/system_utils.h"
 #include "platform/Platform.h"
 #include "util/OSWindow.h"
-#include "util/system_utils.h"
 
 // ConfigParameters implementation.
 ConfigParameters::ConfigParameters()
diff --git a/Source/ThirdParty/ANGLE/util/fuchsia/ScenicWindow.cpp b/Source/ThirdParty/ANGLE/util/fuchsia/ScenicWindow.cpp
index c13b0e4..008dac3 100644
--- a/Source/ThirdParty/ANGLE/util/fuchsia/ScenicWindow.cpp
+++ b/Source/ThirdParty/ANGLE/util/fuchsia/ScenicWindow.cpp
@@ -18,6 +18,7 @@
 #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"
@@ -25,6 +26,36 @@
 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);
@@ -107,15 +138,25 @@
 
 void ScenicWindow::resetNativeWindow()
 {
-    fuchsia::images::ImagePipePtr imagePipe;
-    uint32_t imagePipeId = mScenicSession.AllocResourceId();
-    mScenicSession.Enqueue(scenic::NewCreateImagePipeCmd(imagePipeId, imagePipe.NewRequest()));
+    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();
+    }
     mMaterial.SetTexture(imagePipeId);
     mScenicSession.ReleaseResource(imagePipeId);
     mScenicSession.Present(0, [](fuchsia::images::PresentationInfo info) {});
 
-    mFuchsiaEGLWindow.reset(
-        fuchsia_egl_window_create(imagePipe.Unbind().TakeChannel().release(), mWidth, mHeight));
+    mFuchsiaEGLWindow.reset(fuchsia_egl_window_create(imagePipeHandle, mWidth, mHeight));
 }
 
 EGLNativeWindowType ScenicWindow::getNativeWindow() const
diff --git a/Source/ThirdParty/ANGLE/util/posix/Posix_crash_handler.cpp b/Source/ThirdParty/ANGLE/util/posix/crash_handler_posix.cpp
similarity index 98%
rename from Source/ThirdParty/ANGLE/util/posix/Posix_crash_handler.cpp
rename to Source/ThirdParty/ANGLE/util/posix/crash_handler_posix.cpp
index 2a0b9f6..e40c4b5 100644
--- a/Source/ThirdParty/ANGLE/util/posix/Posix_crash_handler.cpp
+++ b/Source/ThirdParty/ANGLE/util/posix/crash_handler_posix.cpp
@@ -3,12 +3,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 //
-// system_utils_crash_handler:
+// crash_handler_posix:
 //    ANGLE's crash handling and stack walking code. Modified from Skia's:
 //     https://github.com/google/skia/blob/master/tools/CrashHandler.cpp
 //
 
-#include "util/system_utils.h"
+#include "util/test_utils.h"
 
 #include "common/angleutils.h"
 
diff --git a/Source/ThirdParty/ANGLE/util/posix/Posix_system_utils.cpp b/Source/ThirdParty/ANGLE/util/posix/test_utils_posix.cpp
similarity index 89%
rename from Source/ThirdParty/ANGLE/util/posix/Posix_system_utils.cpp
rename to Source/ThirdParty/ANGLE/util/posix/test_utils_posix.cpp
index 35708cf..9d6c82f 100644
--- a/Source/ThirdParty/ANGLE/util/posix/Posix_system_utils.cpp
+++ b/Source/ThirdParty/ANGLE/util/posix/test_utils_posix.cpp
@@ -4,24 +4,28 @@
 // found in the LICENSE file.
 //
 
-// Posix_system_utils.cpp: Implementation of OS-specific functions for Posix systems
+// test_utils_posix.cpp: Implementation of OS-specific functions for Posix systems
 
-#include "util/system_utils.h"
+#include "util/test_utils.h"
 
+#include <errno.h>
 #include <sched.h>
 #include <time.h>
 #include <unistd.h>
+#include <cstdarg>
+
+#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
 
-#include "common/platform.h"
-
 namespace angle
 {
-
 void Sleep(unsigned int milliseconds)
 {
     // On Windows Sleep(0) yields while it isn't guaranteed by Posix's sleep
diff --git a/Source/ThirdParty/ANGLE/util/system_utils.h b/Source/ThirdParty/ANGLE/util/test_utils.h
similarity index 82%
rename from Source/ThirdParty/ANGLE/util/system_utils.h
rename to Source/ThirdParty/ANGLE/util/test_utils.h
index 3c40b57..6a4951d 100644
--- a/Source/ThirdParty/ANGLE/util/system_utils.h
+++ b/Source/ThirdParty/ANGLE/util/test_utils.h
@@ -4,14 +4,14 @@
 // found in the LICENSE file.
 //
 
-// system_utils.h: declaration of OS-specific utility functions
+// test_utils.h: declaration of OS-specific utility functions
 
-#ifndef UTIL_SYSTEM_UTILS_H_
-#define UTIL_SYSTEM_UTILS_H_
+#ifndef UTIL_TEST_UTILS_H_
+#define UTIL_TEST_UTILS_H_
 
 #include <string>
+#include <vector>
 
-#include "common/system_utils.h"
 #include "util/util_export.h"
 
 namespace angle
@@ -33,6 +33,7 @@
 
 // Print a stack back trace.
 ANGLE_UTIL_EXPORT void PrintStackBacktrace();
+
 }  // namespace angle
 
-#endif  // UTIL_SYSTEM_UTILS_H_
+#endif  // UTIL_TEST_UTILS_H_
diff --git a/Source/ThirdParty/ANGLE/util/util.gni b/Source/ThirdParty/ANGLE/util/util.gni
index 492c875..4304cae 100644
--- a/Source/ThirdParty/ANGLE/util/util.gni
+++ b/Source/ThirdParty/ANGLE/util/util.gni
@@ -12,10 +12,11 @@
   "util/random_utils.h",
   "util/shader_utils.cpp",
   "util/shader_utils.h",
-  "util/system_utils.h",
+  "util/test_utils.h",
   "util/util_export.h",
   "util/util_gl.h",
   "util/Event.h",
+  "util/EGLPlatformParameters.h",
   "util/EGLWindow.cpp",
   "util/EGLWindow.h",
   "util/Matrix.cpp",
@@ -28,20 +29,22 @@
 ]
 
 util_win_sources = [
-  "util/windows/win32/Win32_system_utils.cpp",
+  "util/windows/test_utils_win.cpp",
+  "util/windows/win32/test_utils_win32.cpp",
   "util/windows/win32/Win32Pixmap.cpp",
   "util/windows/win32/Win32Pixmap.h",
   "util/windows/win32/Win32Window.cpp",
   "util/windows/win32/Win32Window.h",
-  "util/windows/Windows_system_utils.cpp",
   "util/windows/WGLWindow.h",
 ]
 
-util_win_shared_sources = [ "util/windows/WGLWindow.cpp" ]
+if (current_os != "winuwp") {
+  util_win_shared_sources = [ "util/windows/WGLWindow.cpp" ]
+}
 
 util_posix_sources = [
-  "util/posix/Posix_crash_handler.cpp",
-  "util/posix/Posix_system_utils.cpp",
+  "util/posix/crash_handler_posix.cpp",
+  "util/posix/test_utils_posix.cpp",
 ]
 
 util_linux_sources = util_posix_sources
@@ -64,14 +67,12 @@
   "util/ozone/OzoneWindow.h",
 ]
 
-util_osx_sources = [
-  "util/osx/OSXPixmap.mm",
-  "util/osx/OSXPixmap.h",
-  "util/osx/OSXWindow.mm",
-  "util/osx/OSXWindow.h",
-  "util/posix/Posix_crash_handler.cpp",
-  "util/posix/Posix_system_utils.cpp",
-]
+util_osx_sources = util_posix_sources + [
+                     "util/osx/OSXPixmap.mm",
+                     "util/osx/OSXPixmap.h",
+                     "util/osx/OSXWindow.mm",
+                     "util/osx/OSXWindow.h",
+                   ]
 
 util_android_sources = util_posix_sources + [
                          "util/android/AndroidPixmap.cpp",
diff --git a/Source/ThirdParty/ANGLE/util/util_gl.h b/Source/ThirdParty/ANGLE/util/util_gl.h
index c044742..1c42875 100644
--- a/Source/ThirdParty/ANGLE/util/util_gl.h
+++ b/Source/ThirdParty/ANGLE/util/util_gl.h
@@ -13,9 +13,9 @@
 #if defined(ANGLE_USE_UTIL_LOADER)
 #    include "util/egl_loader_autogen.h"
 #    include "util/gles_loader_autogen.h"
-#    if defined(ANGLE_PLATFORM_WINDOWS)
+#    if defined(ANGLE_PLATFORM_WINDOWS) && !defined(ANGLE_ENABLE_WINDOWS_UWP)
 #        include "util/windows/wgl_loader_autogen.h"
-#    endif  // defined(ANGLE_PLATFORM_WINDOWS)
+#    endif  // defined(ANGLE_PLATFORM_WINDOWS) && !defined(ANGLE_ENABLE_WINDOWS_UWP)
 #else
 
 #    if !defined(GL_GLES_PROTOTYPES)
diff --git a/Source/ThirdParty/ANGLE/util/windows/WGLWindow.cpp b/Source/ThirdParty/ANGLE/util/windows/WGLWindow.cpp
index bac5875..96c4d42 100644
--- a/Source/ThirdParty/ANGLE/util/windows/WGLWindow.cpp
+++ b/Source/ThirdParty/ANGLE/util/windows/WGLWindow.cpp
@@ -10,8 +10,8 @@
 #include "util/windows/WGLWindow.h"
 
 #include "common/string_utils.h"
+#include "common/system_utils.h"
 #include "util/OSWindow.h"
-#include "util/system_utils.h"
 
 #include <iostream>
 
diff --git a/Source/ThirdParty/ANGLE/util/windows/Windows_system_utils.cpp b/Source/ThirdParty/ANGLE/util/windows/test_utils_win.cpp
similarity index 96%
rename from Source/ThirdParty/ANGLE/util/windows/Windows_system_utils.cpp
rename to Source/ThirdParty/ANGLE/util/windows/test_utils_win.cpp
index ef88225..05a44c8 100644
--- a/Source/ThirdParty/ANGLE/util/windows/Windows_system_utils.cpp
+++ b/Source/ThirdParty/ANGLE/util/windows/test_utils_win.cpp
@@ -4,15 +4,15 @@
 // found in the LICENSE file.
 //
 
-// Windows_system_utils.cpp: Implementation of OS-specific functions for Windows
+// test_utils_win.cpp: Implementation of OS-specific functions for Windows
 
-#include "util/system_utils.h"
+#include "util/test_utils.h"
 
 #include <stdarg.h>
 #include <windows.h>
 #include <array>
-#include <vector>
 
+#include "common/angleutils.h"
 #include "util/windows/third_party/StackWalker/src/StackWalker.h"
 
 namespace angle
@@ -144,5 +144,4 @@
     RtlCaptureContext(&context);
     PrintBacktrace(&context);
 }
-
 }  // namespace angle
diff --git a/Source/ThirdParty/ANGLE/util/windows/win32/Win32_system_utils.cpp b/Source/ThirdParty/ANGLE/util/windows/win32/test_utils_win32.cpp
similarity index 86%
rename from Source/ThirdParty/ANGLE/util/windows/win32/Win32_system_utils.cpp
rename to Source/ThirdParty/ANGLE/util/windows/win32/test_utils_win32.cpp
index 6e4b523..4f4aa8d 100644
--- a/Source/ThirdParty/ANGLE/util/windows/win32/Win32_system_utils.cpp
+++ b/Source/ThirdParty/ANGLE/util/windows/win32/test_utils_win32.cpp
@@ -4,9 +4,9 @@
 // found in the LICENSE file.
 //
 
-// Win32_system_utils.cpp: Implementation of OS-specific functions for Win32 (Windows)
+// test_utils_win32.cpp: Implementation of OS-specific functions for Win32 (Windows)
 
-#include "util/system_utils.h"
+#include "util/test_utils.h"
 
 #include <windows.h>
 #include <array>
diff --git a/Source/ThirdParty/ANGLE/util/x11/X11Window.cpp b/Source/ThirdParty/ANGLE/util/x11/X11Window.cpp
index 66d555b..84cbadb 100644
--- a/Source/ThirdParty/ANGLE/util/x11/X11Window.cpp
+++ b/Source/ThirdParty/ANGLE/util/x11/X11Window.cpp
@@ -10,7 +10,7 @@
 
 #include "common/debug.h"
 #include "util/Timer.h"
-#include "util/system_utils.h"
+#include "util/test_utils.h"
 
 namespace
 {
